linux日志管理(三)
2024-07-21 02:34:52
供稿:網友
4. Syslog設備
Syslog已被許多日志函數采納,它用在許多保護措施中--任何程序都可以通過syslog 紀錄事件。Syslog可以紀錄系統(tǒng)事件,可以寫到一個文件或設備中,或給用戶發(fā)送一個信息。它能紀錄本地事件或通過網絡紀錄另一個主機上的事件。
Syslog設備依據兩個重要的文件:/etc/syslogd(守護進程)和/etc/syslog.conf配置文件,習慣上,多數syslog信息被寫到/var/adm或/var/log目錄下的信息文件中(messages.*)。一個典型的syslog紀錄包括生成程序的名字和一個文本信息。它還包括一個設備和一個優(yōu)先級范圍(但不在日之中出現(xiàn))。
每個syslog消息被賦予下面的主要設備之一:
LOG_AUTH--認證系統(tǒng):login、su、getty等
LOG_AUTHPRIV--同LOG_AUTH,但只登錄到所選擇的單個用戶可讀的文件中
LOG_CRON--cron守護進程
LOG_DAEMON--其他系統(tǒng)守護進程,如routed LOG_FTP--文件傳輸協(xié)議:ftpd、tftpd
LOG_KERN--內核產生的消息
LOG_LPR--系統(tǒng)打印機緩沖池:lpr、lpd
LOG_MAIL--電子郵件系統(tǒng)
LOG_NEWS--網絡新聞系統(tǒng)
LOG_SYSLOG--由syslogd(8)產生的內部消息
LOG_USER--隨機用戶進程產生的消息
LOG_UUCP--UUCP子系統(tǒng)
LOG_LOCAL0~LOG_LOCAL7--為本地使用保留
Syslog為每個事件賦予幾個不同的優(yōu)先級:
LOG_EMERG--緊急情況
LOG_ALERT--應該被立即改正的問題,如系統(tǒng)數據庫破壞
LOG_CRIT--重要情況,如硬盤錯誤
LOG_ERR--錯誤
LOG_WARNING--警告信息
LOG_NOTICE--不是錯誤情況,但是可能需要處理
LOG_INFO--情報信息
LOG_DEBUG--包含情報的信息,通常旨在調試一個程序時使用
syslog.conf文件指明syslogd程序紀錄日志的行為,該程序在啟動時查詢配置文件。該文件由不同程序或消息分類的單個條目組成,每個占一行。對每類消息提供一個選擇域和一個動作域。這些域由tab隔開:選擇域指明消息的類型和優(yōu)先級;動作域指明syslogd接收到一個與選擇標準相匹配的消息時所執(zhí)行的動作。每個選項是由設備和優(yōu)先級組成。當指明一個優(yōu)先級時,syslogd將紀錄一個擁有相同或更高優(yōu)先級的消息。所以假如指明"crit",那所有標為crit、alert和emerg的消息將被紀錄。每行的行動域指明當選擇域選擇了一個給定消息后應該把他發(fā)送到哪兒。例如,假如想把所有郵件消息紀錄到一個文件中,如下:
#Log all the mail messages in one place
mail.* /var/log/maillog
其他設備也有自己的日志。UUCP和news設備能產生許多外部消息。它把這些消息存到自己的日志(/var/log/spooler)中并把級別限為"err"或更高。例如:
# Save mail and news errors of level err and higher in aspecial file. uucp,news.crit /var/log/spooler
當一個緊急消息到來時,可能想讓所有的用戶都得到。也可能想讓自己的日志接收并保存。 #Everybody gets emergency messages, plus log them on anther machine *.emerg * *.emerg @linuxaid.com.cn
alert消息應該寫到root和tiger的個人賬號中:
#Root and Tiger get alert and higher messages
*.alert root,tiger
有時syslogd將產生大量的消息。例如內核("kern"設備)可能很冗長。用戶可能想把內核消息紀錄到/dev/console中。下面的例子表明內核日志紀錄被注釋掉了:
#Log all kernel messages to the console
#Logging much else clutters up the screen
#kern.* /dev/console
用戶可以在一行中指明所有的設備。下面的例子把info或更高級別的消息送到/var/log/messages,除了mail以外。級別"none"禁止一個設備:
#Log anything(except mail)of level info or higher
#Don't log private authentication messages!
*.info:mail.none;authpriv.none /var/log/messages
在有些情況下,可以把日志送到打印機,這樣網絡入侵者怎么修改日志都沒有用了。
通常要廣泛紀錄日志。Syslog設備是一個攻擊者的顯著目標。一個為其他主機維護日志的系統(tǒng)對于防范服務器攻擊非凡脆弱,因此要非凡注重。
有個小命令logger為syslog(3)系統(tǒng)日志文件提供一個shell命令接口,使用戶能創(chuàng)建日志文件中的條目。用法:logger 例如:logger This is a test! 它將產生一個如下的syslog紀錄:Aug 19 22:22:34 tiger: This is a test!
它將產生一個如下的syslog紀錄:Aug 19 22:22:34 tiger: This is a test! 注重不要完全相信日志,因為攻擊者很輕易修改它的。
5. 程序日志
許多程序通過維護日志來反映系統(tǒng)的安全狀態(tài)。su命令答應用戶獲得另一個用戶的權限,所以它的安全很重要,它的文件為sulog。同樣的還有sudolog。另外,想Apache有兩個日志:access_log和error_log。
6. 其他日志工具
chklastlog
ftp://coast.cs.purdue.edu/pub/tools/unix/chklastlog/
chkwtmp
ftp://coast.cs.purdue.edu/pub/tools/unix/chkwtmp/
dump_lastlog
ftp://coast.cs.purdue.edu/pub/tools/unix/dump_lastlog.Z
spar
ftp://coast.cs.purdue.edu/pub/tools/unix/TAMU/
Swatch
http://www.lomar.org/komar/alek/pres/swatch/cover.Html
Zap
ftp://caost.cs.purdue.edu/pub/tools/unix/zap.tar.gz
日志分類方法
http://csrc.nist.gov/nissc/1998/proceedings/paperD1.pdf