Linux下的重要日誌

lm_y發表於2017-09-06

1、Linux下重要日誌檔案介紹
/var/log/boot.log

該檔案記錄了系統在引導過程中發生的事件,就是Linux系統開機自檢過程顯示的資訊,如圖1所示:

 /var/log/boot.log示意

圖1 /var/log/boot.log示意

/var/log/cron

該日誌檔案記錄crontab守護程式crond所派生的子程式的動作,前面加上使用者、登入時間和PID,以及派生出的程式的動作。CMD的一個動作是cron派生出一個排程程式的常見情況。REPLACE(替換)動作記錄使用者對它的cron檔案的更新,該檔案列出了要週期性執行的任務排程。RELOAD動作在REPLACE動作後不久發生,這意味著cron注意到一個使用者的cron檔案被更新而cron需要把它重新裝入記憶體。該檔案可能會查到一些反常的情況。該檔案的示意請見圖2:

 /var/log/cron檔案示意

圖2 /var/log/cron檔案示意

/var/log/maillog

該日誌檔案記錄了每一個傳送到系統或從系統發出的電子郵件的活動。它可以用來檢視使用者使用哪個系統傳送工具或把資料傳送到哪個系統。圖3所示是該日誌檔案的片段:

 /var/log/maillog

圖3 /var/log/maillog檔案示意

該檔案的格式是每一行包含日期、主機名、程式名,後面是包含PID或核心標識的方括號、一個冒號和一個空格,最後是訊息。該檔案有一個不足,就是被記錄的入侵企圖和成功的入侵事件,被淹沒在大量的正常程式的記錄中。但該檔案可以由/etc/syslog檔案進行定製。由/etc/syslog.conf配置檔案決定系統如何寫入/var/messages。

/var/log/syslog

預設Fedora不生成該日誌檔案,但可以配置/etc/syslog.conf讓系統生成該日誌檔案。它和/etc/log/messages日誌檔案不同,它只記錄警告資訊,常常是系統出問題的資訊,所以更應該關注該檔案。要讓系統生成該日誌檔案,在/etc/syslog.conf檔案中加上:*.warning /var/log/syslog 該日誌檔案能記錄當使用者登入時login記錄下的錯誤口令、Sendmail的問題、su命令執行失敗等資訊。該日誌檔案記錄最近成功登入的事件和最後一次不成功的登入事件,由login生成。在每次使用者登入時被查詢,該檔案是二進位制檔案,需要使用lastlog命令檢視,根據UID排序顯示登入名、埠號和上次登入時間。如果某使用者從來沒有登入過,就顯示為"**Never logged in**"。該命令只能以root許可權執行。簡單地輸入lastlog命令後就會看到類似圖4的資訊:

 /var/log/syslog

圖4 lastlog命令的執行結果

/var/log/wtmp

該日誌檔案永久記錄每個使用者登入、登出及系統的啟動、停機的事件。因此隨著系統正常執行時間的增加,該檔案的大小也會越來越大,增加的速度取決於系統使用者登入的次數。該日誌檔案可以用來檢視使用者的登入記錄,last命令就通過訪問這個檔案獲得這些資訊,並以反序從後向前顯示使用者的登入記錄,last也能根據使用者、終端tty或時間顯示相應的記錄。

/var/run/utmp

該日誌檔案記錄有關當前登入的每個使用者的資訊。因此這個檔案會隨著使用者登入和登出系統而不斷變化,它只保留當時聯機的使用者記錄,不會為使用者保留永久的記錄。系統中需要查詢當前使用者狀態的程式,如 who、w、users、finger等就需要訪問這個檔案。該日誌檔案並不能包括所有精確的資訊,因為某些突發錯誤會終止使用者登入會話,而系統沒有及時更新 utmp記錄,因此該日誌檔案的記錄不是百分之百值得信賴的。

以上提及的3個檔案(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日誌子系統的關鍵檔案,都記錄了使用者登入的情況。這些檔案的所有記錄都包含了時間戳。這些檔案是按二進位制儲存的,故不能用less、cat之類的命令直接檢視這些檔案,而是需要使用相關命令通過這些檔案而檢視。其中,utmp和wtmp檔案的資料結構是一樣的,而lastlog檔案則使用另外的資料結構,關於它們的具體的資料結構可以使用man命令查詢。

每次有一個使用者登入時,login程式在檔案lastlog中檢視使用者的UID。如果存在,則把使用者上次登入、登出時間和主機名寫到標準輸出中,然後login程式在lastlog中記錄新的登入時間,開啟utmp檔案並插入使用者的utmp記錄。該記錄一直用到使用者登入退出時刪除。utmp檔案被各種命令使用,包括who、w、users和finger。

下一步,login程式開啟檔案wtmp附加使用者的utmp記錄。當使用者登入退出時,具有更新時間戳的同一utmp記錄附加到檔案中。wtmp檔案被程式last使用。

/var/log/xferlog

該日誌檔案記錄FTP會話,可以顯示出使用者向FTP伺服器或從伺服器拷貝了什麼檔案。該檔案會顯示使用者拷貝到伺服器上的用來入侵伺服器的惡意程式,以及該使用者拷貝了哪些檔案供他使用。

該檔案的格式為:第一個域是日期和時間,第二個域是下載檔案所花費的秒數、遠端系統名稱、檔案大小、本地路徑名、傳輸型別(a:ASCII,b:二進位制)、與壓縮相關的標誌或tar,或"_"(如果沒有壓縮的話)、傳輸方向(相對於伺服器而言:i代表進,o代表出)、訪問模式(a:匿名,g:輸入口令,r:真實使用者)、使用者名稱、服務名(通常是ftp)、認證方法(l:RFC931,或0),認證使用者的ID或"*"。圖5是該檔案的部分顯示:

 圖5 /var/log/xferlog檔案示意

圖5 /var/log/xferlog檔案示意

2、Linux日誌輸出檢視方式

Linux下面提供了許多文字工具來檢視和處理日誌檔案,下面給讀者提供一些比較常見和有用的工具。

dmesg

使用dmesg命令可以快速檢視最後一次系統引導的引導日誌。如圖6所示:

 dmesg顯示結果

圖6 dmesg顯示結果

如上所示,通常它的內容會很多,所以我們往往使用如下命令以分頁的方式顯示引導資訊,如圖7所示:

# dmesg | more

dmesg
圖7 dmesg|more命令顯示結果

tail

tail命令設計用於顯示文字檔案的最後幾行。使用-f開關,當日志增加新的內容時,tail將繼續顯示新的輸出。如圖8所示:

# tar -f /var/log/messages

使用tail檢視日誌
圖8 使用tail檢視日誌

上面的命令將顯示/var/log/messages檔案的最後6行,然後繼續監控那個檔案,並輸出新的行為。要停止tail -f命令,使用[Ctrl + C]來中止程式。

more和less

more的工作方式與DOS版本相同。您可以將它指向一個檔案,或者通過它以管道輸出資訊,以分頁的方式來檢視資訊。例如,以分頁方式顯示maillog日誌檔案的內容:

# more maillog

使用more檢視日誌
圖9 使用more檢視日誌

然後,可以使用q或者[Ctrl+C]來停止檢視檔案。

less 是另一個文字閱讀器,不過它還允許在檔案中滾動瀏覽以及檢索資訊。如下所示:

# less /var/log/cron-20090830

使用less命令檢視日誌
圖9 使用less命令檢視日誌

上面的命令將顯示/var/log/yum.log檔案的內容,可以使用q來停止檢視檔案。

其他方式

Linux中的日誌檔案對於系統的故障診斷和維護來說至關重要。許多諸如WWW、FTP、SMTP等網路應用服務的Linux日誌記錄都是記錄到專門指定的文字檔案中(比如access.log,error.log等等),所以不需要專門的工具來檢視這些檔案。使用者可以選擇Vi、gEdit等簡單的文字編輯工具檢視使用。

3、Linux日誌使用的重要原則

系統管理人員要應該提高警惕,隨時注意各種可疑狀況,並且按時和隨機地檢查各種系統日誌檔案,包括一般資訊日誌、網路連線日誌、檔案傳輸日誌以及使用者登入日誌等。在檢查這些日誌時,要注意是否有不合常理的時間記載。例如:

 使用者在非常規的時間登入;
 不正常的日誌記錄,比如日誌的殘缺不全或者是諸如wtmp這樣的日誌檔案無故地缺少了中間的記錄檔案;
 使用者登入系統的IP地址和以往的不一樣;
 使用者登入失敗的日誌記錄,尤其是那些一再連續嘗試進入失敗的日誌記錄;
 非法使用或不正當使用超級使用者許可權su的指令;
 無故或者非法重新啟動各項網路服務的記錄。
尤其提醒管理人員注意的是:日誌並不是完全可靠的。高明的黑客在入侵系統後,經常會打掃現場。所以需要綜合運用以上的系統命令,全面、綜合的進行審查和檢測,切忌斷章取義,否則很難發現入侵或者做出錯誤的判斷。

另外,在有些情況下,可以把日誌送到印表機,這樣網路入侵者怎麼修改日誌都沒有用。並且,通常要廣泛記錄日誌。另外,syslog裝置是一個攻擊者的顯著目標。一個為其他主機維護日誌的系統對於防範伺服器攻擊特別脆弱,因此要特別注意。

相關文章