debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: squid 3.5.8 + резак сайтов  (Прочитано 5152 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн M1chA

  • Topic Author
  • Сообщений: 29
squid 3.5.8 + резак сайтов
« : 16 Декабрь 2015, 13:57:48 »
Подскажите пожалуйста, как решить следующую пробблему.

Дано:
  • Сервер Debian 8.2 x64
  • isc-dhcp-server
  • squid 3.5.8

isc-dhcp-server работает нормаально, айпишники выдает

squid 3.5.8 ставил отсюда http://habrahabr.ru/post/272733/
через tail -f /var/log/squid/access.log видно, что все работает нормально, кроме одного, сайты не блокируются.

Конфиг Кальмара
# локальная сеть компании
acl localnet src 192.168.0.0/24 # RFC1918 possible internal network

# список разрешенных портов
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

# указываем какой dns сервер использовать
dns_nameservers 8.8.8.8

# !Safe_ports - это те порты которые админ считает "безопасными" для прохождения через прокси. Чаще всего это HTTP порты.
http_access deny !Safe_ports

# !SSL_ports - это только те порты, которые участвуют в SSL соединении.
http_access deny CONNECT !SSL_ports

http_access allow localhost manager
http_access deny manager

# разрешаем доступ в интернет для компьютеров локальной сети
http_access allow localnet

# разрешаем доступ в интернет локальной машине т.е. прокси серверу
http_access allow localhost

# всем остальным запрещаем доступ в интернет
http_access deny all

# прозрачный порт указывается опцией intercept
http_port 192.168.0.1:3128 intercept options=NO_SSLv3:NO_SSLv2

# также нужно указать непрозрачный порт, ибо если захотите вручную указать адрес
#прокси в браузере, указав прозрачный порт, вы получите ошибку доступа, поэтому нужно
#указывать непрозрачный порт в браузере, если конечно такое желание будет, к тому же в логах #сыпятся ошибки о том, что непрохрачный порт не указан=)
http_port 192.168.0.1:3130 options=NO_SSLv3:NO_SSLv2

# и наконец, указываем HTTPS порт с нужными опциями
https_port 192.168.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem

always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER

# укажем правило со списком блокируемых ресурсов (в файле домены вида .domain.com)
acl blocked ssl::server_name  "/etc/squid/block"
acl step1 at_step SslBump1
ssl_bump peek step1

# терминируем соединение, если клиент заходит на запрещенный ресурс
ssl_bump terminate blocked
ssl_bump splice all

sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB

coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
cache_dir aufs /var/spool/squid 20000 49 256
maximum_object_size 61440 KB
minimum_object_size 3 KB

cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
logfile_rotate 4

Файл block
.vk.
.mail.
.vk.com
.mail.ru
 

Оффлайн Malaheenee

  • Сообщений: 2565
  • Учтите, мы можем дать и вредный совет.
Re: squid 3.5.8 + резак сайтов
« Ответ #1 : 16 Декабрь 2015, 14:08:12 »
Статью обновили. Мы пакеты сами себе собирали с openssl, все работает, конфиг (с купюрами) такой:
# Allowed networks
# eth0
acl localhost src 11.11.11.11
# wlan0
acl localhost src 22.22.22.22/29

# Allowed ports
acl ssl-ports port 443 # https
acl ssl-ports port 465 # smtp
acl ssl-ports port 993 # imap
acl ssl-ports port 5223 # jabber
acl safe-ports port 80 # http
acl safe-ports port 81 # http
acl safe-ports port 8000 # http
acl safe-ports port 8080 # http
acl safe-ports port 21 # ftp
acl safe-ports port 443 # https
acl safe-ports port 465 # smtp
acl safe-ports port 993 # imap
acl safe-ports port 5223 # jabber
acl CONNECT method CONNECT

# Access settings
http_access deny !safe-ports
http_access deny CONNECT !ssl-ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all

# Transparent proxy
http_port 0.0.0.0:8087
http_port 0.0.0.0:8088 intercept options=NO_SSLv3:NO_SSLv2
https_port 0.0.0.0:8089 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem
always_direct allow all

# SSL-Bump settings
acl blocked ssl::server_name_regex \.facebook\.(com|net)
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump terminate blocked
ssl_bump splice all
sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB

# Logging settings
access_log daemon:/var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
logfile_rotate 4
debug_options ALL,1 rotate=4

# Cache settings
cache_mem 0
cache_dir ufs /var/cache/squid 32000 128 256
coredump_dir /var/spool/squid
maximum_object_size 512 MB
minimum_object_size 2 KB
cache_replacement_policy heap LFUDA
reload_into_ims on
cache_effective_user proxy
cache_effective_group proxy
cache_swap_low 90
cache_swap_high 95

# Cache: all
refresh_pattern . 518400 80% 518400 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth ignore-no-store  refresh-ims

# Other settings
pinger_enable off
coredump_dir /var/spool/squid
shutdown_lifetime 2 seconds
via off
forwarded_for off
follow_x_forwarded_for deny all
request_header_access From deny all
request_header_access Server deny all
request_header_access Link deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

# iptables -t nat -A PREROUTING -i wlan0 -p tcp -m multiport --dport 443,465,993,5223 -j REDIRECT --to-ports 8089
# iptables -t nat -A PREROUTING -i wlan0 -p tcp -m multiport --dport 80,81,8000,8080 -j REDIRECT --to-ports 8088
« Последнее редактирование: 16 Декабрь 2015, 14:12:26 от Malaheenee »
Debian Sid: XFCE x 1, openbox x 2.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн M1chA

  • Topic Author
  • Сообщений: 29
Re: squid 3.5.8 + резак сайтов
« Ответ #2 : 16 Декабрь 2015, 14:28:13 »
Так я по обновленной инструкции и делал

Сейчас заменил в конфиге строчку acl blocked ssl::server_name  "/etc/squid/block" на acl blocked ssl::server_name_regex \.facebook\.(com|net) - все равно не работает.


Сейчас мысль посиетила.....
server_name так и надо оставиить, или изменить надо на имя сервера?
 

Оффлайн Malaheenee

  • Сообщений: 2565
  • Учтите, мы можем дать и вредный совет.
Re: squid 3.5.8 + резак сайтов
« Ответ #3 : 16 Декабрь 2015, 14:45:53 »
server_name так и надо оставиить, или изменить надо на имя сервера?
Это правило блокировки.

Cообщение объединено 16 Декабрь 2015, 14:47:12
dns-nameserver исправьте (в статье рекомендуют).
Debian Sid: XFCE x 1, openbox x 2.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн M1chA

  • Topic Author
  • Сообщений: 29
Re: squid 3.5.8 + резак сайтов
« Ответ #4 : 16 Декабрь 2015, 14:58:58 »
Не, не работает

Тестирование проходит на виртуалках.
1-я виртуалка: Сервер - Debian 8.2 x64 gate
Настройки виртуальных сетевушек:
eth0 (wan) ip-10.163.4.97/255.255.255.0; gate-10.163.4.254; dns-10.163.0.1

eth1 (lan): ip-192.168.0.1/255.255.255.0
isc-dhcp-server раздает в eth1

2-я виртуалка: Клиент - Windows XP x86
« Последнее редактирование: 16 Декабрь 2015, 15:12:41 от M1chA »
 

Оффлайн M1chA

  • Topic Author
  • Сообщений: 29
Re: squid 3.5.8 + резак сайтов
« Ответ #5 : 18 Декабрь 2015, 09:23:42 »
Народ! Ну помогите же пожалуйста!!!!!
 

Оффлайн Malaheenee

  • Сообщений: 2565
  • Учтите, мы можем дать и вредный совет.
Re: squid 3.5.8 + резак сайтов
« Ответ #6 : 18 Декабрь 2015, 14:11:25 »
Вы попробуйте с нашим конфигом, а дальше видно будет. Пожалуйста.
Debian Sid: XFCE x 1, openbox x 2.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн M1chA

  • Topic Author
  • Сообщений: 29
Re: squid 3.5.8 + резак сайтов
« Ответ #7 : 23 Декабрь 2015, 21:45:05 »
Чего-то где-то я намудрил....

Вот Ваш конфиг подправленый под меня
# Allowed networks
# eth0
acl localhost src 192.168.0.1
# wlan0
acl localhost src 192.168.88.246

# Allowed ports
acl ssl-ports port 443          # https
acl ssl-ports port 465          # smtp
acl ssl-ports port 993          # imap
acl ssl-ports port 5223         # jabber
acl safe-ports port 80          # http
acl safe-ports port 81          # http
acl safe-ports port 8000        # http
acl safe-ports port 8080        # http
acl safe-ports port 21          # ftp
acl safe-ports port 443         # https
acl safe-ports port 465         # smtp
acl safe-ports port 993         # imap
acl safe-ports port 5223        # jabber
acl CONNECT method CONNECT

# Access settings
http_access deny !safe-ports
http_access deny CONNECT !ssl-ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all

# Transparent proxy
# непрозрачный порт
http_port 192.168.0.1:3130

# прозрачный http порт
http_port 192.168.0.1:3128 intercept options=NO_SSLv3:NO_SSLv2

#
https_port 192.168.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem
always_direct allow all

# SSL-Bump settings
acl blocked ssl::server_name_regex \.facebook\.(com|net)
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump terminate blocked
ssl_bump splice all
sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB

# Logging settings
access_log daemon:/var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
logfile_rotate 4
debug_options ALL,1 rotate=4

# Cache settings
cache_mem 0
cache_dir ufs /var/cache/squid 32000 128 256
coredump_dir /var/spool/squid
maximum_object_size 512 MB
minimum_object_size 2 KB
cache_replacement_policy heap LFUDA
reload_into_ims on
cache_effective_user proxy
cache_effective_group proxy
cache_swap_low 90
cache_swap_high 95

# Cache: all
refresh_pattern . 518400 80% 518400 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth ignore-no-store  refresh-ims

# Other settings
pinger_enable off
coredump_dir /var/spool/squid
shutdown_lifetime 2 seconds
via off
forwarded_for off
follow_x_forwarded_for deny all
request_header_access From deny all
request_header_access Server deny all
request_header_access Link deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all


Если открываю https://mail.ru то ошибка вот такого плана
ERROR
The requested URL could not be retrieved

--------------------------------------------------------------------------------

The following error was encountered while trying to retrieve the URL: https://94.100.180.202/*

Access Denied.

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

Your cache administrator is webmaster.
--------------------------------------------------------------------------------

Generated Wed, 23 Dec 2015 18:43:27 GMT by srv01-gw (squid/3.5.8)

Если открываю http://mail.ru то вот такая ошибка
ОШИБКА
Запрошенный URL не может быть получен

--------------------------------------------------------------------------------

При получении URL http://mail.ru/ произошла следующая ошибка

Доступ запрещён.

Система контроля доступа не позволяет выполнить ваш запрос сейчас. Обратитесь к вашему администратору.

Администратор Вашего кэша: webmaster.
--------------------------------------------------------------------------------

Создано Wed, 23 Dec 2015 18:47:20 GMT на srv01-gw (squid/3.5.8)

Конфиг IPTABLES
# Generated by iptables-save v1.4.21 on Tue Dec 15 17:15:34 2015
*nat
:PREROUTING ACCEPT [130:17791]
:INPUT ACCEPT [203:21134]
:OUTPUT ACCEPT [86:5172]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
-A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Dec 15 17:15:34 2015

P.S все сайты не открываются
« Последнее редактирование: 23 Декабрь 2015, 21:53:59 от M1chA »
 

Оффлайн Malaheenee

  • Сообщений: 2565
  • Учтите, мы можем дать и вредный совет.
Re: squid 3.5.8 + резак сайтов
« Ответ #8 : 24 Декабрь 2015, 14:34:16 »
Окей. wlan0 - это внутрення есть, eth0 - от провайдера. У Вас перепутаны. Т.е. должно быть:
# eth0
acl localhost src 10.163.4.97 # (Можно в принципе даже убрать)
# eth1
acl localhost src 192.168.0.0/24
Можно замудрить с указанием разных acl, но нам так было удобнее.
Далее, указание "192.168.0.1:3129" хоть и безопасно, но у нас так и не заработало, поэтому лучше поправьте.
Debian Sid: XFCE x 1, openbox x 2.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн Vlad

  • Сообщений: 23
Re: squid 3.5.8 + резак сайтов
« Ответ #9 : 03 Январь 2016, 18:36:01 »
Всех приветствую! Тоже делал по той инструкции. Всё работает, но есть одна серьёзная проблема. Squid блокирует (ошибка 403) соединение, если обращаться по ipv6 адресу. Отключаю ipv6, всё нормально. При этом, в не прозрачном режиме всё в порядке и с ipv6. Сам ipv6 работает. Конфиг squid'а:
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
acl ftp proto FTP
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
acl direct_ipv4_list url_regex -i "/etc/squid/direct_ipv4_list"
dns_nameservers 127.0.0.1
via off
forwarded_for off
follow_x_forwarded_for deny all
request_header_access cache-control deny all
request_header_access referer deny direct_ipv4_list
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access allow direct_ipv4_list
http_access deny all
http_port 3128
http_port 3129 intercept
https_port 3130 intercept ssl-bump connection-auth=off options=ALL cert=/etc/squid/squidCA.pem
sslproxy_flags DONT_VERIFY_PEER
sslproxy_cert_error allow all
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice all
coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
dns_v4_first on
cache_mem 1024 MB
maximum_object_size_in_memory 512 KB
cache_dir ufs /var/spool/squid 2048 16 256
maximum_object_size 4 MB
access_log daemon:/var/log/squid/access.log squid
logfile_rotate 10
error_directory /usr/share/squid/errors/ru
cache_peer 127.0.0.1 parent 8118 7 no-query default
always_direct allow ftp
always_direct deny direct_ipv4_list
always_direct deny all
never_direct allow all
cache_effective_user proxy
cache_effective_group proxy

Правила ip6tables:
IP6TABLES="/sbin/ip6tables"
LAN="br0"
$IP6TABLES -F
$IP6TABLES -X
$IP6TABLES -t nat -F
$IP6TABLES -t nat -X
$IP6TABLES -t mangle -F
$IP6TABLES -t mangle -X
$IP6TABLES -P INPUT DROP
$IP6TABLES -P FORWARD DROP
$IP6TABLES -P OUTPUT ACCEPT
$IP6TABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IP6TABLES -A INPUT -p tcp -m conntrack --ctstate INVALID -j REJECT --reject-with tcp-reset
$IP6TABLES -A INPUT -i lo -j ACCEPT
$IP6TABLES -A INPUT -i $LAN -j ACCEPT
$IP6TABLES -A INPUT -p udp --dport 546 -s $LAN_IP6 -j ACCEPT
$IP6TABLES -A INPUT -p icmpv6 -j ACCEPT
$IP6TABLES -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IP6TABLES -A FORWARD -p tcp -m conntrack --ctstate INVALID -j REJECT --reject-with tcp-reset
$IP6TABLES -A FORWARD -i $LAN -j ACCEPT
$IP6TABLES -A FORWARD -p icmpv6 -j ACCEPT
$IP6TABLES -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTP -j REDIRECT --to-port 3129
$IP6TABLES -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTPS -j REDIRECT --to-port 3130
« Последнее редактирование: 03 Январь 2016, 18:46:08 от Vlad »
 

Оффлайн ihammers

  • Сообщений: 1681
  • Debian GNU/Linux Stretch
    • Алтайская Группа Пользователей Linux
  • Jabber: ihammers@jabber.ru
Re: squid 3.5.8 + резак сайтов
« Ответ #10 : 05 Январь 2016, 08:29:23 »
Конфиг squid'а:
А где ipv6 сети, если про запись начинающие с F, то это разве не локальные адреса? Не увидел ACL с префиксом: /64 или /48.
Defining IPv6 space as containing any address starting with F

    they are local-only ranges.
    Add them to your localnet ACL when actually needed.

Доп. информация: http://www.w2a.ru/blog/linux/802.html
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290
 
Пользователи, которые поблагодарили этот пост: Vlad

Оффлайн Vlad

  • Сообщений: 23
Re: squid 3.5.8 + резак сайтов
« Ответ #11 : 05 Январь 2016, 15:33:16 »
Спасибо за подсказку. Подавил acl globalIPv6 src ipv6 и разрешил его http_access allow globalIPv6. По поводу /64 не понял. С /10 работает. Или подскажите по подробнее?
 

Оффлайн Vlad

  • Сообщений: 23
Re: squid 3.5.8 + резак сайтов
« Ответ #12 : 26 Апрель 2017, 15:52:31 »
Сделал авторизацию для пользователя из интернета. Теперь постоянно (раз в 1-2 сек.) в cache.log появляется строчка:
Цитировать
NOTICE: Authentication not applicable on intercepted requests.
Смысл её понятен, хотелось бы её убрать, т.к. всё работает как задумано.
 

Оффлайн Vlad

  • Сообщений: 23
Re: squid 3.5.8 + резак сайтов
« Ответ #13 : 31 Август 2017, 20:03:08 »
Приветствую! Такой вопрос, есть два локальных прокси (помимо squid), один из них http-прокси (слушает порт 8118), другой https-прокси (слушает порт 8079). Задача, с помощью squid'а сделать прозрачный прокси и в качестве вышестоящих прокси сделать указанные выше. Знаю что есть директива cache_peer, как там разделить разный трафик, как я понял cache_peer обрабатывается либо по "весу", либо циклически, а нужно чтоб трафик http шёл исключительно к одному прокси (127.0.0.1:8118), а https к другому (127.0.0.2:8079)?
 

Теги: