我试图在我的VPS(端口5900)上打开一个额外的传出端口。
这里是我的/ etc / sysconfig / iptables:
# Generated by iptables-save v1.3.5 on Sun Jul 10 11:27:12 2011 *mangle :PREROUTING ACCEPT [68:4952] :INPUT ACCEPT [68:4952] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [60:7060] :POSTROUTING ACCEPT [60:7060] COMMIT # Completed on Sun Jul 10 11:27:12 2011 # Generated by iptables-save v1.3.5 on Sun Jul 10 11:27:12 2011 *filter :INPUT ACCEPT [68:4952] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [60:7060] :RH-Firewall-1-INPUT - [0:0] -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT COMMIT # Completed on Sun Jul 10 11:27:12 2011 # Generated by iptables-save v1.3.5 on Sun Jul 10 11:27:12 2011 *nat :PREROUTING ACCEPT [18:1080] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT # Completed on Sun Jul 10 11:27:12 2011
但是,5900端口仍然closures。
有人可以帮我吗? 谢谢。
我假设你的意思是“传入”,而不是“传出”端口5900,因为你的传出端口是由你当前的规则正确打开的。
通常我摆脱了RH-Firewall-1-INPUT链,并使用以下命令:
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] # Allow traffic from the loopback interface -A INPUT -i lo -j ACCEPT # Allow ICMP traffic as it helps with connection diagnostics -A INPUT -p icmp --icmp-type any -j ACCEPT # Allow traffic from already existing connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow connections on port 5900 -A INPUT -p tcp --dport 5900 -m state --state NEW -j ACCEPT COMMIT
但是如果你想保持尽可能接近最初的CentOSconfiguration,你可以尝试以下方法:
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 255 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -m state --state NEW -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 5900 -m state --state NEW -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
当前规则集的问题是,您不会将所有传入stream量发送到RH-Firewall-1-INPUT链,这是通过以下行完成的:
-A INPUT -j RH-Firewall-1-INPUT
此外,不要忘记重新加载您的规则服务iptables重新启动 。
您的输出链上的政策是接受。 在您的configuration中,没有规则拒绝输出5900端口。
你确定你有听5900端口的东西吗?
尝试
sudo lsof -l :5900
要么
sudo netstat -an | grep LISTEN | grep 5900
看附件是什么(如果有的话)。
如果这是VNC,并且您的VPS托pipe在亚马逊上,那么请确保在亚马逊安全组中打开安全限制(默认情况下,亚马逊只允许端口22和80)。
输出端口通常不会被阻塞,因此发起连接的主机可能没有任何操作。
此外,5900的防火墙规则应该在接收主机上(即你的VPS),而且我猜想它应该看起来像这样;
-A INPUT -p tcp -m tcp -m state --dport 5800 --state NEW -j ACCEPT
但是,除了检查IP是否来自你的networking,而不是来自互联网(一般向公众开放VNC可能是不安全的)。
最后,如果您的组织也有防火墙,您可能需要检查防火墙是否阻止在未经授权的端口上传出连接。