Linux下重要日志文件及查看方式
原創(chuàng)【51CTO特稿】 1、Linux下重要日志文件介紹
/var/log/boot.log
該文件記錄了系統(tǒng)在引導(dǎo)過(guò)程中發(fā)生的事件,就是Linux系統(tǒng)開機(jī)自檢過(guò)程顯示的信息,如圖1所示:
圖1 /var/log/boot.log示意
/var/log/cron
該日志文件記錄crontab守護(hù)進(jìn)程crond所派生的子進(jìn)程的動(dòng)作,前面加上用戶、登錄時(shí)間和PID,以及派生出的進(jìn)程的動(dòng)作。CMD的一個(gè)動(dòng)作是cron派生出一個(gè)調(diào)度進(jìn)程的常見情況。REPLACE(替換)動(dòng)作記錄用戶對(duì)它的cron文件的更新,該文件列出了要周期性執(zhí)行的任務(wù)調(diào)度。RELOAD動(dòng)作在REPLACE動(dòng)作后不久發(fā)生,這意味著cron注意到一個(gè)用戶的cron文件被更新而cron需要把它重新裝入內(nèi)存。該文件可能會(huì)查到一些反常的情況。該文件的示意請(qǐng)見圖2:
圖2 /var/log/cron文件示意
/var/log/maillog
該日志文件記錄了每一個(gè)發(fā)送到系統(tǒng)或從系統(tǒng)發(fā)出的電子郵件的活動(dòng)。它可以用來(lái)查看用戶使用哪個(gè)系統(tǒng)發(fā)送工具或把數(shù)據(jù)發(fā)送到哪個(gè)系統(tǒng)。圖3所示是該日志文件的片段:
圖3 /var/log/maillog文件示意
該文件的格式是每一行包含日期、主機(jī)名、程序名,后面是包含PID或內(nèi)核標(biāo)識(shí)的方括號(hào)、一個(gè)冒號(hào)和一個(gè)空格,最后是消息。該文件有一個(gè)不足,就是被記錄的入侵企圖和成功的入侵事件,被淹沒在大量的正常進(jìn)程的記錄中。但該文件可以由/etc/syslog文件進(jìn)行定制。由/etc/syslog.conf配置文件決定系統(tǒng)如何寫入/var/messages。
/var/log/syslog
默認(rèn)Fedora不生成該日志文件,但可以配置/etc/syslog.conf讓系統(tǒng)生成該日志文件。它和/etc/log/messages日志文件不同,它只記錄警告信息,常常是系統(tǒng)出問(wèn)題的信息,所以更應(yīng)該關(guān)注該文件。要讓系統(tǒng)生成該日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog 該日志文件能記錄當(dāng)用戶登錄時(shí)login記錄下的錯(cuò)誤口令、Sendmail的問(wèn)題、su命令執(zhí)行失敗等信息。該日志文件記錄最近成功登錄的事件和最后一次不成功的登錄事件,由login生成。在每次用戶登錄時(shí)被查詢,該文件是二進(jìn)制文件,需要使用lastlog命令查看,根據(jù)UID排序顯示登錄名、端口號(hào)和上次登錄時(shí)間。如果某用戶從來(lái)沒有登錄過(guò),就顯示為"**Never logged in**"。該命令只能以root權(quán)限執(zhí)行。簡(jiǎn)單地輸入lastlog命令后就會(huì)看到類似圖4的信息:
圖4 lastlog命令的運(yùn)行結(jié)果
/var/log/wtmp
該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動(dòng)、停機(jī)的事件。因此隨著系統(tǒng)正常運(yùn)行時(shí)間的增加,該文件的大小也會(huì)越來(lái)越大,增加的速度取決于系統(tǒng)用戶登錄的次數(shù)。該日志文件可以用來(lái)查看用戶的登錄記錄,last命令就通過(guò)訪問(wèn)這個(gè)文件獲得這些信息,并以反序從后向前顯示用戶的登錄記錄,last也能根據(jù)用戶、終端tty或時(shí)間顯示相應(yīng)的記錄。
/var/run/utmp
該日志文件記錄有關(guān)當(dāng)前登錄的每個(gè)用戶的信息。因此這個(gè)文件會(huì)隨著用戶登錄和注銷系統(tǒng)而不斷變化,它只保留當(dāng)時(shí)聯(lián)機(jī)的用戶記錄,不會(huì)為用戶保留永久的記錄。系統(tǒng)中需要查詢當(dāng)前用戶狀態(tài)的程序,如 who、w、users、finger等就需要訪問(wèn)這個(gè)文件。該日志文件并不能包括所有精確的信息,因?yàn)槟承┩话l(fā)錯(cuò)誤會(huì)終止用戶登錄會(huì)話,而系統(tǒng)沒有及時(shí)更新 utmp記錄,因此該日志文件的記錄不是百分之百值得信賴的。
以上提及的3個(gè)文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系統(tǒng)的關(guān)鍵文件,都記錄了用戶登錄的情況。這些文件的所有記錄都包含了時(shí)間戳。這些文件是按二進(jìn)制保存的,故不能用less、cat之類的命令直接查看這些文件,而是需要使用相關(guān)命令通過(guò)這些文件而查看。其中,utmp和wtmp文件的數(shù)據(jù)結(jié)構(gòu)是一樣的,而lastlog文件則使用另外的數(shù)據(jù)結(jié)構(gòu),關(guān)于它們的具體的數(shù)據(jù)結(jié)構(gòu)可以使用man命令查詢。
每次有一個(gè)用戶登錄時(shí),login程序在文件lastlog中查看用戶的UID。如果存在,則把用戶上次登錄、注銷時(shí)間和主機(jī)名寫到標(biāo)準(zhǔn)輸出中,然后login程序在lastlog中記錄新的登錄時(shí)間,打開utmp文件并插入用戶的utmp記錄。該記錄一直用到用戶登錄退出時(shí)刪除。utmp文件被各種命令使用,包括who、w、users和finger。
下一步,login程序打開文件wtmp附加用戶的utmp記錄。當(dāng)用戶登錄退出時(shí),具有更新時(shí)間戳的同一utmp記錄附加到文件中。wtmp文件被程序last使用。
/var/log/xferlog
該日志文件記錄FTP會(huì)話,可以顯示出用戶向FTP服務(wù)器或從服務(wù)器拷貝了什么文件。該文件會(huì)顯示用戶拷貝到服務(wù)器上的用來(lái)入侵服務(wù)器的惡意程序,以及該用戶拷貝了哪些文件供他使用。
該文件的格式為:第一個(gè)域是日期和時(shí)間,第二個(gè)域是下載文件所花費(fèi)的秒數(shù)、遠(yuǎn)程系統(tǒng)名稱、文件大小、本地路徑名、傳輸類型(a:ASCII,b:二進(jìn)制)、與壓縮相關(guān)的標(biāo)志或tar,或"_"(如果沒有壓縮的話)、傳輸方向(相對(duì)于服務(wù)器而言:i代表進(jìn),o代表出)、訪問(wèn)模式(a:匿名,g:輸入口令,r:真實(shí)用戶)、用戶名、服務(wù)名(通常是ftp)、認(rèn)證方法(l:RFC931,或0),認(rèn)證用戶的ID或"*"。圖5是該文件的部分顯示:
圖5 /var/log/xferlog文件示意
#p#
2、Linux日志輸出查看方式
Linux下面提供了許多文本工具來(lái)查看和處理日志文件,下面給讀者提供一些比較常見和有用的工具。
dmesg
使用dmesg命令可以快速查看最后一次系統(tǒng)引導(dǎo)的引導(dǎo)日志。如圖6所示:
圖6 dmesg顯示結(jié)果
如上所示,通常它的內(nèi)容會(huì)很多,所以我們往往使用如下命令以分頁(yè)的方式顯示引導(dǎo)信息,如圖7所示:
# dmesg | more
圖7 dmesg|more命令顯示結(jié)果
tail
tail命令設(shè)計(jì)用于顯示文本文件的最后幾行。使用-f開關(guān),當(dāng)日志增加新的內(nèi)容時(shí),tail將繼續(xù)顯示新的輸出。如圖8所示:
# tar -f /var/log/messages
圖8 使用tail查看日志
上面的命令將顯示/var/log/messages文件的最后6行,然后繼續(xù)監(jiān)控那個(gè)文件,并輸出新的行為。要停止tail -f命令,使用[Ctrl + C]來(lái)中止進(jìn)程。
more和less
more的工作方式與DOS版本相同。您可以將它指向一個(gè)文件,或者通過(guò)它以管道輸出信息,以分頁(yè)的方式來(lái)查看信息。例如,以分頁(yè)方式顯示maillog日志文件的內(nèi)容:
# more maillog
圖9 使用more查看日志
然后,可以使用q或者[Ctrl+C]來(lái)停止查看文件。
less 是另一個(gè)文本閱讀器,不過(guò)它還允許在文件中滾動(dòng)瀏覽以及檢索信息。如下所示:
# less /var/log/cron-20090830
圖9 使用less命令查看日志
上面的命令將顯示/var/log/yum.log文件的內(nèi)容,可以使用q來(lái)停止查看文件。
其他方式
Linux中的日志文件對(duì)于系統(tǒng)的故障診斷和維護(hù)來(lái)說(shuō)至關(guān)重要。許多諸如WWW、FTP、SMTP等網(wǎng)絡(luò)應(yīng)用服務(wù)的Linux日志記錄都是記錄到專門指定的文本文件中(比如access.log,error.log等等),所以不需要專門的工具來(lái)查看這些文件。用戶可以選擇Vi、gEdit等簡(jiǎn)單的文本編輯工具查看使用。#p#
3、Linux日志使用的重要原則
系統(tǒng)管理人員要應(yīng)該提高警惕,隨時(shí)注意各種可疑狀況,并且按時(shí)和隨機(jī)地檢查各種系統(tǒng)日志文件,包括一般信息日志、網(wǎng)絡(luò)連接日志、文件傳輸日志以及用戶登錄日志等。在檢查這些日志時(shí),要注意是否有不合常理的時(shí)間記載。例如:
- 用戶在非常規(guī)的時(shí)間登錄;
- 不正常的日志記錄,比如日志的殘缺不全或者是諸如wtmp這樣的日志文件無(wú)故地缺少了中間的記錄文件;
- 用戶登錄系統(tǒng)的IP地址和以往的不一樣;
- 用戶登錄失敗的日志記錄,尤其是那些一再連續(xù)嘗試進(jìn)入失敗的日志記錄;
- 非法使用或不正當(dāng)使用超級(jí)用戶權(quán)限su的指令;
- 無(wú)故或者非法重新啟動(dòng)各項(xiàng)網(wǎng)絡(luò)服務(wù)的記錄。
尤其提醒管理人員注意的是:日志并不是完全可靠的。高明的黑客在入侵系統(tǒng)后,經(jīng)常會(huì)打掃現(xiàn)場(chǎng)。所以需要綜合運(yùn)用以上的系統(tǒng)命令,全面、綜合的進(jìn)行審查和檢測(cè),切忌斷章取義,否則很難發(fā)現(xiàn)入侵或者做出錯(cuò)誤的判斷。
另外,在有些情況下,可以把日志送到打印機(jī),這樣網(wǎng)絡(luò)入侵者怎么修改日志都沒有用。并且,通常要廣泛記錄日志。另外,syslog設(shè)備是一個(gè)攻擊者的顯著目標(biāo)。一個(gè)為其他主機(jī)維護(hù)日志的系統(tǒng)對(duì)于防范服務(wù)器攻擊特別脆弱,因此要特別注意。
【編輯推薦】






























