Der Zimbra interne DoSFilter blockiert verdächtige IP-Adressen bei wiederholten Fehlanmeldungen oder Überlastungen, während die Sperrrichtlinie ("Failed Login Lockout Policy") bei zu vielen fehlgeschlagenen Anmeldeversuchen ein Postfach für einen bestimmten Zeitraum sperrt. Dabei sollte der DosFilter so konfiguriert werden, dass er IP-Adressen bei zu vielen fehlgeschlagenen Anmeldeversuchen bereits dann blockiert, bevor die Sperrrichtlinie der Serviceklasse (COS) den betreffenden Account sperrt. Mit dieser Konfigurationsreihenfolge wird die Benutzerfreundlichkeit verbessert und gleichzeitig die Betriebssicherheit erhöht.
Voraussetzung für ein korrektes Verhalten des DosFilters ist die vorherige Konfiguration der festen IP-Adressen vertrauenswürdiger Standorte (zimbraHttpThrottleSafeIPs) sowie die Aktivierung des OIP-Logging des Servers:
Aktivierung des Logging der "Originating IP"
zmprov mcf +zimbraMailTrustedIP 127.0.0.1 +zimbraMailTrustedIP <IPofZimbraZCSServer>
Konfiguration vertrauenswürdiger IP-Adressen
zmprov mcf +zimbraHttpThrottleSafeIPs <TrustedOfficeIP1/32> +zimbraHttpThrottleSafeIPs <TrustedOfficeIP2/32>
Konfiguration des DosFilter für fehlgeschlagene Anmeldeversuche
Im Anschluss daran wird die Regel für fehlgeschlagene Anmeldeversuche des DosFilter so konfiguriert, dass sie vor denen der Sperrrichtlinie ("Failed Login Lockout Policy") wirkt.
Folgende Konfiguration sperrt die betreffende IP-Adresse nach 10 fehlgeschlagenen für 15 Minuten, während der aktuelle Status alle 5 Minuten geprüft wird:
zmprov mcf zimbraHttpDosFilterDelayMillis 50
zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 500
zmprov mcf zimbraInvalidLoginFilterMaxFailedLogin 10
zmprov mcf zimbraInvalidLoginFilterDelayInMinBetwnReqBeforeReinstating 15
zmprov mcf zimbraInvalidLoginFilterReinstateIpTaskIntervalInMin 5
Konfiguration der Sperrrichtlinie ("Failed Login Lockout Policy")
Die Sperrrichtlinie wird in der jeweiligen Serviceklasse ("Class of Service - COS") konfiguriert. Folgende Konfiguration sperrt den betreffenden Account nach 20 fehlgeschlagenen für 15 Minuten in der Serviceklasse "default":
zmprov mc default zimbraPasswordLockoutEnabled TRUE
zmprov mc default zimbraPasswordLockoutMaxFailures 20
zmprov mc default zimbraPasswordLockoutDuration 1h
zmprov mc default zimbraPasswordLockoutFailureLifetime 1h
wobei die Sperrung auch nach 1h Stunde automatisch wieder aufgehoben wird, auch wenn keine erfolgreiche Anmeldung nach 60 Minuten ohne fehlgeschlagenen Anmeldeversuchen erfolgte.
Ob und welche Accounts gerade aufgrund zu vieler fehlerhafter Anmeldeversuche vorübergehend gesperrt sind, ermitteln Sie über CLI mittels:
zmaccts | grep "lockout"
Für die Ermittlung der Quelle kommen die Logfiles
/var/log/zimbra.log
und
/opt/zimbra/log/audit.log
in Frage.
Die Dokumentation dazu ist unter https://wiki.zimbra.com/wiki/Understanding_And_Troubleshooting_Authentication_Log_Events zu finden. Ob und wann welche Accounts von der eingestellten Passwortrichtlinie vorrübergehend gesperrt wurden, ist per CLI festzustellen:
grep "error=account lockout" /opt/zimbra/log/audit.log
Welche Regeln zur vorrübergehenden Sperrung von Passwörten aktuell z. Bsp. für die Serviceklasse (COS) "default" konfiguriert sind, ermittelt man per CLI mittels:
zmprov gc default | grep -i zimbraPasswordLockout
Die Dokumentation ist unter https://zimbra.github.io/documentation/zimbra-10/adminguide.html#_managing_login_policies zu finden. Zur Ermittlung der in Frage kommenden IP-Adressen der fehlerhaften Anmeldeversuche kommen je nach Protokoll verschiedene Möglichkeiten in Betracht. Die bei weitem häufigste Variante ist der Anmeldeversuch per SMTP- Authentifizierung.
Die IP-Adressen und Accounts der fehlerhaften Anmeldeversuche per SMTP- Authentifizierung, ermittelt man über CLI mittels:
grep "SASL PLAIN authentication failed" /var/log/zimbra.log
| cut -d "[" -f 3 | sed 's/]: SASL PLAIN authentication failed: authentication failure, / /' | sort