URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 7117
[ Назад ]

Исходное сообщение
"Блокировка списка сайтов https для группы пользователей squid "

Отправлено longcat , 10-Июн-14 06:43 
Есть настроенный шлюз на дебиан 7.5
На нём рабочий squid3, блокирующий список сайтов, работающий по http кроме группы ip(директора, главбух, я)
Надо заблокировать сайт (конкретно вконтактик), работающий, как известно, по https.

Подскажите, куда копать, пожалуйста, и можно ли вообще средствами кальмара ограничить https траффик?

прилагаю конфиг кальмара (подскажите, пожалуйста, как здесь можно спрятать под спойлер объемный текст?)

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl my_network src 192.168.0.0/24
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
# это я добавил
acl url_no_filtred src 192.168.0.12 192.168.0.53-192.168.0.55
# разрешенные ip
#acl url_no_filtred src 192.168.0.53-192.168.0.55
# подключаем черный список сайтов
acl blacklist url_regex -i "/etc/squid3/blacklist"

# блокировка списка сайтов blacklist для списка ip url_filtred
#http_access deny blacklist url_filtred
http_access deny blacklist !url_no_filtred
http_access allow my_network
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

http_port 3128 transparent

hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
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

shutdown_lifetime 5.00 second
#cache_dir ufs /var/cache/squid 2048 16 256
maximum_object_size 10024.00 bytes


Содержание

Сообщения в этом обсуждении
"Блокировка списка сайтов https для группы пользователей squid "
Отправлено Andrey Mitrofanov , 10-Июн-14 09:08 
> Подскажите, куда копать, пожалуйста, и можно ли вообще средствами кальмара ограничить https траффик?
> http_port 3128 transparent

Прозрачный сквид и отсутствие всяческих ssl bump-ов. Наверное, клиентский https ходит мимо сквида, через NAT, блокировать в iptables.

Насчёт, можно ли, вариантов 2: непрозрачный сквид (_надо настраивать прокси во всех клиентах и _не пускать их "через NAT") и см.про CONNECT+https+squid, либо ssl bump (и, вроде, тоже непрозрачный сквид нужен? не знаю) + либо "не доверенный сертификат" на все сайты, либо загрузка своего ЦА на клиентах.

...и тут снова два варианта.


"Блокировка списка сайтов https для группы пользователей squid "
Отправлено longcat , 10-Июн-14 09:33 
несколько не по теме
если я вот так сделаю

iptables -A -s 192.168.0.53 -d vk.com --dport 443 -j ACCEPT
iptables -A -s 192.168.0.54 -d vk.com --dport 443 -j ACCEPT
iptables -A -s 192.168.0.211 -d vk.com --dport 443 -j ACCEPT
iptables -A -s 192.168.0.56 -d vk.com --dport 443 -j ACCEPT
iptables -A -s 192.168.0.12 -d vk.com --dport 443 -j ACCEPT
iptables -A -d vk.com --dport 443 -j DROP

это закроет вконтакт по https?

заранее спасибо


"Блокировка списка сайтов https для группы пользователей squid "
Отправлено Andrey Mitrofanov , 10-Июн-14 09:48 
> это закроет вконтакт по https?

нет

> заранее спасибо

не за что


"Блокировка списка сайтов https для группы пользователей squid "
Отправлено ipmanyak , 10-Июн-14 15:29 
Закройте домен vk.com в сквиде или всего его ip адреса, которые можно узнать по nslookup
acl vk dstdomain .vk.com
http_access deny vk
если очень хочется только по HTTPS добавьте ssl порт
acl vk dstdomain .vk.com
http_access deny vk SSL_ports
Если по HTTPS не банит, бань по IP

----- по IP
acl  vk  dst  87.240.131.120  87.240.131.119  87.240.131.118
http_access deny vk
или
http_access deny vk SSL_ports
---------
правила http_access  поставить в нужное место.
==============================================
Через Iptables  как-то так:

iptables -t filter -I INPUT -s vk.com -p tcp -m tcp --sport 443 -j DROP
iptables -t filter -I OUTPUT -d vk.com -p tcp -m tcp --dport 443 -j DROP
iptables -t filter -I FORWARD -d vk.com -p tcp -m tcp --dport 443 -j DROP


"Блокировка списка сайтов https для группы пользователей squid "
Отправлено longcat , 11-Июн-14 07:30 
у меня squid настроен в прозрачном режиме и на его порт iptables перекидывает пакеты только с 80 порта, а в squid у меня уже есть

acl SSL_ports port 443
acl Safe_ports port 443
acl CONNECT method CONNECT
acl url_no_filtred src 192.168.0.12 192.168.0.211 192.168.0.53-192.168.0.56
# разрешенные ip
# подключаем черный список сайтов
acl blacklist url_regex -i "/etc/squid3/blacklist"

# блокировать  список сайтов всем кроме группы ip
http_access deny blacklist !url_no_filtred
http_access allow my_network
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

если я добавлю в iptables правило перебрасывающее 443 порт на squid, у меня перестают открываться страницы, к сожалению не могу экспериментировать часто , потому как шлюз уже используется

а  можно ли в сквиде акселями как-то блокировку домена:порта сделать для всех кроме группы ip?


"Блокировка списка сайтов https для группы пользователей squid "
Отправлено ipmanyak , 11-Июн-14 14:42 
> если я добавлю в iptables правило перебрасывающее 443 порт на squid, у
> меня перестают открываться страницы, к сожалению не могу экспериментировать часто ,
> потому как шлюз уже используется

значит неправильно пробрасываешь, ищи примеры в инете или доки в википедии
http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxRe...
что-то типа:
iptables -t nat -A PREROUTING -s $SQUIDIP -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3128

> а  можно ли в сквиде акселями как-то блокировку домена:порта сделать для
> всех кроме группы ip?

пример такой блокировки с ssl портом  тебе уже давал выше, применяй аксель к нужным  IP.
создай аксель на IP и добавляй его в http_access deny  или http_access allow
в зависимости блочишь доступ или наоборот разрешаешь.


"Блокировка списка сайтов https для группы пользователей squid "
Отправлено Useful , 22-Окт-14 14:15 
Чтоб не плодить темы напишу тут.
Использую:
  ОС - openSuSE 13.2
  Squid - 3.4.4
  браузер у клиентов - firefox, opera, ie и т.д.
содержание squid.conf:
#===============================================================
visible_hostname af-server

acl a_localnet src "/srv/squid/allow/ip_allow.acl"    # разрешенная сеть для прокси
acl d_localnet src "/srv/squid/deny/ip_stud.acl"    # сеть с ограничениями
acl soc_domain dstdomain "/srv/squid/deny/soc_domain.acl"
acl stud_domain dstdomain "/srv/squid/allow/stud_domain.acl"
acl ip_server dst 192.168.3.1

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

# Запрещены все порты, кроме как из списка
http_access deny !Safe_ports

# Запрещены все коннекты по портам, кроме как из списка
http_access deny CONNECT !SSL_ports

# Разрешен доступ к кешу только для localhost
http_access allow localhost manager
http_access deny manager

http_access allow a_localnet !soc_domain
http_access allow d_localnet ip_server
http_access deny d_localnet !stud_domain

# Allow localhost always proxy functionality
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all

http_port 192.168.3.1:3128 transparent
https_port 192.168.3.1:3129 transparent ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl/squid.pem key=/etc/squid/ssl/squid.pem
sslproxy_flags DONT_VERIFY_PEER
sslproxy_cert_error allow all
always_direct allow all

ssl_bump client-first all
ssl_bump server-first all
ssl_bump none all
sslcrtd_program /usr/sbin/ssl_crtd -s /srv/squid/ssl_db -M 4MB

# Leave coredumps in the first cache dir
coredump_dir /srv/squid/cache

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
#=============================================================================
сертификат и ключ создавал так:
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squid.pem -out squid.pem

Все работает отлично, кроме одного неудобства. В списке "stud_domain.acl" есть ".google.ru". Так вот при открытии "https://www.google.ru" каждый раз приходится подтверждать исключение безопасности. Как сделать, чтоб пользователь только однажды подтвердил, и больше этот вопрос в браузере не возникал?