6.9 线上生产服务器的iptables脚本

在编写安全的iptables脚本之前,依然要先做好准备工作;现在比较新的CentOS系统版本是CentOS 6.4 x86_64,可以通过如下命令查看它自带的iptables版本:

iptables --version

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

iptables v1.4.7

如果要查看系统的内核版本号,可以用如下命令:

uname -r

2.6.32-358.el6.x86_64

为什么要采用较新的CentOS系统呢,这是因为iptables现在有许多新的模块,如果在原有的老系统和老内核上采用这些新的iptables模块,则必须要采取重新编译内核的方法。不过现在新版的CentOS系统自带的iptables V1.4.7已经支持了原先不支持的许多模块,比如connlimit、recent模块,所以我们部署iptables防火墙时就容易得多了。

阅读 ‧ 电子书库

注意

鉴于iptables v1.3.x和iptables v1.4.7的语法有细微的区别,除了线上生产服务器(基于稳定的原则,线上环境不可能随便去更改内核及iptables版本)之外,以下所有的iptables脚本都以CentOS 6.4 x86_64系统、内核版本2.6.32-358.el6.x86_64、iptables版本1.4.7为平台来说明。

由于这里的服务器都涉及生产服务器,为了防止发生意外事件,所以在调试iptables脚本之前,先配置一个Crontab计划任务,每5分钟关闭一次防火墙,以免将自己千里之外的防火墙SSH连接也断掉了,那样就得不偿失了,编辑/etc/crontab计划任务的命令如下:

*/5 * * * * root /etc/init.d/iptables stop

等确保iptables万无一失以后,才能清除掉此计划任务。