Zabbix 對 root 登入發出警報

Zabbix 對 root 登入發出警報

我已經開始使用 Zabbix,並且可以看到當 /etc/passwd 等內容發生更改時它會發出警報。

搜尋「root 登入時的 zabbix 警報」不會出現任何提示 - 我該如何在 root 登入時發出警報?

答案1

您不應該完全允許 root 登錄,因為這是不安全的。您應該只允許常規使用者登錄,並且一旦登錄,使用者就可以以sudoroot 身分執行命令。

話雖這麼說,為什麼你只檢查 root 登入?檢查常規用戶登入同樣重要。網路上的機器人一直在對一般用戶進行暴力攻擊。

無論哪種方式,您都需要檢查/var/log/auth.logSSH 登入是否成功。檢查日誌檔案需要主動 Zabbix 代理程式檢查。因此,首先您需要確保主動檢查正常運作(請參閱這篇博文)。

其次,Zabbix 使用者(預設)以該zabbix使用者身分執行。因此它將無法讀取/var/log/auth.log,因為該檔案只能由 root 和群組中的使用者讀取adm。這樣您就可以將zabbix使用者新增至adm群組。這允許 Zabbix 讀取許多日誌檔案(來源)。

最後,您需要在Zabbix前端建立一個監控項目和觸發器。

建立一個專案:

Name: SSH successful authentication
Type: Zabbix agent (active)
Key: log[/var/log/auth.log,"Accepted .*",,,skip,\0]

為該專案建立觸發器:

Name: Successful SSH authentication on {HOST.NAME}
Expression: {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].strlen()}>0 and {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].nodata(5m)}=0

請注意Accepted .*該項目中的正規表示式。這應該可以匹配所有類型的 SSH 身份驗證,無論是密碼身份驗證還是公鑰身份驗證。當然,根據您的情況,您可以更改正規表示式以僅匹配來自 root 的登入。但如前所述,從安全角度來看,這是沒有意義的。

另請注意,我使用了log[...],因為這會導致與正規表示式相符的負責日誌行包含在 Zabbix 將發送的通知電子郵件中。這樣,您就可以在電子郵件中看到哪個使用者已通過身份驗證。

答案2

對於基於 Debian 的系統,您需要/var/log/auth.log像這樣解析檔案:

log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]

https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/zabbix_agent

所以本質上:

log.count[/var/log/auth.log,*root*Accepted,,,skip]

相關內容