歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

Fedora Core6中IPtables日志管理技巧


Iptables的手冊中提到LOG target這個target是專門用來記錄數據包有關信息的。這些信息可能是非法的,那就可以用來除錯。LOG會返回包的有關細節,如IP頭的大部分和其他有趣的信息。這個功能是通過內核的日志工具完成的,一般是syslogd。返回的信息可用dmesg閱讀,或者可以直接查看syslogd的日志文件,也可以用其他的什麼程序來看。LOG對調試規則有很大的幫助,你可以看到包去了哪裡、經過了什麼規則的處理,什麼樣的規則處理什麼樣的包,等等。下面我們來實現如何通過內核的日志工具管理IPtables日志。

一、配置syslogd的配置文件/etc/syslog.conf

syslogd默認把日志信息輸出到/var/log/messages文件。 下面向大家介紹如何建立一個新的IPtables日志文件/var/log/iptables。 修改syslogd的配置文件/etc/syslog.conf,告訴syslogd IPtables使用哪個記錄等級。記錄等級的詳細信息可以查看文件syslog.conf,一般來說有以下幾種,它們的級別依次是:debug,info,notice,warning,warn,err,error,crit,alert, emerg,panic。其中,error和err、warn和warning、panic和emerg分別是同義詞,也就是說作用完全一樣的。注意這三種級別是不被贊成使用的(因為信息量太大)。信息級別說明了被記錄信息所反映的問題的嚴重程度。

IPtables的所有LOG信息可以通過內核的功能被記錄。

首先在文件syslog.conf裡添加如下內容

# Iptables logging kern.debug /var/log/iptables

然後再指定iptables的LOG規則使用級別debug(例如:iptables -I INPUT 1 -j LOG --log-prefix '[IPTABLES DROP LOGS]:' --log-level debug),就可以把所有的信息存入文件/var/log/iptables內。

最後重新啟動syslog服務或重啟計算機。

我用的是FC6,用service syslog restart命令可以很方便地啟動syslog服務。

二、使用IPtables滾動日志

所有的日志文件都會隨著時間的推移和訪問次數的增加而迅速增長, 因此必須對日志文件進行定期清理以免造成磁盤空間的不必要的浪費。FC6下有一個專門的日志滾動處理程序logrotate,logrotate能夠自動完成日志的壓縮、備份、刪除工作,系統默認把logrotate加入到系統每天執行的計劃任務中,這樣就省得管理員自己去處理了。

首先查看並確定logrotate的配置文件/etc/logrotate.conf內容如下:

# see "man logrotate" for details # rotate log files weekly weekly

# keep 4 weeks worth of backlogs rotate 4

# create new (empty) log files after rotating old ones create

# uncomment this if you want your log files compressed #compress

# RPM packages drop log rotation information into this directory include /etc/logrotate.d

# no packages own wtmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 }

# system-specific logs may be also be configured here.

然後在syslog的滾動日志配置文件/etc/logrotate.d/syslog裡面添加IPtables的日志文件/var/log/iptables,詳細內容如下:

/var/log/iptables /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }

最後安排logrotate每天執行一次,確定文件/etc/cron.daily/logrotate內容如下:

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0

至此我們就為IPtables創建了單獨的滾動日志,可以更好地分析網絡攻擊信息。

Copyright © Linux教程網 All Rights Reserved