我希望iptables只过滤一个面向WAN的接口eth0。 如何才能做到这一点? 我想保持在eth0上打开ftp和ssh端口。
所以对于所有的接口,只要你想接受所有的stream量,在eth0上,你想删除除了ftp和ssh之外的所有stream量。
首先,我们可以设定默认接受所有stream量的策略。
iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
然后,我们可以重置您的防火墙规则。
iptables -F
现在我们可以说我们希望允许eth0上的传入stream量,这是我们已经允许的连接的一部分。
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
另外,我们希望允许在eth0上传入ssh连接。
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
但是,eth0上的任何其他内容都应该被删除。
iptables -A INPUT -i eth0 -j DROP
稍微深入一点,请参阅这个CentOS维基条目 。
FTP比ssh复杂,因为它可以使用一个随机的端口,所以看到这个以前的问题 。
像这样的东西应该做的工作:
iptables -A INPUT -i eth1 -p all -j DROP iptables -A INPUT -i eth0 -p all -j ACCEPT
在你的iptables规则中指定接口的选项是-i
,例如: -i eth0
。
当你创build一个iptables
规则时非常简单,那么你必须指定接口。 指定iptables
应该工作的LAN卡的选项是-i
以下规则可以给你一个很好的例子
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
最后一条规则是拒绝任何不符合前两条规则的其他数据包。 iptables
中的所有规则都以给定的顺序执行,所以拒绝数据包的规则总是最后一个。
请阅读iptables的手册页 – 或者如果我误解了你的问题,请提出更具体的问题。