如何用rsyslog確保遠程Linux日志安全?
在最近版本的紅帽企業(yè)級Linux(RHEL)中用到了rsyslog。雖然這個日志解決方案和傳統(tǒng)的BSD日志服務(wù)syslogd類似,但它還提供一些功能來保證日志信息到遠程日志主機的可靠傳輸。本文中,你將會看到這些功能。
BSD syslog具有中央日志主機的可配置性。這在嚴(yán)肅執(zhí)行日志管理的系統(tǒng)中是個不錯的主意。在大型環(huán)境中,如果日志文件通過多個主機傳播,它們追蹤起來非常困難。但是,傳統(tǒng)的syslog只提供通過UDP的遠程記錄,它不追蹤連接和沒有保證的主機上的日志信息到達。Rsyslog解決方案在三個遠程日志解決方案中提供選擇:UDP、TCP和***開發(fā)的RELP協(xié)議,RELP協(xié)議只能用于***版本的rsyslog。
當(dāng)發(fā)出數(shù)據(jù)包時,UDP沒有建立連接,這意味著這些信息的發(fā)出者只能相信該信息會到達其目的地。TCP協(xié)議在數(shù)據(jù)與其它主機交換之前就建立了連接。該解決方案簡單且高效:TCP信息的接收者告知已收到,所以發(fā)信人在信息到達時會得到確認(rèn)。由于其廣泛的可用性和周密的信息管理,TCP成為更受青睞的選擇。RELP協(xié)議相對來說還很新且沒有普遍應(yīng)用,這也是現(xiàn)階段要避免使用的原因。
要啟用UDP或者TCP日志,你需要啟用一個特定模塊。Rsyslog使用輸入模塊和輸出模塊來啟用來自特定來源的日志信息接收并發(fā)送日志信息到特定輸出目的地。要確保該中央日志主機能通過TCP接收日志信息,你需要在它的etc/rsyslogd.conf中包括以下兩行:
$ModLoad imtcp
$InputTCPServerRun 514
這幾行的***行負(fù)載輸入模塊tcp,第二行告訴rsyslog聽從端口514上傳入的TCP連接。接著,告訴主機必須將信息發(fā)送到遠程主機。接下來的命令告訴本地主機將所有日志信息發(fā)送到一個中央日志主機,它在IP地址192.168.0.1下可用:
*.* @@192.168.0.1
在這一行中使用了syslog風(fēng)格的設(shè)施和優(yōu)先規(guī)定:設(shè)施*(發(fā)送到rsyslog程序的每一個事件)發(fā)送所有符合所有優(yōu)先權(quán)的事件到中央日志主機。指示@@清楚指出,該日志主機聽從TCP端口上接下來的信息。做為選擇,如果你必須通過UDP發(fā)送信息,你可以使用@192.168.0.1。
如果你想運用新的RELP解決方案,你可以在中央日志主機上負(fù)載模塊,通過在其rsyslogd.conf上囊括以下命令行:
$ModLoad imrelp
$InputRELPServerRun 2514
想要通過RELP發(fā)送信息,你需要在發(fā)送主機上添加以下命令:
*.* :omrelp:192.168.0.1:2514
注意,想要將它發(fā)送到RELP目標(biāo)主機,需要使用一個無特權(quán)的數(shù)字,因為沒有為RELP協(xié)議預(yù)留專門端口。
老式的syslog后臺程序只能通過UDP發(fā)送日志信息。在新的rsyslog日志后臺中,你可以在UDP、TCP和新的RELP協(xié)議中做選擇。使用TCP或RELP更好地保證了該日志信息會到過目的地,兩者中的任一種都比以前使用方法構(gòu)建的日志環(huán)境要更為安全。
【編輯推薦】