Zabbix Web-GUI brute force Sicherheit verbessern

Im Standard lässt Zabbix (Version 3.4) 5 Loginversuche zu bevor weitere Logins für 30 Sekunden gesperrt werden.

Wer die entsprechenden Einstellungen in den Konfigurationsdateien sucht wird enttäuscht, man muss an den Sourcecode der WebGUI ran.

Hierzu öffnet man mit einem beliebigen Editor die Datei include/defines.inc.php im WebGUI Verzeichnis, bei mir ist das /usr/share/zabbix/include/defines.inc.php .

Neben vielen anderen interessanten Einträgen die man sich unbedingt mal anschauen sollte interessieren uns hier folgende 2:

define('ZBX_LOGIN_ATTEMPTS', 5);
define('ZBX_LOGIN_BLOCK', 30); // sec

ZBX_LOGIN_ATTEMPTS gibt an wie viele Loginversuche man hat und ZBX_LOGIN_BLOCK wie lange man gesperrt wird.

Nach der Sperrzeit kann man direkt die nächsten 5 Versuche starten ohne das die Sperrzeit z.B. exponential wächst, das sind bei schneller Leitung für ein Script ca. 8 Versuche pro Minute, immerhin fast 500 Versuche pro Stunde und über 11500 pro Tag. Bei einem guten Passwort reicht das um sicher zu sein, aber mir ist das zuviel.

Ich habe bei mir die Werte auf

define('ZBX_LOGIN_ATTEMPTS', 3);
define('ZBX_LOGIN_BLOCK', 3600); // sec

geändert. Das reduziert die Anzahl der Versuche auf 72 pro Tag ohne das ich in der Praxis ein Problem habe (wenn mir beim dritten mal das Passwort nicht eingefallen ist dann weis ich es auch beim fünften mal nicht).

Für den Fall das man sich tatsächlich ausgesperrt hat, aber noch über einen Shellzugang mit Datenbankzugriff verfügt so kann man die Sperre in der Datenbank natürlich wieder löschen.

Beispiel (Zabbix 3.4, postgresql, User Admin):

update users set attempt_ip='',attempt_failed=0,attempt_clock=0 where alias like 'Admin';

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert