王繼敏
(河南科技學(xué)院信息工程學(xué)院,河南 新鄉(xiāng) 453003)
【關(guān)鍵字】Linux;日志
日志服務(wù)器將系統(tǒng)上發(fā)生的重要事件記錄下來,以協(xié)助系統(tǒng)管理員進(jìn)行安全分析、 故障排查及合規(guī)審計等。 但如果遭受到非法入侵, 入侵者會刪除日志以防止入侵行為被追蹤, 而將日志記錄在遠(yuǎn)程服務(wù)器就可以避免這種情況。 常見的Linux 發(fā)行版都是采用的rsyslog 來實現(xiàn)日志服務(wù)的, 并可以較方便的將一臺Linux 主機配置為遠(yuǎn)程日志服務(wù)器。本文將闡述相關(guān)的技術(shù)原理和實現(xiàn)方法。
本文所述的命令、 配置文件等都基于RHEL6.3(Redhat Enterprise Linux 6.3), 不 同Linux 發(fā) 行 版 之 間或許有細(xì)微的差別, 這些差異不在本文的探討范圍之內(nèi)。
Linux 下的日志記錄了系統(tǒng)每天發(fā)生的各種各樣的事情, 可以通過它來檢查錯誤發(fā)生的原因, 或者受到攻擊時攻擊者留下的痕跡。 日志主要的功能有: 審計和監(jiān)測。 RHEL6 下的日志文件存放在/var/log 目錄下,下面舉幾個常見日志的例子:
●/var/log/dmesg
核心啟動日志。 這個日志文件記錄了內(nèi)核啟動時候輸出的信息。
●/var/log/messages
系統(tǒng)報錯日志。
●/var/log/maillog
郵件系統(tǒng)日志。
●/var/log/secure
安全信息、認(rèn)證登錄和與xinetd 有關(guān)的日志。
●/var/log/cron
計劃任務(wù)執(zhí)行成功與否的日志。
●/var/log/wtmp
記錄所有的登錄和登出??梢杂胠ast 命令查看所有登錄過系統(tǒng)的用戶和IP。
●/var/log/btmp
記錄錯誤的登錄嘗試。 可以用lastb 命令查看。 注意, 這個文件如何突然快速增大, 可能有人試圖暴力破解用戶密碼。
●/var/log/lastlog
記錄每個用戶的最后登錄信息。
RHEL6 下有一個tailf 命令非常適合用于監(jiān)控日志文 件 的 變 化。 例 如 輸 入 命 令 “tailf /var/log/secure”,這時, 屏幕顯示的末尾就是系統(tǒng)輸出的最新的安全信息、認(rèn)證登錄和與xinetd 有關(guān)的日志。
Linux 下的日志采用先分類, 然后在每個類別下分級的管理模式。 日志種類可以分為七類[1]:
●authpriv 安全認(rèn)證相關(guān)
●cron at 和cron 定時任務(wù)相關(guān)
●deamon 定時任務(wù)相關(guān)
●kern 內(nèi)核產(chǎn)生
●lpr 打印系統(tǒng)產(chǎn)生
●mail 郵件系統(tǒng)產(chǎn)生
●syslog 日志服務(wù)本身
除上面列出的七類常見日志以外,還有news(新聞系統(tǒng)相關(guān))、uucp(unix to unix copy)等日志類型(目前已經(jīng)不太常用)。 另外, 還有l(wèi)ocal0~lobal7 這八個日志類型, 是系統(tǒng)保留的, 可以供其他程序使用或者用戶自定義使用。
日志又可以分為八種級別, 按照級別由低到高分別是:
●debug 排錯信息
●info 正常信息
●notice 稍微要注意的
●warn 警告
●err(error) 錯誤
●crit(critical) 關(guān)鍵的錯誤
●alert 警報警惕
●emerg(emergence) 緊急突發(fā)事件
在RHEL6 中日志由系統(tǒng)服務(wù)rsyslog 進(jìn)行管理和控制。 最小化安裝RHEL6 后,rsyslog 服務(wù)默認(rèn)是開啟的。該服務(wù)的配置文件位于/etc/rsyslog.conf,下面對該配置文件進(jìn)行簡單描述。
該配置文件主要分為MODULES 和TOOLS 兩小節(jié)。MODULES 小節(jié)設(shè)置rsyslog 服務(wù)加載的模塊。 其中#號表示注釋。其中比較重要的是“#$ModLoad imudp”和“#$UDPServerRun 514”兩行,取消掉該行注釋后,表示允許514 端口接收使用UDP 協(xié)議轉(zhuǎn)發(fā)過來的日志。 這樣可以把本主機配置為集中式的日志服務(wù)器, 它接收并存儲其它主機的日志,提高了整個系統(tǒng)的安全性。 “#$ModLoad imtcp”和“#$InputTCPServerRun 514”功能相同,只不過采用的是TCP 協(xié)議。
RULES 這一節(jié)定義了不同類型和級別的日志應(yīng)存放 在 哪 里。 例 如,“*.info;mail.none;authpriv.none;cron.none /var/log/messages” 表 示 除 了mail 日 志、authpriv 日志和cron 日志之外, 其它的所有類型info 級別及以上的日志都存放在/var/log/messages 下。
使用虛擬機作為實驗環(huán)境, 首先啟動兩臺RHEL6虛擬機,其中一臺主機ip 地址為192.168.1.111,將其設(shè)置為日志服務(wù)器。 另一臺ip 地址192.168.1.112,設(shè)置為客戶端用于測試日志服務(wù)器是否正確配置。
然后配置日志服務(wù)器主機的/etc/rsyslog.conf 文件,并重啟rsyslog 服務(wù)。以下給出/etc/rsyslog.conf 文件需要修改的地方,及重啟服務(wù)的命令:
# vi /etc/rsyslog.conf
......
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
......
# service rsyslog restart
接下來配置客戶端主機的/etc/rsyslog.conf 文件,定義其日志向日志服務(wù)器發(fā)送,然后重啟rsyslog 服務(wù)。以下給出/etc/rsyslog.conf 文件需要修改的地方,及重啟服務(wù)的命令:
# vi /etc/rsyslog.conf
......
#### RULES ####
......
*.info @192.168.1.111
......
# service rsyslog restart
最后配置日志服務(wù)器主機的防火墻, 使其可以接收客戶端發(fā)來的日志信息。 簡單起見, 這里直接用命令“iptalbes -F”關(guān)閉日志服務(wù)器主機的防火墻。 此時就可以測試一下, 遠(yuǎn)程日志服務(wù)器是否配置成功了。例如客戶端主機用logger 命令產(chǎn)生一條日志, 用tailf觀察一下日志服務(wù)器的日志變化。
經(jīng)過這樣的搭建,ip 地址為192.168.1.112 的Linux主 機 上 的 日 志 信 息, 將 會 發(fā) 送 到 ip 地 址 為192.168.1.111 的遠(yuǎn)程日志服務(wù)器上。
如果整個系統(tǒng)有多臺Linux 主機提供網(wǎng)絡(luò)服務(wù),那么配置一臺集中式的遠(yuǎn)程日志服務(wù)器負(fù)責(zé)接收多臺Linux 主機的日志信息, 不僅加強了日志信息的安全,而且管理員只需要查看日志服務(wù)器上的信息即可以掌握整個系統(tǒng)的運行狀況,方便管理。
日志服務(wù)器在系統(tǒng)的運行維護(hù)過程中起到重要的作用, 可以協(xié)助系統(tǒng)管理員進(jìn)行安全分析、 故障排查及合規(guī)審計等。 為了避免日志信息被非法入侵者刪除, 可以采用遠(yuǎn)程日志服務(wù)器的方式提升系統(tǒng)安全。通過RHEL6 中內(nèi)置的rsyslog 軟件包及修改相應(yīng)配置文件,可以方便的架設(shè)遠(yuǎn)程日志服務(wù)器。