概念
所謂日誌(Log)是指系統所指定對象的某些操作和其操作結果按時間有序的集合。每個日誌檔案由日誌記錄組成,每條日誌記錄描述了一次單獨的系統事件。通常情況下,系統日誌是用戶可以直接閱讀的文本檔案,其中包含了一個時間戳和一個信息或者子系統所特有的其他信息。
日誌檔案為伺服器、工作站、防火牆和套用軟體等IT資源相關活動記錄必要的、有價值的信息,這對系統監控、查詢、報表和安全審計是十分重要的。日誌檔案中的記錄可提供以下用途:監控系統資源;審計用戶行為;對可疑行為進行告警;確定入侵行為的範圍;為恢復系統提供幫助;生成調查報告;為打擊計算機犯罪提供證據來源。
特點
日誌記錄著系統中特定事件的相關活動信息,從計算機取證角度看,日誌主要有以下特點:
不易讀懂
雖然大部分系統的日誌都以文本的形式記錄,但由於各系統日誌格式不一致,不熟悉各類日誌格式就很難獲取有用的信息。同時有相當部分套用系統並不採用文本格式記錄著日誌信息,必須藉助專用的工具分析這些日誌,否則很難讀懂其中的日誌信息。
數據量大
通常對外服務產生的日誌檔案如Web服務日誌、防火牆、入侵檢測系統日誌和資料庫日誌以及各類伺服器日誌等都很大,一個日誌檔案一天產生的容量少則幾十兆、幾百兆,多則有幾個G,幾十個G,這使得獲取和分析日誌信息變得很困難。
不易獲取
由於網路中不同的作業系統、套用軟體、網路設備和服務產生不同的日誌檔案,即使相同的服務如IIS也可採用不同格式的日誌檔案記錄日誌信息。國際上還沒有形成標準的日誌格式,各系統開發商和網路設備生產商往往根據各自的需要制定自己的日誌格式,使得不同系統的日誌格式和存儲方式有所差別。如何獲取各類不同系統產生的不同日誌檔案作為打擊計算機犯罪者的電子證據變得尤為困難。
日誌聯繫
一個系統的日誌是對本系統涉及的運行狀況的信息按時間順序作一簡單的記錄,僅反映本系統的某些特定事件的操作情況,並不完全反映某一用戶的整個活動情況。一個用戶在網路活動的過程中會在很多的系統日誌中留下痕跡,如防火牆IDS日誌、作業系統日誌等,這些不同的日誌之間存在某種必然的聯繫來反映用戶的活動情況。只有將多個系統的日誌結合起來分析,才能準確反映用戶活動情況。
系統日誌
產生系統日誌的軟體通常為套用系統而不是作為作業系統的子系統運行,所產生的日誌記錄容易遭到惡意的破壞或修改。系統日誌通常存儲在系統未經保護的目錄中,並以文本方式存儲,未經加密和校驗處理,沒有提供防止惡意篡改的有效保護機制。因此,日誌檔案並不一定是可靠的,入侵者可能會篡改日誌檔案,從而不能被視為有效的證據。由於日誌是直接反映入侵者痕跡的,在計算機取證中扮演著重要的角色,入侵者獲取系統許可權竊取機密信息或破壞重要數據後往往會修改或刪除與其相關的日誌信息,甚至根據系統的漏洞偽造日誌以迷惑系統管理員和審計。
Windows
以Windows2000/XP為例,日誌檔案通常有應用程式日誌,安全日誌、系統日誌、DNS伺服器日誌、FTP日誌、WWW日誌等等。 日誌檔案默認位置: 應用程式日誌、安全日誌、系統日誌、DNS日誌默認位置:%sys temroot%\sys tem32\config,默認檔案大小512KB,管理員都會改變這個默認大小。
安全日誌檔案:%sys temroot%\sys tem32\config\SecEvent.EVT
系統日誌檔案:%sys temroot%\sys tem32\config\SysEvent.EVT
應用程式日誌:%sys temroot%\sys tem32\config\AppEvent.EVT
Internet信息服務FTP日誌默認位置:%sys temroot%\sys tem32\logfiles\msftpsvc1\
默認每天一個日誌 Internet信息服務WWW日誌默認位置:%sys temroot%\sys tem32\logfiles\w3svc1\
默認每天一個日誌 Scheduler服務日誌默認位置:%sys temroot%\schedlgu.txt
以上日誌在註冊表里的鍵:
應用程式日誌,安全日誌,系統日誌,DNS伺服器日誌,它們這些LOG檔案在註冊表中的位置:
HKEY_LOCAL_MACHINE\sys tem\CurrentControlSet\Services\Eventlog
有的管理員很可能將這些日誌重定位。其中EVENTLOG下面有很多的子表,裡面可查到以上日誌的定位目錄。
Schedluler服務日誌在註冊表中的位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SchedulingAgent
Windows NT/2000主要有以下三類日成記錄系統事件:
應用程式
記錄由應用程式產生的事件。例如,某個資料庫程式可能設定為每次成功完成備份操作後都向應用程式日誌傳送事件記錄信息。應用程式日誌中記錄的時間類型由應用程式的開發者決定,並提供相應的系統工具幫助用戶使用應用程式日誌。
系統日誌
記錄由Windows NT/2000作業系統組件產生的事件,主要包括驅動程式、系統組件和套用軟體的崩潰以及數據丟失錯誤等。系統日誌中記錄的時間類型由Windows NT/2000作業系統預先定義。
安全日誌
記錄與安全相關事件,包括成功和不成功的登錄或退出、系統資源使用事件等。與系統日誌和應用程式日誌不同,安全日誌只有系統管理員才可以訪問。
Windows NT/2000的系統日誌由事件記錄組成。每個事件記錄為三個功能區:記錄頭區、事件描述區和附加數據區。
Linux
在Unix下,最常用的存放日誌檔案的目錄是:
/usr/adm 早期版本的
Unix /var/adm 較新版本的
Unix /var/log 用於Solaris,Linux,BSD等
/etc Unix system V早期版本
在這些目錄下,或其子目錄下,你可以找到以下日誌檔案(也許是其中的一部分):
lastlog 記錄用戶最後一次成功登錄時間
loginlog 不良的登入嘗試記錄
messages 記錄輸出到系統主控台以及由syslog系統服務程式產生的訊息
utmp 記錄當前登錄的每個用戶
utmpx 擴展的utmp
wtmp 記錄每一次用戶登錄和註銷的歷史信息 wtmpx 擴展的wtmp
vold.log 記錄使用外部介質出現的錯誤
xferkig 記錄Ftp的存取情況 sulog 記錄su命令的使用情況
acct記錄每個用戶使用過的命令
aculog 撥出自動呼叫記錄
syslog採用可配置的、統一的系統登記程式,隨時從系統各處接受log請求,然後根據/etc/syslog.conf中的預先設定把log信息寫入相應檔案中、郵寄給特定用戶或者直接以訊息的方式發往控制台。值得注意的是,為了防止入侵者修改、刪除messages里的記錄信息,可以採用用印表機記錄或跨越網路登記的方式來挫敗入侵者的企圖。
任何程式都可以通過syslog記錄事件。Syslog可以記錄系統事件,可以寫到一個檔案或設備中,或給用戶傳送一個信息。它能記錄本地事件或通過網路記錄到另一台主機上的事件。
Syslog依據兩個重要的檔案:/sbin/syslogd(守護進程)和/etc/syslog.conf配置檔案。習慣上,多數syslog信息被寫到/var/adm或/ar/log目錄下的信息檔案中(*message.)。一個典型的syslog記錄包括生成程式的名字和一個文本信息,它還包括一個設備和一個行為級別(但不在日誌中出現)。
syslogd & klogd ---------/etc/syslog.conf
/var/log/secure:登錄到系統存取資料的記錄;FTP、SSH、TELNET...
/var/log/wtmp:記錄登錄者訊錄,二進制檔案,須用last來讀取內容
/var/log/messages:雜貨鋪
/var/log/boot.log:記錄開機啟動訊息,dmesg | more
常識
# ps aux | grep syslog
# chkconfig --list | grep syslog
# cat /var/log/secure
/etc/syslog.conf 哪些服務產生的哪些等級訊息記錄到哪裡
記錄到相同地方的多個訊息源用分號間隔
vi /etc/syslog.conf
接收遠程
# grep 514 /etc/services
syslog 514/udp
vi /etc/sysconfig/syslog
# 將SYSLOGD_OPTIONS="-m 0"
# 改成
SYSLOGD_OPTIONS="-m 0 -r"
/etc/init.d/syslog restart
[root@linux ~]# netstat -tlunp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:514 0.0.0.0:* 24314/syslogd
對應client
# vi /etc/syslog.conf
*.* @192.168.1.100
logrotate
* /etc/logrotate.conf
* /etc/logrotate.d/
logrotate.conf 才是主要配置檔案,而/logrotate.d /這個目錄內的所有檔案都被讀入 /etc/logrotate.conf來執行!
如果在 /etc/logrotate.d/ 目錄檔案中,沒有相應的細節設定則以 /etc/logrotate.conf 設定為預設值!
vi /etc/logrotate.d/syslog
/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
}
1、用空格作多個檔案分隔
2、所有設定在{}中
3、# prerotate:在啟動logrotate執行的指令
# postrotate:在做完logrotate後需處理的指令
logrotate [-vf] logfile
參數:
-v :顯示過程
-f :強制執行
而logrotate的工作加入到 crontab /etc/cron.daily/logrotate;所以系統每天自動查看
只是要注意一下:/var/log/messages 是否有這樣的類似內容
Oct 24 15:15:35 localhost syslogd 1.4.1: restart.
四、實例:
要求: 登錄檔案每月替換一次
若> 10MB ;強制替換,不不考慮一個月的期限;
保存五備份文檔;
備份文檔不壓縮。
步驟1:
root@linux ~]#chattr+a /var/log/admin.log
[root@linux ~]# lsattr /var/log/admin.log
-----a------- /var/log/admin.log
只能新增不能刪節除,除非chattr-a /var/log/admin.log
[root@linux ~]# mv /var/log/admin.log /var/log/admin.log.1
mv: cannot move '/var/log/admin.log' to '/var/log/admin.log.1':permission deny
步驟2:
vi /etc/logrotate.d/admin
# This configuration is from VBird 2005/10/24
/var/log/admin.log {
monthly
size=10M
rotate 5
nocompress
sharedscripts
prerotate
/usr/bin/chattr-a /var/log/admin.log
endscript
sharedscripts
postrotate
/usr/bin/killall -HUP syslogd
/usr/bin/chattr+a /var/log/admin.log
endscript
}
步驟3:測試
#logrotate-v /etc/logrotate.conf
.....(前面省略).....
rotating pattern: /var/log/admin.log 10485760 bytes (5 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/admin.log
log does not need rotating
not running shared prerotate script, since no logs will be rotated
............
#logrotate-vf /etc/logrotate.d/admin
reading config file /etc/logrotate.d/admin
reading config info for /var/log/admin.log
也就是說: /etc/syslog.conf 與/etc/logrotate.d/* 對應文檔搭配起來使用;先由syslogd 按照syslog.conf指定的方法處理訊息,
然後送給 logrotat來按照/etc/logrotate.d/*文檔要求來輪替日誌。
常見指令
# dmesg | more 讀/var/log/boot.log
dmesg | grep 'eth'
# last -n number
[root@linux ~]# last -f filename
-n :number
-f :last 預設值為讀 /var/log/wtmp 文檔,而 -f 讀取不同的文檔
# last -n 5 -f /var/log/wtmp.1
dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00)
dmtsai2 work:0 work Mon Oct 24 14:18 gone - no logout
dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00)
dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00)
dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00)
# lastlog