本文介紹如何在 debian下,通過 ulogd 把 iptables 的日誌儲存到 MySQL 中。這樣做的好處很多,最主要的好處莫過於以後的日誌統計會非常的便利。
安裝 ulogd 以及 ulogd-mysql
首先執行如下命令:
$ sudo apt-get install ulogd
$ sudo apt-get install ulogd-mysql
安裝完畢後,下面開始配置 ulogd。
首先,需要把 ulogd 的資料庫指令碼匯入到資料庫中:
$ mysql
mysql> create database ulogd;
mysql> use ulogd;
mysql> source /usr/share/doc/ulogd-mysql/mysql.table
然後再修改 ulogd.conf 的設定檔:
$ sudo 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 服務。
$ sudo /etc/init.d/ulogd restart
如果沒有遇到什麼錯誤提示,就說明已經成功了。
Step 2:配置 iptables
設定你要記錄的 iptables 規則,比如要記錄 80 連接埠的包。
-A INPUT -p tcp -m tcp –dport 80 -j ULOG
不過要注意的是,ULOG 不對包進行過濾,匹配上這一條規則之後,資料依舊繼續往下匹配。
這樣就基本配置完畢了,當伺服器上的 80 連接埠有資料的時候,報文的一些資訊就會被記錄到 MySQL 中,便於以後的查看與統計。