воскресенье, 3 января 2016 г.

Прозрачный Squid c исключениями

Задача

Раздавать интернет для разных подсетей с использованием SQUID и NAT
Для сети inet  192.168.0.0/24  - раздавать интернет nat'ом минуя squid
Для сети mynet 192.168.1.0/24 - дать доступ к интернету только через squid

Решение

Настройка SQUID
acl mynet src 192.168.1.0/24
http_access allow mynet
http_access deny all
icp_access allow mynet
icp_access deny all
http_port 3128 transparent
даем доуступ к squid сети mynet 
Полный рабочий конфиг
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl mynet src 192.168.1.0/24    # RFC1918 possible internal network
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
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 Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow mynet
http_access deny all
icp_access allow mynet
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
cache_mem 64 MB
cache_dir ufs /var/spool/squid 1024 16 256
cache_mgr oaoermolino@yandex.ru
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Package(.gz)*)$        0       20%     2880
refresh_pattern .               0       20%     4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid

Правила IPTABLES

Раздаем интернет в сеть
iptables -t nat -A POSTROUTING -o eth_ИНТЕРНЕТ -j MASQUERADE
 Разрешаем сети 192.168.0.0/24 проходить минуя SQUID
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m multiport --dport 80 -j RETURN
Сеть  192.168.1.0/24 заворачиваем на SQUID
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth_ЛОКАЛКА -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

Комментариев нет: