iptables 设置开放端口

iptables 设置开放端口

ipables 配置

尝试允许从外部世界连接到服务器。端口扫描器报告端口未打开。确认后,我的 iptables 设置正确。

eth0 - 私有局域网
tun0 - VPN 接口
ppp0 - 移动宽带连接(没有来自 ISP 的防火墙限制)

-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -i ppp0 -p icmp -j ACCEPT
-A INPUT -i ppp0 -p udp -m multiport --dports 53,1194 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m multiport --dports 25,53,80,143,443,587 -j ACCEPT

希望 iptables 是罪魁祸首,否则我将花费更多时间来处理此服务器。感谢您的帮助。

答案1

如果那是整体防火墙规则集,那么我同意您应该开放 UDP 端口 53 和 1194 以及 TCP 端口 25、52、80、143、443 和 587 的流量。

如果你想更深入地了解问题是否出在防火墙上,请添加最后一行

-A INPUT -j LOG --log-prefix "INPUT DROP: "

并观察是否有任何日志条目出现在通常的位置(通常/var/log/messages会出现,但这取决于您的rsyslog设置)。

如果数据包仍然无法通过,但没有任何记录,那么您可以更加确信问题出在服务器之外。顺便说一句,端口扫描器并不是判断您是否打开了 TCP 端口的最佳方法;例如,尝试telnet server 443从随机客户端进行检查。它比端口扫描器更简单,因此失败的可能性更小,因此得出错误结论的风险更小。

答案2

尝试添加此行,

-A INPUT -i ppp0 -p tcp  -m state --state ESTABLISHED,RELATED -j ACCEPT

相关内容