明明白白你的Linux伺服器—日誌篇

來源:互聯網
上載者:User

  日誌對於安全來說,非常重要,它記錄了系統每天發生的各種各樣的事情,你可以通過他來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕迹。日誌主要的功能有:審計和監測。他還可以即時的監測系統狀態,監測和追蹤侵入者等等。正因為如此,撫琴煮酒特的將它整理成一篇比重跟硬體篇、網路篇並列的文章,希望大家能從中學習到對自己有用的東西。

  一、配置syslog(gyl4802959同學撰寫)

  目前,linux依舊使用syslogd作為日誌監控進程,對其進行必要的配置能減少很多麻煩,並且可更有效從系統日誌監控到系統的狀態。理解並完善一個syslog的配置,對於系統管理員來說顯得尤為重要。

  /etc/syslog.conf根據如下的格式定義規則: facility.level action

  裝置.優先順序 動作facility.level 欄位也被稱為seletor(選擇條件),選擇條件和動作之間用空格或tab分割開。

  #號開頭的是注釋,空白行會自動跳過。

  1、facility

  facility定義日誌訊息的範圍,其可使用的key有: auth -由 pam_pwdb 報告的認證活動。

  authpriv -包括特權資訊如使用者名稱在內的認證活動

  cron -與 cron 和 at 有關的計劃任務資訊。

  daemon -與 inetd 守護進程有關的後台進程資訊。

  kern -核心資訊,首先通過 klogd 傳遞。

  lpr -與列印服務有關的資訊。

  mail -與電子郵件有關的資訊

  mark - syslog內部功能用於產生時間戳記

  news -來自新聞伺服器的資訊

  syslog -由 syslog 產生的資訊

  user -由使用者程式產生的資訊

  uucp -由 uucp 產生的資訊

  local0-local7 -與自訂程式使用

  * 萬用字元代表除了 mark 以外的所有功能除mark為內部使用外,還有security為一箇舊的key定義,等同於auth,已經不再建議使用。

  2、level層級

  level定義訊息的緊急程度。按嚴重程度由高到低順序排列為: emerg -該系統不可用,等同panic

  alert -需要立即被修改的條件

  crit -阻止某些工具或子系統功能實現的錯誤條件

  err -阻止工具或某些子系統部分功能實現的錯誤條件,等同error

  warning -預警資訊,等同warn

  notice -具有重要性的普通條件

  info -提供資訊的訊息

  debug -不包含函數條件或問題的其他資訊

  none -沒有重要級,通常用於排錯

  * 所有層級,除了none其中,panic、error、warn均為舊的標識符,不再建議使用。

  在定義level層級的時候,需要注意兩點: 1)優先順序是由應用程式在編程的時候已經決定的,除非修改源碼再編譯,否則不能改變訊息的優先順序;

  低的優先順序包含高優先順序,例如,為某個應用程式定義info的日誌導向,則涵蓋notice、warning、err、crit、alert、emerg等訊息。(除非使用=號定義)

  3、selector選擇條件

  通過小數點符號“.”把facility和level串連在一起則成為selector(選擇條件)。

  可以使用分號“;”同時定義多個選擇條件。也支援三個修飾符: * - 所有日誌資訊

  = - 等於,即僅包含本優先順序的日誌資訊

  ! - 不等於,本優先順序日誌資訊除外

  4、action動作

  由前面選擇條件定義的日誌資訊,可執行下面的動作: file-指定記錄檔的絕對路徑

  terminal 或 print -發送到串列或平行裝置標誌符,例如/dev/ttyS2

  @host -遠端Log Service器

  username -發送資訊原生指定使用者資訊視窗中,但該使用者必須已經登陸到系統中

  named pipe -發送到預先使用 mkfifo 命令來建立的 FIFO 檔案的絕對路徑※注意,不能通過“|/var/xxx.sh”方式導向日誌到其他指令碼中處理。

  5、舉例

  例如: *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages

  #把除郵件、新聞群組、授權資訊、計劃任務等外的所有通知性訊息都寫入messages檔案中。

  mail,news.=info /var/adm/info

  #把郵件、新聞群組中僅通知性訊息寫入info檔案,其他資訊不寫入。

  mail.*;mail.!=info /var/adm/mail

  #把郵件的除通知性訊息外都寫入mail檔案中。

  mail.=info /dev/tty12

  #僅把郵件的通知性訊息發送到tty12終端裝置

  *.alert root,joey

  #如果root和joey使用者已經登陸到系統,則把所有緊急語音總機他們

  *.* @finlandia

  #把所有資訊都導向到finlandia主機(通過/etc/hosts或dns解析其IP地址)※注意:每條訊息均會經過所有規則的,並不是唯一匹配的。

  也就是說,假設mail.=info資訊通過上面範例中定義的規則時,/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主機都會收到相同的資訊。這樣看上去比較煩瑣,但可以帶來的好處就是保證了資訊的完整性,可供不同地方進行分析。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.