Ich habe begonnen, Zabbix zu verwenden und kann sehen, dass es Warnungen ausgibt, wenn Dinge wie /etc/passwd geändert werden.
Die Google-Suche nach „Zabbix-Alarm bei Root-Anmeldung“ liefert keine Hinweise. Wie kann ich vorgehen, um beim Root-Anmelden einen Alarm zu erhalten?
Antwort1
Sie sollten Root-Anmeldungen grundsätzlich nicht zulassen, da dies unsicher ist. Sie sollten nur normale Benutzeranmeldungen zulassen. Nach der Anmeldung kann der Benutzer sudo
Befehle als Root ausführen.
Aber warum sollten Sie nur Root-Logins überprüfen? Die Überprüfung der Logins normaler Benutzer ist genauso wichtig. Bots im Internet führen ständig Brute-Force-Angriffe auf normale Benutzer durch.
In jedem Fall müssen Sie /var/log/auth.log
nach erfolgreichen SSH-Anmeldungen suchen. Das Überprüfen von Protokolldateien erfordert aktive Zabbix-Agent-Prüfungen. Sie müssen also zunächst sicherstellen, dass die aktiven Prüfungen ordnungsgemäß funktionieren (siehedieser Blog-Beitrag).
Zweitens wird der Zabbix-Benutzer (standardmäßig) als zabbix
Benutzer ausgeführt. Er kann also nicht lesen /var/log/auth.log
, da diese Datei nur von root und Benutzern in der Gruppe gelesen werden kann . Sie können den Benutzer also zur Gruppe adm
hinzufügen . Dadurch kann Zabbix viele Protokolldateien lesen (zabbix
adm
Quelle).
Schließlich müssen Sie im Zabbix-Frontend ein Überwachungselement und einen Auslöser erstellen.
Erstellen Sie ein Element:
Name: SSH successful authentication
Type: Zabbix agent (active)
Key: log[/var/log/auth.log,"Accepted .*",,,skip,\0]
Erstellen Sie einen Auslöser für dieses Element:
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
Beachten Sie den Accepted .*
regulären Ausdruck im Element. Dieser sollte mit allen Arten der SSH-Authentifizierung übereinstimmen, sei es Kennwortauthentifizierung oder Authentifizierung mit öffentlichem Schlüssel. Natürlich können Sie in Ihrem Fall den regulären Ausdruck so ändern, dass nur Anmeldungen von Root übereinstimmen. Aber wie bereits erläutert, ergibt dies aus Sicherheitsgründen keinen Sinn.
Beachten Sie auch, dass ich verwendet habe log[...]
, da dies dazu führt, dass die mit dem regulären Ausdruck übereinstimmende Protokollzeile in die Benachrichtigungs-E-Mail aufgenommen wird, die Zabbix sendet. Auf diese Weise können Sie in der E-Mail sehen, welcher Benutzer authentifiziert wurde.
Antwort2
Bei Debian-basierten Systemen müssen Sie /var/log/auth.log
die Datei folgendermaßen analysieren:
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]
https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/zabbix_agent
also im Wesentlichen:
log.count[/var/log/auth.log,*root*Accepted,,,skip]