iptables 无法建立 http/https 连接

iptables 无法建立 http/https 连接

我正在尝试使用 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

这条规则应该放在第一位。只要你限制了发起流量,这样做就没问题。

相关内容