我在同一个盒子上安装了 iptables 和 squid。当我更改过滤表上的规则时,HTTP 流量似乎没有通过透明代理。
当 http 流量通过代理重定向并在 Internet 上转发时,过滤 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
网络状态:
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
nat 表:
-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
此方法有效,因为默认策略是 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
如果您需要更多信息,请告诉我,谢谢。