日誌對於安全來說,非常重要,它記錄了系統每天發生的各種各樣的事情,你可以通過他來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕迹。日誌主要的功能有:審計和監測。他還可以即時的監測系統狀態,監測和追蹤侵入者等等。正因為如此,撫琴煮酒特的將它整理成一篇比重跟硬體篇、網路篇並列的文章,希望大家能從中學習到對自己有用的東西。
一、配置syslog(gyl4802959同學撰寫)
目前,linux依舊使用syslogd作為日誌監控進程,對其進行必要的配置能減少很多麻煩,並且可更有效從系統日誌監控到系統的狀態。理解並完善一個syslog的配置,對於系統管理員來說顯得尤為重要。
/etc/syslog.conf根據如下的格式定義規則: facility.level action
裝置.優先順序 動作facility.level 欄位也被稱為seletor(選擇條件),選擇條件和動作之間用空格或tab分割開。
#號開頭的是注釋,空白行會自動跳過。
1、facility
facility定義日誌訊息的範圍,其可使用的key有: auth -由 pam_pwdb 報告的認證活動。
authpriv -包括特權資訊如使用者名稱在內的認證活動
cron -與 cron 和 at 有關的計劃任務資訊。
daemon -與 inetd 守護進程有關的後台進程資訊。
kern -核心資訊,首先通過 klogd 傳遞。
lpr -與列印服務有關的資訊。
mail -與電子郵件有關的資訊
mark - syslog內部功能用於產生時間戳記
news -來自新聞伺服器的資訊
syslog -由 syslog 產生的資訊
user -由使用者程式產生的資訊
uucp -由 uucp 產生的資訊
local0-local7 -與自訂程式使用
* 萬用字元代表除了 mark 以外的所有功能除mark為內部使用外,還有security為一箇舊的key定義,等同於auth,已經不再建議使用。
2、level層級
level定義訊息的緊急程度。按嚴重程度由高到低順序排列為: emerg -該系統不可用,等同panic
alert -需要立即被修改的條件
crit -阻止某些工具或子系統功能實現的錯誤條件
err -阻止工具或某些子系統部分功能實現的錯誤條件,等同error
warning -預警資訊,等同warn
notice -具有重要性的普通條件
info -提供資訊的訊息
debug -不包含函數條件或問題的其他資訊
none -沒有重要級,通常用於排錯
* 所有層級,除了none其中,panic、error、warn均為舊的標識符,不再建議使用。
在定義level層級的時候,需要注意兩點: 1)優先順序是由應用程式在編程的時候已經決定的,除非修改源碼再編譯,否則不能改變訊息的優先順序;
低的優先順序包含高優先順序,例如,為某個應用程式定義info的日誌導向,則涵蓋notice、warning、err、crit、alert、emerg等訊息。(除非使用=號定義)
3、selector選擇條件
通過小數點符號“.”把facility和level串連在一起則成為selector(選擇條件)。
可以使用分號“;”同時定義多個選擇條件。也支援三個修飾符: * - 所有日誌資訊
= - 等於,即僅包含本優先順序的日誌資訊
! - 不等於,本優先順序日誌資訊除外
4、action動作
由前面選擇條件定義的日誌資訊,可執行下面的動作: file-指定記錄檔的絕對路徑
terminal 或 print -發送到串列或平行裝置標誌符,例如/dev/ttyS2
@host -遠端Log Service器
username -發送資訊原生指定使用者資訊視窗中,但該使用者必須已經登陸到系統中
named pipe -發送到預先使用 mkfifo 命令來建立的 FIFO 檔案的絕對路徑※注意,不能通過“|/var/xxx.sh”方式導向日誌到其他指令碼中處理。
5、舉例
例如: *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
#把除郵件、新聞群組、授權資訊、計劃任務等外的所有通知性訊息都寫入messages檔案中。
mail,news.=info /var/adm/info
#把郵件、新聞群組中僅通知性訊息寫入info檔案,其他資訊不寫入。
mail.*;mail.!=info /var/adm/mail
#把郵件的除通知性訊息外都寫入mail檔案中。
mail.=info /dev/tty12
#僅把郵件的通知性訊息發送到tty12終端裝置
*.alert root,joey
#如果root和joey使用者已經登陸到系統,則把所有緊急語音總機他們
*.* @finlandia
#把所有資訊都導向到finlandia主機(通過/etc/hosts或dns解析其IP地址)※注意:每條訊息均會經過所有規則的,並不是唯一匹配的。
也就是說,假設mail.=info資訊通過上面範例中定義的規則時,/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主機都會收到相同的資訊。這樣看上去比較煩瑣,但可以帶來的好處就是保證了資訊的完整性,可供不同地方進行分析。