Прозрачное прослушивание прокси на подчиненных интерфейсах
У меня есть iptables и squid на одной коробке. HTTP-трафик, кажется, не проходит через прозрачный прокси, когда я изменяю свои правила в таблице фильтров.
Как лучше всего фильтровать http-трафик, когда он перенаправляется через прокси-сервер и пересылается через Интернет?
Топология:
Internet < eth0 < eth1
eth1.10
таблица маршрутизации
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.10.0 * 255.255.255.0 U 0 0 0 eth1.10
NetStat:
tcp 0 0 192.168.10.254:3128 0.0.0.0:* LISTEN
Кальмар:
http_port 192.168.10.254:3128 intercept
acl hq src 192.168.10.0/24
acl http port 80
http_access allow hq
http_access deny
нат таблица:
-A PREROUTING -i eth1.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.254:3128
-A POSTROUTING -o eth0 -j MASQUERADE
таблица фильтров
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
Этот метод работает, потому что политика по умолчанию - ПРИНЯТЬ. Ниже приведены мои правила фильтрации, которые не работают с Squid.
таблица фильтров
:INPUT DROP
:FORWARD DROP
:OUTPUT DROP
-A INPUT -s 192.168.10.0/24 -i eth1.10 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1.10 -p udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
-A FORWARD -i eth1.10 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1.10 -j ACCEPT
-A OUTPUT -o eth1.10 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth1.10 -p udp --sport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT
Дайте мне знать, если вам нужно больше информации, спасибо.