在一个界面上启用iptables


16

我希望iptables仅过滤面向WAN的一个接口eth0。如何才能做到这一点?我想让eth0上的ftp和ssh端口保持打开状态。


请阅读iptables手册页-否则如果我误解了您的问题,请使问题更具体。
Jari Jokinen

Answers:


25

因此,对于除一个接口以外的所有接口,您都希望接受所有流量,而在eth0上,您要丢弃除ftp和ssh之外的所有传入流量。

首先,我们可以设置默认情况下接受所有流量的策略。

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

然后,我们可以重置您的防火墙规则。

iptables -F

现在我们可以说我们想允许eth0上的传入流量,这是我们已经允许的连接的一部分。

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 Wiki条目

FTP比ssh棘手,因为它可以使用随机端口,因此请参阅前面的问题


5
警告!!!在“ iptables -F”之前执行“ iptables -P ...”。如果您当前将默认规则设置为丢弃流量,则运行-F将使您无法使用。这就是为什么最好的做法是保留默认策略允许,并专门添加一条规则以丢弃所有其他流量。
合作社

8

像这样的事情应该做的工作:

iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT

1
相当多的地方(尽管可能比WAN接口上的“ Drop EVERYTHING”好一些,是吗?)-编写规则以过滤要过滤的接口,以及ACCEPT其他所有接口上的过滤条件。
voretaq7 2011年

4

在iptables规则中指定接口的选项为-i,例如:-i eth0


4

当您制定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均以给定顺序执行,因此拒绝数据包的规则始终是最后一条。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.