FC6下使用ulogd把iptables日志记录到MySQL

第一步,安装 ulogd 以及 ulogd-mysql

# yum install ulogd
# yum install ulogd-mysql

安装完毕之后,配置 ulogd

把 ulogd 的数据库脚本倒到数据库中

# cd /usr/share/doc/ulogd-1.24/
# mysql
mysql> create database ulogd;
mysql> exit
# mysql -D ulogd < mysql.table

然后再修改 ulogd.conf 的配置文件

# vi /etc/ulogd.conf
找到 # output plugins. 行的字样
大约在 43 行,找到
plugin="/usr/lib/ulogd/ulogd_LOGEMU.so" 将其注释掉
取消 plugin="/usr/lib/ulogd/ulogd_MYSQL.so" 行的注释
表示输出到 MySQL 中
再找到配置文件中 MySQL 配置字段
大约在 59 行

[MYSQL]
table="ulog"
pass=""
user="root"
db="ulogd"
host="localhost"

修改为相应选项即可

修改完毕,启动 ulogd 服务.

# service ulogd start

如果没有什么错误提示就可以了

第二步,配置 iptables

设置你要记录的 iptables 规则,比如要记录 80 端口的包
-A INPUT -p tcp -m tcp --dport 80 -j ULOG
不过要注意的是,ULOG 不对包进行过滤,匹配上这一条规则之后,数据依旧继续往下匹配

这样就基本配置完毕了,当服务器上的 80 端口有数据的时候,报文的一些信息就会被记录到 MySQL 中,便于以后的查看与统计。