不要低估日志文件對網絡安全的重要作用,因為日志文件能夠詳細記錄系統每天發生的各種各樣的事件,用戶可以通過日志文件檢查錯誤產生的原因,或者在受到攻擊、被入侵時追蹤攻擊者的蹤跡。日志的兩個比較重要的作用是審核和監測。配置好的Linux的日志非常強大。對于Linux系統而言,所有的日志文件在/var/log下。默認情況下,Linux的日志文件沒有記錄FTP的活動。用戶可以通過修改/etc/ftpacess讓系統記錄FTP的一切活動。
/etc/syslog.conf的格式
Linux系統的日志文件是可以配置的,在前面的章節中已經介紹了如何定制Apache、wu-ftpd、Sendmail的日志文件。Linux系統的日志文件是由/etc/syslog.conf決定的,用戶有必要花時間仔細配置一下/etc/syslog.conf。下面是/etc/syslog.conf的范例:
|
可以看出,該配置文件的每一行的第一個字段列出要被記錄的信息種類,第二個字段則列出被記錄的位置。第一個字段使用下面的格式:facility.level[;facility.level…]
此處的faciity是產生信息的系統應用程序或工具,level則是這個信息的重要程度。level的重要程度由低到高依次是:debug(調試消息)、info(一般消息)、notice(值得注意的消息)、warning(警告)、err(一般性錯誤)、crit(嚴重錯誤)、alert(或emerg,緊急情況)。
facility包含有:auth(認證系統,如login或su,即詢問用戶名和口令)、cron(系統執行定時任務時發出的信息)、daemon(某些系統的守護程序的syslog,如由in.ftpd產生的log)、kern(內核的信息)、lpr(打印機的信息)、mail(處理郵件的守護進程發出的信息)、mark(定時發送消息的時標程序)、news(新聞組的守護進程的信息)、user(本地用戶的應用程序的信息)、uucp(uucp子系統的信息)和“*”(表示所有可能的facility)。
將日志文件記錄到遠程主機
如果有另一個Linux或UNIX系統,那么可以配置日志文件,讓其把消息發到另外一個系統并記錄下來。這也是為什么上面的所有日志文件都記錄了主機名的原因。要實現這個功能,在該配置文件中,指定一個記錄動作,后面接一個由“@”開頭的遠程系統的主機名,如下例:*.warn;authpriv.notice;auth.notice @bright.hacker.com.cn
同時,還要將接受消息的目的系統設置為允許這種操作。此例主機bright.hacker.com.cn的syslogd守護進程要用-r參數啟動。如果不使用-r參數,則目標主機的syslogd將丟棄這個消息以避免DoS攻擊使硬盤塞滿虛假消息。并且確保目標主機的/etc/service文件必須設置syslog服務所使用的UDP端口514(這也是RedHat Linux默認的設置)。如果syslogd守護進程用了-r和-h參數,那么,參數-h將允許轉發消息。也就是說,如果系統B的syslogd用了-h參數,這樣,當系統A把消息轉發到系統B后,系統B就把來自系統A和它自己的消息轉發到系統C。
將警告信息發送到控制臺
syslogd可以將任何從內核發出的重要程度為emerg或alert的信息發送到控制臺??刂婆_是指虛擬控制臺或啟動時加-C參數的xterm。要實現這一功能,在/etc/syslog.conf文件中加上下面一行:kern.emerg /dev/console
這樣,當系統內核發生錯誤而發出消息時,用戶能夠馬上知道并且進行處理。如果用了“*”,就是一旦內核發生錯誤,就將消息發送給所有在線用戶,但只有這個用戶正在登錄的時候才能看到。修改了/etc/syslog.conf文件后,必須重新啟動syslogd守護進程以使配置更改生效,請執行下面的命令:#/etc/rc.d/init.d/syslog restart


