man logger
man syslogd
2. 輸出Iptables日志到一個指定的文件
Iptables的man參考頁中提到: 我們可以使用Iptables在Linux內核中建立, 維護和檢查IP包過濾規則表。幾個不同的表可能已經創建, 每一個表包含了很多內嵌的鏈, 也可能包含用戶自定義的鏈。
Iptables默認把日志信息輸出到/var/log/messages文件。不過一些情況下你可能需要修改日志輸出的位置。下面向大家介紹如何建立一個新的日志文件/var/log/iptables.log。通過修改或使用新的日志文件, 你可以創建更好的統計信息或者幫助你分析網絡攻擊信息。
(1). Iptables默認的日志文件
例如, 如果你輸入下面的命令, 屏幕將顯示/var/log/messages文件中的Iptables日志信息:
# tail -f /var/log/messages
輸出:
Oct 4 00:44:28 debian gconfd (vivek-4435):
Resolved address "xml:readonly:/etc/gconf/gconf.xml.defaults"
to a read-only configuration source at position 2
Oct 4 01:14:19 debian kernel:
IN=ra0 OUT= MAC=00:17:9a:0a:f6:44:00:08:5c:00:00:01:08:00
SRC=200.142.84.36 DST=192.168.1.2
LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=18374
DF PROTO=TCP SPT=46040 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
(2).輸出Iptables日志信息到一個指定文件的方法
打開你的/etc/syslog.conf文件:
# vi /etc/syslog.conf
在文件末尾加入下面一行信息:
kern.warning /var/log/iptables.log
保存和關閉文件。
重新啟動Syslogd(如果你使用Debian/Ubuntu Linux):
# /etc/init.d/sysklogd restart
另外, 使用下面命令重新啟動Syslogd(如果你使用Red Hat/Cent OS/Fedora Core Linux):
# /etc/init.d/syslog restart
現在確認你的Iptables使用了log-level 4參數(前面有一個log-prefix標志)。例如:
# DROP everything and Log it
iptables -A INPUT -j LOG –log-level 4
iptables -A INPUT -j DROP
舉一個例子, 丟棄和記錄所有來自IP地址65.55.11.2的連接信息到/var/log/iptables.log文件。
iptables -A INPUT -s 64.55.11.2 -m limit
limit 5/m --limit-burst 7 -j LOG
log-prefix ‘** HACKERS **’ --log-level 4
iptables -A INPUT -s 64.55.11.2 -j DROP
命令解釋:
log-level 4: 記錄的級別. 級別4為警告(warning)。
log-prefix ‘*** TEXT ***’: 這里定義了在日志輸出信息前加上TEXT前綴。TEXT信息最長可以是29個字符, 這樣你就可以在記錄文件中方便找到相關的信息。
現在你可以通過/var/log/iptables.log文件參考Iptables的所有信息:
# tail -f /var/log/iptables.log