辛星解读Linux下iptables的配置

查看与清除保存规则:

查看本机iptables设置: iptables -L -n

清除预设表filter中的所有规则连的规则: iptables -F

清除预设表filter中使用者自定链中的规则: iptables -X

把当前配置保存: /etc/rc.d/init.d/iptables save

重启iptables功能: service iptables restart

设定预设规则:

iptables -p INPUT DROP

iptables -p OUTPUT ACCEPT

iptables -p FORWARD DROP

上面的意思是超出了iptables里的filter表中的两个链规则(INPUT、FORWARD)时,不在这两个规则包里的数据包直接DROP,也就是放弃。这样的配置还是很安全的,我们要控制流入数据包。而对于OUTPUT链,也就是流出的包,我们不用做太多限制,而是采用ACCEPT,也就是说,不在这个规则里的包也可以通过。

也就是说INPUT、FORWARD这两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过。当然我们也可以三个链都使用DROP,但是这样要写的规则就会增加。如果我们只想要有限的几个规则,比如只作为web服务器,那么我们还是推荐这三个链都是DROP。

INPUT链:

INPUT链的默认规则是DROP,我们就需要写ACCEPT(通过)的链:

为了能远程登录,我们要开启22端口,操作为:

iptables -A INPUT -p tcp –dport 22 -j ACCEPT

iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT (注意,如果我们把OUTPUT设置为DROP的时候要写上它,如果我们忘了写它,那么会出现始终无法ssh的情况)

如果我们做了web服务器,我们需要开启80端口,操作为:

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

当然如果我们的WEB服务器把OUTPUT也设置为了DROP,那么还需要加上:

iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT

如果我们做了邮件服务器,通常需要开启25和110端口:

iptables -A INPUT -p tcp –dport 110 -j ACCEPT

iptables -A INPUT -p tcp –dport 25 -j ACCEPT

如果我们做了DNS服务器,那么通常开启53端口:

iptables -A INPUT -p tcp –dport 53 -j ACCEPT

允许loopback,不然会导致DNS无法正常关闭等问题:

iptables -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)

iptables -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)

OUTPUT链:

由于OUTPUT链默认规则是ACCEPT,所以我们需要些DORP(放弃)的链。

我们可以减少不安全的端口连接,比如31337,如下:

iptables -A OUTPUT -p tcp –sport 31337 -j DROP

iptables -A OUTPUT -p tcp –dport 31337 -j DROP

比如我们只允许192.168.0.101的机器进行SSH连接,如下:

iptables -A INPUT -s 192.168.0.101 -p tcp –dport 22 -j ACCEPT

如果要允许或者限制一段IP可以用192.168.0.0/24表示192.168.0.1-255之间的所有IP,这里的24是子网掩码数。

如果我们允许所有IP都可以进行SSH连接,,如下:

iptables -A INPUT -p tcp –dport 22 -j ACCEPT

保存配置:

因为对于命令的方式,都是即时生效的,如果想要重启后也生效,就要写入到/etc/sysconfig/iptables里面。

我们可以使用/etc/rc.d/init.d/iptables save来保存当前配置到配置文件中

FORWARD链:

FORWARD链的默认规则也是DROP,所以我们就写需要ACCEPT的链,对正在转发链的监控。

首先我们需要开启转发功能,在做NAT时,FORWARD默认规则是DROP时,必须做:

一直觉得人应该去旅行,在年轻的时候,趁着有脾气装潇洒,

辛星解读Linux下iptables的配置

相关文章:

你感兴趣的文章:

标签云: