我有一台服务器,到目前为止,它只被允许与自己、本地网络上的其他设备进行通信,或者,如果需要与外界通信,则只能通过它所连接的 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: "