Ich habe iptables und squid auf derselben Box. Der HTTP-Verkehr scheint nicht durch den transparenten Proxy zu gehen, wenn ich meine Regeln für die Filtertabelle ändere.
Was ist der beste Punkt, um HTTP-Verkehr zu filtern, wenn er über den Proxy umgeleitet und im Internet weitergeleitet wird?
Topologie:
Internet < eth0 < eth1
eth1.10
Routing-Tabelle
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
Netzstat:
tcp 0 0 192.168.10.254:3128 0.0.0.0:* LISTEN
Tintenfisch:
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-Tabelle:
-A PREROUTING -i eth1.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.254:3128
-A POSTROUTING -o eth0 -j MASQUERADE
Filtertabelle
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
Diese Methode funktioniert, weil die Standardrichtlinie ACCEPT ist. Unten sind meine Filterregeln, die mit Squid nicht funktionieren.
Filtertabelle
: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
Sagen Sie mir Bescheid, wenn Sie weitere Informationen benötigen, danke.