Установил squid 4.0.17 на debian 8.6 из этой статьи https://habrahabr.ru/post/272733/. Со следующим конфигом работает фильтрация http и https:
- dns_nameservers 127.0.0.1
- acl localnet src 192.168.0.0/16
- acl inet url_regex -i «/etc/squid/allowed_servers.acl»
- 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
- http_access allow localhost manager
- http_access deny manager
- http_access allow !inet localnet
- http_access allow localhost
- http_access deny all
- http_port 3128 intercept #options=NO_SSLv3:NO_SSLv2
- http_port 3130 #options=NO_SSLv3:NO_SSLv2
- https_port 3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth =off cert=/etc/squid/cert/squidCA.pem
- always_direct allow all
- sslproxy_cert_error allow all
- #sslproxy_flags DONT_VERIFY_PEER
- acl blocked ssl::server_name «/etc/squid/blocked_https.txt»
- 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
С таким конфигом https блокируются все сайты, кроме указанных в файле blocked_https.txt и http блокируются сайты прописанные в файле allowed_servers.acl, а остальные все открыты.
Если,меняю, правило http_access allow !inet localnet на http_access allow inet localnet: http блокируются все, кроме тех которые указаны в файле, но тогда https перестает вообще открываться, выдает ошибку сертификата в firefox-SEC_ERROR_UNKNOWN_ISSUER, chrome -NET::ERR_CERT_AUTHORITY_INVALID.
Как сделать, чтоб http и https блокировали все сайты, кроме указанных в файлах?