我在透明代理(端口 3128)上运行 squid,并通过 PPTPD 连接 VPN 客户端 + ip 转发。我想允许用户连接到端口 80(3128),但阻止所有其他 TCP 流量。
我目前正在使用以下内容:
iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t filter -A INPUT -i ppp+ -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -i ppp+ -p tcp --dport 3128 -j ACCEPT
iptables -t filter -A INPUT -i ppp+ -p tcp -j DROP
虽然我可以看到 HTTP 流量正在通过 squid,但我预计 HTTPS(443)会被阻止,但连接到 VPN 时我仍然可以加载 HTTPS 页面。
您能否指出这里阻止所有来自 VPN 客户端的非 HTTP TCP 流量到底哪里出了问题?
谢谢
答案1
我猜想也许过滤表没有受到 VPN 流量的影响。将其更改为 FORWARD 后,一切正常
iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A FORWARD -i ppp+ -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i ppp+ -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -i ppp+ -j DROP
iptables -A FORWARD -o ppp+ -j DROP