iptables阻塞除PPP0上的所有端口之外的所有端口

我有2个dsl帐户。 一个是在我的路由器上设置的一般用途,另一个是在服务器上设置的。 我的路由器安全性很好,但我注意到在我的服务器上设置了PPPoe后,路由器的安全性完全被绕过了,而且我的服务器上的所有端口都基本向全世界开放。

所以我试图阻止PPP上的所有连接

iptables -A INPUT -i ppp0 -p tcp -j DROP iptables -I INPUT -i ppp0 -p tcp --dport 563 -j ACCEPT 

但现在我无法连接到或从端口563。

我怀疑我从根本上误解了iptables的工作原理。

订单很重要! 你不会走错路线,但你需要改变顺序。 先接受ACCEPT,然后是REJECT,你会没事的。

你需要设置一些默认的规则,然后为其余的政策。 这是一个很好的起点:

 iptables -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT --match comment --comment "Accept traffic from outgoing connections and stuff like FTP." iptables -A INPUT -p icmp -j ACCEPT --match comment --comment "Allow ping" iptables -A INPUT -p tcp --dport 22 -j ACCEPT --match comment --comment "Allow SSH" iptables -A INPUT --in-interface lo -j ACCEPT --match comment --comment "Allow everything on the localhost" iptables -P INPUT DROP 

然后你可以添加你的规则:

 iptables -A INPUT -i ppp0 -p tcp --dport 563 -j ACCEPT