作業系統的日志主要具有審計與監測的功能,通過對日志資訊的分析,可以檢查錯誤發生的原因,監測追蹤入侵者及受到攻擊時留下的痕迹,甚至還能實時的進行系統狀态的監控。有效利用日志資訊并對其進行分析與實時的監控管理,對于系統的安全性具有極為重要的作用。本文就是和大家探讨如何利用linux日志系統來管理系統更輕松。對于日志資訊的管理通常采用兩種方法,一種方法是不同伺服器的日志資訊都存放在各自系統内,系統管理者對各伺服器進行分散管理。另一種方法則是使用日志主機系統,這是一個從其他主機收集日志,并将它們存放在同一個地方的系統,很容易使來自多個主機的日志條目關聯起來,對其進行統一管理 、分析,甚至配合自動化工具進行實時的監控,有效提高管理的效率。
第一種方法往往是大多數系統管理者的常用的方法,這種傳統的管理方法在伺服器數量較少時還能勉強應付,但在處理多主機狀況時卻并非一種有效的方法。本文主要講述二種日志管理方法,探尋一種提高系統管理效率的途徑。
一、日志主機系統的部署
日志主機系統包括日志主機及各主機系統兩個部分,其中日志主機相當于伺服器端,而各主機系統相當于用戶端,将日志資訊實時的傳送到日志主機上來。
1. 日志主機的部署
日志主機采用一台RHEL 5.4系統的伺服器(假設其主機名為loghost),日志收集軟體采用Linux平台上的Sysiog,Sysiog一般都随Linux系統安裝時已經安裝,對于我們部署整個系統提供了極大的便利性,是以在此不對其安裝步驟進行闡述,僅講述其配置方法。
Sysiog既可作為用戶端,也可作為伺服器端,并且支援遠端的日志收集。其配置檔案為/etc/sysconfig/sysiog,要配置其作為伺服器端,需對此配置檔案相應部分改為如下所示:
SYSLOGD_OPTIONS=“-r-m 0”
“-r”選項使syslog接收用戶端的遠端日志資訊。
重新開機Syslog伺服器端使配置生效:
#service syslogd restart
Syslog采用514端口監聽來自各用戶端的日志資訊,是以需要在日志主機的防火牆上開放514端口,以iptables為例,對特定網段開放514端口: /sbin/iptables_A INPUT _ietho_p tcp_s 192.168.0.0/16_dport 514_syn_j ACCEPT
2.用戶端的部署
◆ Linux平台下用戶端的部署
在Linux平台下依然選擇Sysiog作為用戶端進行部署,此時此配置檔案為/etc/sysiog.conf,其預設配置為(僅以/var/ log/message日志為例):
*.info;mail.none;authpriv.none;cron.none /var/log/messages
/var/log/message即Sysolg存放系統日志的絕對路徑,将此值替換為日志主機名即可,示例如下:
*.info;mail.none;authpriv.none;cron.none @loghost
依上述配置,當Syslog重新開機使用配置生效後,用戶端伺服器的日志資訊将會實時的傳送到日志主機的/var/log/message檔案裡,對各伺服器的日志資訊進行統一的管理。
使用如下指令重新開機Syslog服務使配置生效:
依上述方法将其他系統日志資訊(如/var/log/secure)導入到日志主機上。
筆者建議,采用添加配置而非修改的方法,同時在本地及日志主機上儲存系統日志。
◆Windows平台下用戶端的部署
将這兩個檔案放到C:\WINDOWS\system32目錄下,在指令行狀态下運作如下指令進行安裝: %systemroot%\system32\evtsys –i-h loghost
當安裝成功後,可檢視服務清單看到相應的資訊,如圖1所示。
解除安裝evtsys的指令為:
%systemroot%\system32\evtsysu

更改日志主機名的指令為:
Net stop evtsys //停止 evtsys
evtsysu //解除安裝 evtsys
evtsyslh newloghost //指定新的日志主機名
net start evtsys //啟動 evtsys
二、日志主機的自動日志分析與監控
當整個系統部署好後,可以從日志主機裡驗證各伺服器是否将日志資訊發送到了日志主機上。以/var/log/message為例,打開此檔案,當看到具有不同主機名字的日志資訊标志着日志主機已經正常工作,節選部分日志如下:
Sep 19 08:39:38 dog crond(pam_unix)[4528]:session opened for user root by (uid=o)
Sep 19 08:39:36 dog crond(pam_unix)[4528]:session closed for user root
Sep 19 08:39:40 panda crond(pam_unix)[20296]:session opened for user root by(uid=0)
Sep 19 08:39:40 panda crond(pam_unix)[20296]:session closed for user root
Sep 19 08:39:53 app last message repeated 8 times
Sep 19 08:40:11 apple netsnmp[657]:Connection from udp:192.168.1.11:4298
Sep 19 08:40:11apple netsnmp[657]:Received SNMP packet(s) from udp:159.226.2.144:42988
Sep 19 08:41:15orangesshd(pam_unix)[28389]:session opened for user tom by(uid=2009)
Sep 19 08:41:28 orange sshd(pam_unix)[28389]:session opened for user tom by (uid=2009)
Sep 19 08:41:28 orange 9月19 08:41:28 su` (pam_unix)[28425]:session opened for user root by tom (uid=2009)
對于如此龐大的日志資訊,大部分并沒多大的用處,但在跟蹤某一具體問題或者安全漏洞時卻可能很有用。那麼我們如何對其進行有效地分析與監測,發揮其真正作用呢?在此推薦兩款比較常用的日志分析與監控軟體,對這些日志資訊進行自動地分析與監控。
1. 利用Logwatch 進行日志監控
LogDir =/var/log
Pnnt=No
Range=yesterday
Detail=High
Service=All
2. 利用Swatch進行日志的實時監控
#tarzxvf swatch3.2.1.tar.gz
#cd swatch-3.2.1
#perl Makefile.PL
#make
#make test
#make install
#make realclean
配置Swatch使其作,需建立配置檔案~/.swatchrc,按照其文法規則添加監測的相關内容,可使用“man swatch”指令檢視具體配置内容及含義。下面是一個簡單的範例,僅供參考:
W a t c h f o r = /Failedfuseraddllnvalid/i #采用正規表達式的形式指定監測的内容#
echo #使得比對的行通過stdout顯示#
mail address=admin\@local.com,subject=Monitor Result #向系統管理者發送監測結果郵件,并設定相應的主題#
mall addresses=admin\@local.com,subject=Monitor Result,when=25:817 # 向系統管理者發送監測結果郵件,并設定相應的主題及監控的時間#
使用“swatchhelp”檢視Swatch運作時的具體選項。下面是一個運作指令範例,僅供參考:
#swatch-config-file=~/.swatchrc-examine=/var/log/messages
當出現監控到的資訊時,Swatch即會實時地發送郵件給系統管理者,及時杜絕入侵者的各種入侵嘗試,保護系統的安全。
日志主機系統的建立,不但能夠有效提高日志管理、分析及監測的效率,同時它也對于日志資訊的安全保護起到了極為重要的作用,一方面它将各伺服器的日志資訊在日志主機上進行備份,同時也能夠有效防止入侵痕迹,為系統管理工作提供了極大的便利性,是有效保障系統安全的重要途徑之一。
本文轉自東方之子736651CTO部落格,原文連結: http://blog.51cto.com/ecloud/1338037,如需轉載請自行聯系原作者