У меня есть два шлюза linux, использующих squid в качестве прозрачного прокси. Когда я использую их по отдельности, все в порядке. Но когда я использую их в той же сети, каждый запрос от браузера будет возвращать 403.
Топологическая структура сети такая:
Клиент -> | Прозрачный шлюз A -> Прозрачный шлюз B | -> Интернет
A:172.16.0.1 B:10.190.90.1
Настройка iptables:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
РЕДАКТИРОВАТЬ:
squid.conf обоих шлюзов:
acl localnet src 10.0.0.0/8 # RFC1918 возможная внутренняя сеть
acl localnet src 172.16.0.0/12 # RFC1918 возможная внутренняя сеть
acl localnet src 192.168.0.0/16 # RFC1918 возможная внутренняя сеть
acl localnet src fc00 :: / 7 # RFC 4193 диапазон локальной частной сети
acl localnet src fe80 :: / 10 # RFC 4291 link-local (напрямую подключается)
acl SSL_ports порт 443
acl Safe_ports порт 80 # http
acl Safe_ports порт 21 # ftp
acl Safe_ports порт 443 # https
acl Safe_ports порт 70 # gopher
acl Safe_ports порт 210 # wais
acl Safe_ports port 1025-65535 # незарегистрированные порты
acl Safe_ports порт 280 # http-mgmt
acl Safe_ports порт 488 # gss-http
acl Safe_ports порт 591 # файловый менеджер
acl Safe_ports порт 777 # многоязычный http
acl CONNECT метод CONNECT
http_access deny! Safe_ports
http_access deny CONNECT! SSL_ports
http_access разрешить диспетчер локального хоста
http_access deny manager
http_access разрешить локальную сеть
http_access разрешить localhost
http_access запретить все
http_port 3128 перехват
http_port 3129