前面说了Freebsd下ipfw的配置,今天再说一下linux及centos下iptables的通用配置。相比于freebsd的ipfw centos下的iptables更加便于安装配置。
默认情况下iptables是集成在centos发行版本之中的,它集成到linux内核中,用户通过iptables,可以对进出你的计算机的数据包进行过滤。
通过iptables命令行设置你的规则,来把保护的计算机网络──允许哪些数据通过,哪些不能通过,哪些通过的数据需要进行记录等。
通过对iptables的设置甚至可以抵御小规模的DDOS攻击。
运行iptables --version来查看系统是否安装了iptables。
iptables --version或者iptables -V
一般会显示当前iptables版本 如 iptables v1.4.7 等。
如未显示版本,则表示需要手动安装iptables。
下载地址:http://www.netfilter.org/
一,启动iptables
命令行输入:service iptables status 可以查看当前iptables运行状态,显示如下
表示当前iptables已经运行,如未启动 可以运行 service iptables start 启动防火墙。
二,配置规则前准备
确认iptables已经启动之后,运行iptables --list查看当前iptables策略规则。
配置规则可以修改/etc/sysconfig/iptables 增加你想要的策略。
iptables未启动的情况下/etc/sysconfig/iptables 可能不存在,这时你就需要手动生成一个文件。
touch /etc/sysconfig/iptables 然后再添加规则。
使其生效的办法是修改好后 运行 service iptables restart 系统会载入你配置的iptables规则。
这里有个提示:如果你是刚接触linux或者对与iptables的配置不是很熟悉的话,建议你谨慎点。虚拟机情况还好,如果是远程登录的配置,很可能会把自己挡在外面无法连接。
这时你就需要添加一个Crontab任务
crontab -e
*/5 * * * * root /etc/init.d/iptables stop
这个任务意思是每5分钟关闭一次防火墙,避免出现远程连接SSH断掉无法登录。(此处借鉴抚琴煮酒大咖的办法,在此表示感谢)
三,添加具体规则
先看一个简单的规则
这个规则只允许80 和22端口的连接进入,其余的全部阻止。而对于出去的连接则没有限制。这是针对web服务器进行的一个规则配置,其余的规则可以根据自己的需要添加
根据网上规则总结的一些配置方法,分享给大家。
1,屏蔽指定ip
有时候我们发现某个ip不停的往服务器发包,这时我们可以使用以下命令,将指定ip发来的包丢弃:
Black_IP="x.x.x.x"
以上命令设置将由x.x.x.x ip发往eth0网口的tcp包丢弃。
2,配置服务项
利用iptables,我们可以对日常用到的服务项进行安全管理,比如设定只能通过指定网段、由指定网口通过SSH连接本机:
类似的,对于HTTP/HTTPS(80/443)、pop3(110)、rsync(873)、mysql(3306)等基于tcp连接的服务,也可以参照上述命令配置。
对于基于udp的dns服务,使用以下命令开启端口服务:
3,网口转发配置
对于用作防火墙或网关的服务器,一个网口连接到公网,其他网口的包转发到该网口实现内网向公网通信,假设eth0连接内网,eth1连接公网,配置规则如下:
4,端口转发配置
对于端口,我们也可以运用iptables完成转发配置:
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 --dport 422 -j DNAT --to 192.168.1.1:22
以上命令将422端口的包转发到22端口,因而通过422端口也可进行SSH连接,当然对于422端口,我们也需要像以上“4.配置服务项”一节一样,配置其支持连接建立的规则。
5,DoS攻击防范
利用扩展模块limit,我们还可以配置iptables规则,实现DoS攻击防范:
iptables -A INPUT -p -tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
--litmit 25/minute 指示每分钟限制最大连接数为25
--litmit-burst 100 指示当总连接数超过100时,启动 litmit/minute 限制
6,配置web流量均衡
可以将一台服务器作为前端服务器,利用iptables进行流量分发,配置方法如下:
以上配置规则用到nth扩展模块,将80端口的流量均衡到三台服务器。