Ubuntu13.04下Iptables设置

转载自:http://hongwei.im/iptables-setting-for-ubuntu-1304/

Iptables是一个防火墙,所有的Ubuntu官方发行版(Ubuntu,Kubuntu,Xubuntu)都默认自带Iptables。当你安装完Ubuntu以后,Iptables就已经装好了,但是默认设置是允许所有的通讯。从Ubuntu 8.04版本开始,Ubuntu有了一个防火墙配置的GUI工具UFW

ubuntu下跟其他linux系统的操作基本相同,可能略有不同。
iptables命令的选项很多,多使用man吧。

查看本机设置

查看本机的Iptables设置使用下面的命令:

通过iso文件刚安装完的纯净的ubuntu,查看一下防火墙设置的话,是这样没有任何规则的:

没有任何规则。

清除规则

不管有没有配置过规则,在重新进行配置之前,需要先清除规则:

 

设定预设规则

这样就清除干净了,下面开始配置,先设定预设规则。
对于防火墙的设置,有两种策略:一种是全部通讯口都允许使用,只是阻止一些我们知道的不安全的或者容易被利用的口;另外一种,则是先屏蔽所有的通讯口,而只是允许我们需要使用的通讯端口。

注意-P中的P需要大写,表示Protocol。

可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过。
当超出了IPTABLES里filter表里的两个链规则(INPUT、FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃)。应该说这样配置是很安全的,我们要控制流入数据包。
而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在这个规则里的包怎么办呢,那就是通过。

添加规则

先来添加INPUT规则,因为INPUT预设的是DROP,所以要添加ACCEPT规则。
首先是22端口,这个的用处地球人都知道。

或者,你不写22,写ssh也可以。

给Web服务器开启80端口

给FTP服务开启20和21端口

给邮件服务开启25和110端口

对于OUTPUT规则,因为预设的是ACCEPT,所以要添加DROP规则,减少不安全的端口链接。

具体要DROP掉哪些端口,可以查询相关的资料,可以把一些黑客常用的扫描端口全部DROP掉,多多少少提高一点服务器的安全性。

我们还可以把规则限制到只允许某个IP:

这表示只允许192.168.0.18的机器进行SSH连接。

如果要允许一个IP段,可以使用下面的写法:

这表示允许192.168.0.1/255IP段的机器进行连接。
但是,注意我们前面已经添加一条规则来允许所有IP连接22端口,需要把这条规则删除掉。

对于FORWARD规则,因为预设的是DROP,所以要添加ACCEPT规则。
开启转发功能

丢弃坏的TCP包

处理IP碎片数量,防止攻击,允许每秒100个

设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包

Iptables的保存和调用

现在该提一下保存的问题了。
我们用命令来添加的设置,都不会自动保存,一旦退出,设置都将不存在了,需要手动去保存一下。

把刚才设置的规则保存到指定的地方,文件名可以自定义。

调用Iptables设置

由于每次开机或重启后都需要去调用一次,我们把它设置自动的,执行

后面,加上

评论关闭

return top