Eu tenho o iptables e o squid na mesma caixa. O tráfego HTTP não parece estar passando pelo proxy transparente quando eu altero minhas regras na tabela de filtros.
Qual é o melhor ponto para filtrar o tráfego HTTP quando ele é redirecionado através do proxy e encaminhado na Internet?
Topologia:
Internet < eth0 < eth1
eth1.10
tabela de roteamento
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
squid:
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
nat table:
-A PREROUTING -i eth1.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.254:3128
-A POSTROUTING -o eth0 -j MASQUERADE
tabela de filtros
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
Esse método funciona porque a política padrão é ACCEPT. Abaixo estão as minhas regras de filtragem que não funcionam com o squid.
tabela de filtros
: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
Deixe-me saber se você precisar de mais informações, obrigado.