给Iptables定时
作者:付建民 发文时间:2004.11.16
作为网络管理员,需要经常定时对防火墙的规则进行修改,提高安全系数。在Linux中有Iptables,Iptables中有一个重要参数time。利用这个参数,用户可以完成防火墙中需要定时的各种规则的配置。虽然有时用户也可以利用cron来完成相关的功能,但time参数的利用会带来更大的便利。
由于在公开发布的Linux内核文件中,有关Iptables中的各种参数里并不包含time参数,所以必须通过内核升级的方式打上这个补丁。因此,需要去相关网站下载有关补丁文件,通过升级内核加入该参数。
此次操作应以root身份登录,进行操作的系统配置为Debian 3.0、kernel-2.2.20和iptables-1.2.6a。笔者下载了iptables-1.2.8.tar.bz2和patch-o-matic-20030912.tar.bz2两个文件。
装载模块
首先在线对内核进行升级,命令如下:
#apt-get install kernle-image-2.4.21-5-686
升级完成后重启机器,以root身份登录。进入下载文件所在目录,解压后开始升级。第一步是要将Iptables的补丁文件中的time模块写入到Linux 内核文件中去,以备重新编译内核。
进入Iptables补丁文件目录,所需的time模块在base子目录下。随后用户依照README文件中的示例运行如下命令:
#KERNEL_DIR=/usr/src/linux-2.4 ./runme base
/usr/src/linux-2.4是本机系统内核文件所在目录,上面的命令运行后会出现一个模块选择界面。界面有两个区域,一个区域中写出了相关的模块名、功能和语法示例;另一个区域给出各种选项,例如Y/ N/ R/.........../ Q/ ?/_ ,其中N选项表示选择下一个模块,Y表示确定,Q表示退出。
首先确定当前的模块是否是用户需要的,不需要的就按“N”键后回车,继续显示下一模块的相关信息。time模块是最后一个,当出现了time模块后,将里边的相关语法示例抄录下来,以备应用。随后按“Y”键表示安装这一模块,最后按“Q”退出。
编译内核
进入内核文件所在目录,输入下面的命令开始编译内核:
#make mrproper
#make xconfig(或#make menuconfig)
#make dep
#make bzImage
#make install
接下来输入下面的命令装入模块文件:
#make modules
#make modules_install
然后升级Iptables。进入解压后的Iptables文件目录,输入以下命令:
#make KERNLE_DIR=内核文件所在目录
#make install KERNLE_DIR=内核文件所在目录
#make install-devel
重启后输入下面的命令进行检验:
#iptabls -A INPUT -m time --timestart 8:00
--timestop 12:00 --days sun -j ACCEPT
如果没有出现错误提示,即可输入下面的命令后会看到time的相关记录:
#iptables -L
至此,完成了全部的升级工作,实现了Iptables的定时功能,为网络服务中的定时需要带来了便利。(T111)