用于 http 服务器和 vpn 的 iptables

用于 http 服务器和 vpn 的 iptables

我有一台服务器,到目前为止,它只被允许与自己、本地网络上的其他设备进行通信,或者,如果需要与外界通信,则只能通过它所连接的 VPN 与互联网进行通信(这将在下面进行调整)。此规则的例外是首先允许服务器连接到 VPN。所有其他交通均不允许!

现在,我想在服务器上为一个简单的网站应用程序添加虚拟主机。本地网络之外的任何人都应该可以访问该网站。

这是我目前的 IPTABLES。

Chain INPUT (policy DROP 36 packets, 16356 bytes)
 pkts bytes target     prot opt in     out     source               destination         
46009   17M ACCEPT     all  --  lo     any     anywhere             anywhere            
1212K   87M ACCEPT     all  --  any    any     192.168.0.0/24       anywhere            
4294K 5952M ACCEPT     all  --  tun+   any     anywhere             anywhere            
4366K 6246M ACCEPT     udp  --  any    any     anywhere             anywhere             udp spt:openvpn
  313 18288 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http state NEW,ESTABLISHED

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 137 packets, 39466 bytes)
 pkts bytes target     prot opt in     out     source               destination         
46009   17M ACCEPT     all  --  any    lo      anywhere             anywhere            
3872K 5478M ACCEPT     all  --  any    any     anywhere             192.168.0.0/24      
2078K  113M ACCEPT     all  --  any    tun+    anywhere             anywhere            
2140K  260M ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:openvpn
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp spt:http state ESTABLISHED

因此,我遇到了外部设备无法查看网页的问题,并确认所有外部端口检查工具都表明端口 80 未打开。我检查了我的路由器,并确认它不是问题的根源,因此我相信这是服务器 IPTABLES 的问题。

您觉得我的设置有什么不妥吗iptables

再次,总结期望:1)允许所有环回 2)允许所有本地 3)允许建立 vpn 4)允许 vpn 流量 5)允许 http 托管

编辑:是的,我相信你们都对,我的问题有点模糊。我特别想要求审查我的 IPTABLES 配置,特别是端口 80 链,因为我觉得我的 IPTABLES 限制太多,导致我的 http 服务器无法根据请求提供网页。然而,在 DukeLion 向我指出记录 iptables 操作后,我确认问题至少目前在其他地方。

这个问题已经解决了。

答案1

作为快速建议,我建议您在输入和输出链的末尾添加日志记录规则。这将允许您实际查看被阻止的数据包并了解应该允许哪些数据包。

iptables -A INPUT -m limit --limit 10/min -j LOG --log-prefix "iptables drop: "
iptables -A OUTPUT -m limit --limit 10/min -j LOG --log-prefix "iptables drop: "

相关内容