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