![iptables 无法建立 http/https 连接](https://linux22.com/image/702093/iptables%20%E6%97%A0%E6%B3%95%E5%BB%BA%E7%AB%8B%20http%2Fhttps%20%E8%BF%9E%E6%8E%A5.png)
我正在尝试使用 IPTables 配置防火墙,该防火墙位于 LAN 和 Web 服务器之间。
我想允许 LAN 访问 Web 服务器上的网站。但 Web 服务器不能发起与 LAN 的连接。
我正在使用以下规则但无法建立连接。
Web服务器:172.16.10.88 LAN:192.168.0.0/16
iptables -A FORWARD -p tcp -s 192.168.0.0/16 -d 172.16.10.88 -m multiport -
-dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -s 172.16.10.88 -d 192.168.0.0./16 -m multiport
--dports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -j DROP
我该如何修复这个问题?谢谢
答案1
如果您想要允许从 Web 服务器返回的数据包到达您的 LAN 客户端,您需要更改第二条规则:
iptables -A FORWARD -p tcp -s 172.16.10.88 -d 192.168.0.0./16 -m multiport
--sports 80,443 -m state --state ESTABLISHED -j ACCEPT
当返回响应时,端口 80、443 是源端口而不是目标端口。
一种好的做法是允许RELATED
流量ESTABLISHED
而不进行任何其他限制(源或目的地),例如:
iptables -A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
这条规则应该放在第一位。只要你限制了发起流量,这样做就没问题。