我在很多服务器上使用iptables,但现在使用默认的Policy作为DROP时遇到了这个问题。
这是我在VPS中使用的规则,尝试了许多时间的一切似乎很好,但是当我使用这个规则时,VPS断开。
只有我想要ssh端口2222和ntp更新我的时间。
iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p udp --sport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p udp --dport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p udp --sport 123 -m state --state ,NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p udp --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -j DROP iptables -N LOGGING iptables -A INPUT -j LOGGING iptables -A LOGGING -m limit --limit 10/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
直到从VPS注销我可以访问VPS它仍然build立,如果一旦我用于注销,并试图再次login,我无法login。 有人会为我审查规则吗?
miniBill是正确的:你确实混淆了sport和dport 。 当你写:
iptables -A INPUT -i eth0 -p tcp --sport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT
您的INPUT sshstream量到您的服务器,所以应该有目的地端口2222,而不是源端口; OUTPUTstream量也有同样的问题。 改变这些行
iptables -A INPUT -i eth0 -p tcp --dport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT
事情应该会更好。