1.删除已有规则
在新设定iptables规则时,我们一般先确保旧规则被清除,用以下命令清除旧规则:
2.设置chain策略
对于filter table,默认的chain策略为ACCEPT,我们可以通过以下命令修改chain的策略:
以上命令配置将接收、转发和发出包均丢弃,施行比较严格的包管理。由于接收和发包均被设置为丢弃,当进一步配置其他规则的时候,需要注意针对INPUT和OUTPUT分别配置。当然,如果信任本机器往外发包,以上第三条规则可不必配置。
3.屏蔽指定ip
有时候我们发现某个ip不停的往服务器发包,这时我们可以使用以下命令,将指定ip发来的包丢弃:
以上命令设置将由x.x.x.x ip发往eth0网口的tcp包丢弃。
4.配置服务项
利用iptables,我们可以对日常用到的服务项进行安全管理,比如设定只能通过指定网段、由指定网口通过SSH连接本机:
若要支持由本机通过SSH连接其他机器,由于在本机端口建立连接,因而还需要设置以下规则:
类似的,对于HTTP/HTTPS(80/443)、pop3(110)、rsync(873)、MySQL(3306)等基于tcp连接的服务,也可以参照上述命令配置。
对于基于udp的dns服务,使用以下命令开启端口服务:
5.网口转发配置
对于用作防火墙或网关的服务器,一个网口连接到公网,其他网口的包转发到该网口实现内网向公网通信,假设eth0连接内网,eth1连接公网,配置规则如下:
6.端口转发配置
对于端口,我们也可以运用iptables完成转发配置:
以上命令将422端口的包转发到22端口,因而通过422端口也可进行SSH连接,当然对于422端口,我们也需要像以上“4.配置服务项”一节一样,配置其支持连接建立的规则。
7.DoS攻击防范
利用扩展模块limit,我们还可以配置iptables规则,实现DoS攻击防范:
--litmit 25/minute 指示每分钟限制最大连接数为25
--litmit-burst 100 指示当总连接数超过100时,启动 litmit/minute 限制
8.保存更改
/sbin/iptables-save
网友评论