日志對於網絡安全來說無疑是非常重要的,它記錄了系統每天發生的各種各樣的事,你可以通過它來檢查錯誤發生的原因,或者受到攻擊後攻擊者留下的痕跡。日志主要的功能有審計和監測,同時它也可以實時的監測系統狀態,監測入侵者。
日志子系統分類
在Linux系統中,有三個主要的日志子系統:
連接時間日志——由多個程序執行,把紀錄寫入到/var/log/Wtmp和/var/run/Utmp,Login等程序更新Wtmp和Utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
進程統計——由系統內核執行。當一個進程終止時,為每個進程往進程統計文件(Pacct或Acct)中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
錯誤日志——由Syslogd(8)執行。各種系統守護進程、用戶程序和內核通過Syslog(3)向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序創建日志。像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日志。
常用的日志文件如下:
Access-log:紀錄HTTP/WEB的傳輸。
Acct/pacct:紀錄用戶命令。
Aculog:紀錄MODEM的活動。
Btmp:紀錄失敗的紀錄。
Lastlog:紀錄最近幾次成功登錄的事件和最後一次不成功的登錄。
Messages:從Syslog中記錄信息(有的鏈接到Syslog文件)。
Sudolog:紀錄使用Sudo發出的命令。
Sulog:紀錄“su”的使用。
Utmp:紀錄當前登錄的每個用戶。
Wtmp:一個用戶每次登錄進入和退出時間的永久紀錄。
Xferlog:紀錄FTP會話。
日志記錄基本過程
Utmp、Wtmp和Lastlog日志文件是多數重用UNIX日志子系統的關鍵——保持用戶登錄進入和退出的紀錄。有關當前登錄用戶的信息記錄在文件Utmp中;登錄進入和退出紀錄在文件Wtmp中;最後一次登錄文件可以用“Lastlog”命令察看。數據交換、關機和重起也記錄在Wtmp文件中。所有的紀錄都包含時間戳。這些文件(Lastlog通常不大)在具有大量用戶的系統中增長十分迅速。例如Wtmp文件可以無限增長,除非定期截取。許多系統以一天或者一周為單位把Wtmp配置成循環使用。它通常由Cron運行的腳本來修改。這些腳本重新命名並循環使用Wtmp文件。
小知識:通常Wtmp在第一天結束後命名為Wtmp.1;第二天後Wtmp.1變為Wtmp.2,直到Wtmp.7。
每次有一個用戶登錄時,Login程序在文件Lastlog中察看用戶的UID。如果找到了,則把用戶上次登錄、退出時間和主機名寫到標准輸出中,然後Login程序在Lastlog中紀錄新的登錄時間。在新的Lastlog紀錄寫入後,Utmp文件打開並插入用戶的Utmp紀錄。該紀錄一直用到用戶登錄退出時刪除。Utmp文件被各種命令文件使用,包括Who、Users和Finger。下一步,Login程序打開文件Wtmp附加用戶的Utmp紀錄。當用戶登錄退出時,具有更新時間戳的同一Utmp紀錄附加到文件中。Wtmp文件被程序Last和AC使用。
查看具體日志
Wtmp和Utmp文件都是二進制文件,它們不能被諸如Tail命令剪貼或合並(需要使用Cat命令),用戶需要使用Who、W、Users、Last和AC來使用這兩個文件包含的信息。
1.Who:該命令查詢Utmp文件並報告當前登錄的每個用戶。Who的缺省輸出包括用戶名、終端類型、登錄日期及遠程主機。例如輸入Who回車後顯示:
chyang pts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
ylou pts/8 Aug 18 14:15
如果指明了Wtmp文件名,則Who命令查詢所有以前的紀錄。命令“Who /var/log/Wtmp”將報告從Wtmp文件創建或刪改以來的每一次登錄。
2.W:該命令查詢Utmp文件並顯示當前系統中每個用戶和它所運行的進程信息。
3.Users:Users用單獨的一行顯示出當前登錄的用戶,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數。例如輸入Users回車後顯示:
chyang lewis lewis ylou ynguo ynguo
4.Last:Last命令往回搜索Wtmp,顯示從文件第一次創建以來登錄過的用戶。例如:
chyang pts/9 202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)
cfan pts/6 202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4 202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)
如果指明了用戶,那麼Last只報告該用戶的近期活動,例如:last ynguo顯示:
ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)
ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)
ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)
ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)
5.AC:AC命令根據當前的/var/log/Wtmp文123下一頁