IPTABLES的LOG扩展目标将捕捉的信息缺省地放在/var/log/message中,为了将它的输出到存放指定文件,就需要使用ULOG扩展目标。
IPTABLES的ULOG扩展目标用netlink多播组(multicast group)向用户空间发送捕捉到的消息,发送到用户空间的消息必须用一个进程捕捉,一个工具是ULOGD(呵呵呵,据ULOG的文档说,它不是一个最优的方法),结果可以放到MYSQL等数据库表中,也可以放到一个单独的文件中(在这里讲一下放到单独的文件中,俺的机器中没运行MYSQL).ULOG的下载位置是:http://ftp.netfilter.org/pub/ulo ... ,版本号为1.02.
下面具体介绍一下各个步骤:各参数根据自己的需要而定.
一.设置IPTABLES
如果你的内核版本号不高于2.4.18,那么就需要重要编译内核以支持IPTABLES的ULOG扩展目标.
在IPTABLES用ULOG目标之前,需要加载ULOG的模块:
modprobe ipt_ULOG nlbufsiz=65535 flushtimeout=100
第一个参数说明需要加载ULOG模块,第二个参数指定netlink缓冲区大小,第三个参数指定清除缓冲区的时间,甚至缓冲不满.
ULOG目标在IPTABLES中的典型用法为:
iptables -A INPUT -j ULOG --ulog-nlgroup 32 --ulog-prefix "test:"
参数--ulog-nlgroup 32指定多播组组号.
二.安装配置ULOG(需要root权限)
将下载的文件ulogd-1.02.tar.bz2释放到一个目录,缺省ulogd-1.02.
cd ulogd-1.02
bash ./configure (嘿嘿嘿,如果直接./configure会有个错误)
make;make install
修改ULOG的缺省配置/usr/local/etc/ulogd.conf,将多播组号改为和上面IPTABLES设置的组号一致.
OK!在ROOT权限下运行ULOG:
ulogd -d (参数-d,指定ulog为一个守护进程)
看看/var/log/ulogd.syslogemu.呵呵呵,所有被ULOG的消息都在这了!
|