Linux系統(tǒng)中的日志子系統(tǒng)對于系統(tǒng)安全來說非常重要,它記錄了系統(tǒng)每天發(fā)生的各種各樣的事情,包括那些用戶曾經(jīng)或者正在使用系統(tǒng),可以通過日志來檢查錯誤發(fā)生的原因,更重要的是在系統(tǒng)受到黑客攻擊后,日志可以記錄下攻擊者留下的痕跡,通過查看這些痕跡,系統(tǒng)管理員可以發(fā)現(xiàn)黑客攻擊的某些手段以及特點,從而能夠進行處理工作,為抵御下一次攻擊做好準(zhǔn)備。
在Linux系統(tǒng)中,有三類主要的日志子系統(tǒng):
◆連接時間日志: 由多個程序執(zhí)行,把記錄寫入到/var/log/wtmp和/var/run/utmp,login等程序會更新wtmp和utmp文件,使系統(tǒng)管理員能夠跟蹤誰在何時登錄到系統(tǒng)。
◆ 進程統(tǒng)計: 由系統(tǒng)內(nèi)核執(zhí)行,當(dāng)一個進程終止時,為每個進程往進程統(tǒng)計文件(pacct或acct)中寫一個記錄。進程統(tǒng)計的目的是為系統(tǒng)中的基本服務(wù)提供命令使用統(tǒng)計。
◆錯誤日志: 由syslogd(8)守護程序執(zhí)行,各種系統(tǒng)守護進程、用戶程序和內(nèi)核通過syslogd(3)守護程序向文件/var/log/messages報告值得注意的事件。另外有許多Unix程序創(chuàng)建日志。像HTTP和FTP這樣提供網(wǎng)絡(luò)服務(wù)的服務(wù)器也保持詳細的日志。
Linux下日志的使用
1.基本日志命令的使用
utmp、wtmp日志文件是多數(shù)Linux日志子系統(tǒng)的關(guān)鍵,它保存了用戶登錄進入和退出的記錄。有關(guān)當(dāng)前登錄用戶的信息記錄在文件utmp中; 登錄進入和退出記錄在文件wtmp中; 數(shù)據(jù)交換、關(guān)機以及重啟的機器信息也都記錄在wtmp文件中。所有的記錄都包含時間戳。時間戳對于日志來說非常重要,因為很多攻擊行為分析都是與時間有極大關(guān)系的。這些文件在具有大量用戶的系統(tǒng)中增長十分迅速。例如wtmp文件可以無限增長,除非定期截取。許多系統(tǒng)以一天或者一周為單位把wtmp配置成循環(huán)使用。它通常由cron運行的腳本來修改,這些腳本重新命名并循環(huán)使用wtmp文件。
utmp文件被各種命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。 但它們都是二進制文件,不能被諸如tail命令剪貼或合并(使用cat命令)。用戶需要使用who、w、users、last和ac來使用這兩個文件包含的信息。具體用法如下:
who命令: who命令查詢utmp文件并報告當(dāng)前登錄的每個用戶。Who的缺省輸出包括用戶名、終端類型、登錄日期及遠程主機。使用該命令,系統(tǒng)管理員可以查看當(dāng)前系統(tǒng)存在哪些不法用戶,從而對其進行審計和處理。例如: 運行who命令顯示如下:
[root@working]# who root pts/0 May 9 21:11 (10.0.2.128) root pts/1 May 9 21:16 (10.0.2.129) lhwen pts/7 May 9 22:03 (10.0.2.27) |
日志使用注意事項
系統(tǒng)管理人員應(yīng)該提高警惕,隨時注意各種可疑狀況,并且按時和隨機地檢查各種系統(tǒng)日志文件,包括一般信息日志、網(wǎng)絡(luò)連接日志、文件傳輸日志以及用戶登錄日志等。在檢查這些日志時,要注意是否有不合常理的時間記載。例如:
◆用戶在非常規(guī)的時間登錄;
◆不正常的日志記錄,比如日志的殘缺不全或者是諸如wtmp這樣的日志文件無故地缺少了中間的記錄文件;
◆用戶登錄系統(tǒng)的IP地址和以往的不一樣;
◆用戶登錄失敗的日志記錄,尤其是那些一再連續(xù)嘗試進入失敗的日志記錄;
◆非法使用或不正當(dāng)使用超級用戶權(quán)限su的指令;
◆無故或者非法重新啟動各項網(wǎng)絡(luò)服務(wù)的記錄。
另外, 尤其提醒管理人員注意的是: 日志并不是完全可靠的。高明的黑客在入侵系統(tǒng)后,經(jīng)常會打掃現(xiàn)場。所以需要綜合運用以上的系統(tǒng)命令,全面、綜合地進行審查和檢測,切忌斷章取義,否則很難發(fā)現(xiàn)入侵或者做出錯誤的判斷。
users命令: users用單獨的一行打印出當(dāng)前登錄的用戶,每個顯示的用戶名對應(yīng)一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數(shù)。運行該命令將如下所示:
[root@working]# users |
last命令: last命令往回搜索wtmp來顯示自從文件第一次創(chuàng)建以來登錄過的用戶。系統(tǒng)管理員可以周期性地對這些用戶的登錄情況進行審計和考核,從而發(fā)現(xiàn)其中存在的問題,確定不法用戶,并進行處理。運行該命令,如下所示:
[root@working]# last devin pts/1 10.0.2.221 Mon Jul 21 15:08-down (8+17:46) devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11) changyi pts/2 10.0.2.141 Mon Jul 21 14:12 - 14:12 (00:00) devin pts/1 10.0.2.221 Mon Jul 21 12:51 - 14:40 (01:49) reboot system boot 2.4.18 Fri Jul 18 15:42 (11+17:13) reboot system boot 2.4.18 Fri Jul 18 15:34 (00:04) reboot system boot 2.4.18 Fri Jul 18 15:02 (00:36) |
[root@working]# last devin devin pts/1 10.0.2.221 Mon Jul 21 15:08 - down (8+17:46) devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11) |
lastlog命令 lastlog文件在每次有用戶登錄時被查詢。可以使用lastlog命令檢查某特定用戶上次登錄的時間,并格式化輸出上次登錄日志/var/log/lastlog的內(nèi)容。它根據(jù)UID排序顯示登錄名、端口號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯示“**Never logged**”。注意需要以root身份運行該命令。運行該命令如下所示:
[root@working]# lastlog Username Port From Latest root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005 opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005 |
| 共2頁: 1 [2] 下一頁 | ||
|


