在一个接口上启用iptables

我希望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的手册页 – 或者如果我误解了你的问题,请提出更具体的问题。