2011年9月29日星期四

分析freebsd中的重要log檔案

系統中的log檔案,對一個系統管理人員而言,是一項非常重要的訊息來源,
除了對這些log檔案最好可以架設log server將這些資料保留之外,
定期的檢閱、分析log檔案也是非常重要的一件事情。

系統的log檔案很多,freebsd的log檔案則紀錄在/var/log這個目錄中,
其中有關資訊安全最重要的有:secure*、messages*
其他還有 sendmail*、maillog*、httpd-*等,各紀錄著各個系統的運行紀錄,
裡面都有一些重要的訊息、機器安全的蛛絲馬跡,
如果有定時查看,就不會覺得機繼壞得莫名其妙,或是被攻擊的不知怎麼死的。

這幾天因為某些意外的測試,而去觀察了系統的兩個姿安相關的log檔案,
發現了來自對岸同胞許多的ftp錯誤登入攻擊,
當下當然立刻從防火牆中,把這些IP阻擋掉。
以下是我用來分析log檔案的指令,
寫在這邊給自己留作以後參考。
未來的目標,是能夠找到一個分析log的工具,或是有一個可以集中管控的機制,
從一個地方可以監控到所有機器的運轉狀態以及他的重要log訊息。

以下就是這一次所用的指令:

 最新的log檔案並沒有壓縮,所以可以直接以cat的指令讀取內容,透過管線指令(pipe)過濾出所要的訊息

# cat /var/log/messages | grep 'FTP LOGIN FAILED' | sort -t ' ' -k 10 | more

說明:讀取message檔案,並且過濾出其中有FTP LOGIN FAILED的紀錄,並且依照來源IP排列。(由於這次發現攻擊都是使用ftp的當入嘗試,因此以此一關鍵字進行過濾)
後面的sort是排序的指令,-t代表以什麼來切割字串,而-k則是以第幾個欄位的字串進行排列。

如果要讀取已經壓縮的檔案,則是以下列指令進行。
# bunzip2 -c /var/log/messages.6.bz2 | grep 'FTP LOGIN FAILED' | sort -t ' ' -k 10 | more

比較可惜的是,有一個指令uniq,似乎可以過濾出相同的ip有幾筆,把重複的去掉,不顯示出來。只是尚未研究出來該怎麼使用。

參考資料:
鳥哥的linux私房菜:認識與學習BASH
鳥哥的linux私房菜:認識與分析登錄檔

0 意見:

張貼意見