Snort 不向系統日誌伺服器發送警報日誌文件?
我設置了三個執行 Ubuntu 的虛擬機——伺服器、客戶端和網關。我的任務是在網關上設置 Snort 以監視從客戶端到伺服器的“攻擊”。Snort 應該將日誌文件發送到我在伺服器上設置的 rsyslog 伺服器。我無法發送這些日誌。
在 snort.conf 文件中,我設置:
output alert_syslog: LOG_AUTH LOG_ALERT
我刷新了我的 iptables 並打開了所有東西以進行測試(nmap 顯示 514 確實是打開的)。我在網關上編輯了 rsyslog.conf 文件並添加了:
*.* @192.168.50.5
在伺服器上的 rsyslog.conf 文件中,我添加了:
*.* /var/log/snort.log
並在兩者中取消註釋以下內容:
$ModLoad imudp.so $UDPServerRun 514
當我執行(eth2 = 客戶端)時:
snort -A console -i eth2 -c /etc/snort/snort.conf
然後從客戶端 ping 伺服器(我有一個 Snort 規則來擷取 ICMP),在 /var/log/snort/snort.log.xxxxxxxxxx 的網關上創建一個日誌文件。但是,伺服器上沒有任何顯示。在 Wireshark 上查看數據包時,我在啟動 Snort 時收到兩條 Syslog 消息,在退出時又收到兩條 (^C)。AUTHPRIV.INFO 只是說“為 root 使用者打開會話”和“為使用者 root 關閉會話”:
作為記錄,我試圖在這裡遵循本教程:
有人知道發生了什麼嗎?
感謝您的任何建議。
我想說,如果有關會話打開和關閉的 syslog 消息正在通過,那麼 rsyslog 可能在兩端都在做它的事情(但通過使用 發送到網關上的 syslog 來確認它
logger
)。此外,在網關上創建日誌文件這一事實表明,日誌消息在網關上被錯誤處理,而不是在鏈處理的後期。我希望確認 snort 實際上正在將 UDP 發送到 syslog。埠 514 上是否有預期的數據包,大概在網關的環回介面上?
看起來你可以繞過本地系統日誌,直接進入伺服器主機:
輸出 alert_syslog: host=192.168.50.5:514, LOG_AUTH LOG_ALERT
如果這沒有吸引力,如果您明確將 snort 輸出發送到 localhost:514 會發生什麼?或者到該主機上的不同 IP。
是否存在防火牆問題可能會阻止數據包發送到網關上的埠 514?
您是否重新啟動了 snort 以獲取新配置?它是在讀取你認為的配置文件嗎?(嘗試用 明確指定
-c
,和/或確認這是您看到的命令行的一部分ps
)。(在某些時候,您會希望限製作為 snort 消息歸檔的內容,但這不是您目前所堅持的)。