Zimbra OSE Schutz vor Brute-Force- und DoS-Angriffen

Die Zimbra Collaboration Suite Open-Source Edition bietet eine Reihe leistungsstarker Tools zur Gewährleistung der Informationssicherheit. Dazu gehören Postscreen — eine Lösung zum Schutz des Mailservers vor Botnetzangriffen, ClamAV — ein Antivirenprogramm, das in der Lage ist, eingehende Dateien und E-Mails auf schadhafte Software zu überprüfen, sowie SpamAssassin — einer der besten Spam-Filter der heutigen Zeit. Diese Tools können jedoch keinen Schutz für Zimbra OSE gegen Angriffe wie Brute-Force-Attacken bieten. Obwohl es nicht die eleganteste Methode ist, ist das Brute-Forcing von Passwörtern mit einem speziellen Wörterbuch nach wie vor recht effektiv. Es birgt nicht nur die Gefahr eines erfolgreichen Angriffs mit allen daraus resultierenden Folgen, sondern auch eine erhebliche Belastung des Servers, der alle fehlgeschlagenen Versuche, auf den Server mit Zimbra OSE zuzugreifen, verarbeitet.

Zimbra OSE Schutz vor Brute-Force- und DoS-Angriffen

Grundsätzlich kann man sich mit den Standardmitteln von Zimbra OSE gegen Brute-Force-Angriffe schützen. Die Einstellungen der Sicherheitsrichtlinie für Passwörter ermöglichen es, die Anzahl der fehlgeschlagenen Passwortversuche festzulegen, nach denen das potenziell angegriffene Konto gesperrt wird. Das Hauptproblem bei diesem Ansatz besteht darin, dass Situationen auftreten können, in denen Konten von einem oder mehreren Mitarbeitern aufgrund einer Brute-Force-Attacke gesperrt werden, mit der sie nichts zu tun haben, was zu erheblichen Verlusten für das Unternehmen führen kann. Daher ist es besser, diese Art des Schutzes vor Brute-Force-Angriffen zu vermeiden.

Zimbra OSE Schutz vor Brute-Force- und DoS-Angriffen

Um sich gegen Brute-Force-Angriffe zu schützen, ist ein spezielles Tool namens DoSFilter viel besser geeignet, das in Zimbra OSE integriert ist und automatisch die Verbindung zu Zimbra OSE über HTTP unterbrechen kann. Mit anderen Worten, das Funktionsprinzip von DoSFilter ähnelt dem von PostScreen, wird jedoch für ein anderes Protokoll verwendet. Ursprünglich dazu gedacht, die Anzahl der Aktionen zu begrenzen, die ein einzelner Benutzer ausführen kann, kann DoSFilter auch Schutz vor Brute-Force-Angriffen bieten. Der entscheidende Unterschied zu dem in Zimbra integrierten Tool besteht darin, dass es nach einer bestimmten Anzahl von fehlgeschlagenen Versuchen nicht den Benutzer selbst, sondern die IP-Adresse blockiert, von der aus mehrere Versuche unternommen werden, in ein Konto einzuloggen. Dadurch kann der Systemadministrator nicht nur Brute-Force-Angriffe abwehren, sondern auch die Blockierung von Unternehmensmitarbeitern vermeiden, indem er einfach das interne Netzwerk seines Unternehmens in die Liste der vertrauenswürdigen IP-Adressen und Subnetze aufnimmt.

Ein großer Vorteil von DoSFilter ist, dass man mit diesem Tool neben den zahlreichen Versuchen, sich in ein Konto einzuloggen, auch automatisch diejenigen Angreifer blockieren kann, die sich die Authentifizierungsdaten eines Mitarbeiters angeeignet haben, dann erfolgreich in dessen Konto eingeloggt sind und begonnen haben, Hunderte von Anfragen an den Server zu senden.

DoSFilter kann mit den folgenden Konsolenbefehlen konfiguriert werden:

  • zimbraHttpDosFilterMaxRequestsPerSec — Mit diesem Befehl kann die maximale Anzahl von Verbindungen festgelegt werden, die für einen einzelnen Benutzer zulässig sind. Der Standardwert beträgt 30 Verbindungen.
  • zimbraHttpDosFilterDelayMillis — Mit diesem Befehl kann die Verzögerung in Millisekunden für Verbindungen festgelegt werden, die die vorherige Befehlsgrenze überschreiten. Neben Ganzzahlen kann der Administrator 0 angeben, damit es keine Verzögerung gibt, sowie -1, damit alle Verbindungen, die die festgelegte Grenze überschreiten, einfach unterbrochen werden. Der Standardwert beträgt -1.
  • zimbraHttpThrottleSafeIPs — Mit diesem Befehl kann der Administrator vertrauenswürdige IP-Adressen und Subnetze angeben, auf die die oben genannten Einschränkungen nicht angewendet werden. Es ist zu beachten, dass die Syntax dieses Befehls je nach gewünschtem Ergebnis variieren kann. Beispielsweise kann durch Eingabe des Befehls zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, Sie werden die gesamte Liste vollständig überschreiben und nur eine IP-Adresse darin belassen. Wenn Sie jedoch den Befehl eingeben, zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, wird die von Ihnen eingegebene IP-Adresse zur Whitelist hinzugefügt. Ebenso kann mit einem Minuszeichen eine IP-Adresse aus der erlaubten Liste entfernt werden.

Es sollte angemerkt werden, dass der DoSFilter bei der Verwendung von Zextras Suite Pro eine Reihe von Problemen verursachen kann. Um diese zu vermeiden, empfehlen wir, die Anzahl gleichzeitiger Verbindungen von 30 auf 100 mit dem Befehl zu erhöhen zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Außerdem empfehlen wir, das interne Unternehmensnetzwerk zur erlaubten Liste hinzuzufügen. Dies kann mit dem Befehl geschehen zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Nach Änderungen am DoSFilter müssen Sie unbedingt den Mailserver mit dem Befehl neu starten zmmailboxdctl restart.

Der Hauptnachteil des DoSFilters besteht darin, dass er auf Anwendungsebene arbeitet und daher nur die Möglichkeit von Angreifern einschränken kann, verschiedene Aktionen auf dem Server durchzuführen, jedoch nicht die Möglichkeit, sich mit dem Server zu verbinden. Daher werden die an den Server gesendeten Anfragen zur Authentifizierung oder zum Versand von E-Mails, auch wenn sie von vornherein fehlerhaft sind, nach wie vor eine altbekannte DoS-Attacke darstellen, die auf so hohem Niveau nicht gestoppt werden kann.

Um Ihren Unternehmensserver mit Zimbra OSE vollständig abzusichern, kann eine Lösung wie Fail2ban verwendet werden, die ein Framework darstellt, das die Protokolle von Informationssystemen ständig auf sich wiederholende Aktionen überwacht und den Angreifer durch Änderung der Firewall-Einstellungen blockiert. Eine Blockierung auf so niedriger Ebene ermöglicht es, Angreifer bereits beim IP-Verbindungsversuch zum Server zu trennen. Auf diese Weise kann Fail2Ban den durch DoSFilter aufgebauten Schutz perfekt ergänzen. Lassen Sie uns herausfinden, wie man Fail2Ban mit Zimbra OSE integrieren kann, um die Sicherheit der IT-Infrastruktur Ihres Unternehmens zu erhöhen.

Wie jede andere Unternehmensanwendung führt die Zimbra Collaboration Suite Open-Source Edition detaillierte Protokolle ihrer Aktivitäten. Die meisten davon werden in einem Ordner /opt/zimbra/log/ in Form von Dateien gespeichert. Hier sind einige davon:

  • mailbox.log — Protokolle des Maildienstes Jetty
  • audit.log — Protokolle der Authentifizierung
  • clamd.log — Protokolle der Antiviren-Software
  • freshclam.log — Protokolle der Antiviren-Updates
  • convertd.log — Protokolle des Anhang-Konverters
  • zimbrastats.csv — Protokolle der Serverleistung

Die Zimbra-Protokolle finden Sie auch in der Datei /var/log/zimbra.log, in der Protokolle über die Funktionsweise von Postfix und Zimbra selbst geführt werden.

Um unser System vor Brute-Force-Angriffen zu schützen, werden wir überwachen mailbox.log, audit.log und zimbra.log.

Damit alles funktioniert, müssen auf Ihrem Server mit Zimbra OSE Fail2Ban und iptables installiert sein. Falls Sie Ubuntu verwenden, können Sie das mit den Befehlen dpkg -s fail2bantun, wenn Sie jedoch CentOS verwenden, können Sie dies mit den Befehlen überprüfen yum list installed fail2ban. Falls Fail2Ban nicht installiert ist, ist die Installation kein Problem, da dieses Paket in fast allen Standard-Repositories verfügbar ist.

Sobald die notwendige Software installiert ist, können wir mit der Konfiguration von Fail2Ban beginnen. Dazu müssen wir eine Konfigurationsdatei erstellen /etc/fail2ban/filter.d/zimbra.conf, in der wir reguläre Ausdrücke für die Protokolle von Zimbra OSE festlegen, die mit fehlerhaften Anmeldeversuchen übereinstimmen und die Mechanismen von Fail2Ban aktivieren. Hier ist ein Beispiel für den Inhalt von zimbra.conf mit einer Reihe von regulären Ausdrücken, die verschiedenen Fehlern entsprechen, die von Zimbra OSE bei fehlgeschlagenen Authentifizierungsversuchen angezeigt werden:

# Fail2Ban configuration file
 
[Definition]
failregex = [ip=<HOST>;] account - authentication failed for .* (no such account)$
                        [ip=<HOST>;] security - cmd=Auth; .* error=authentication failed for .*, invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=soap; error=authentication failed for .* invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=imap; error=authentication failed for .* invalid password;$
                        [oip=<HOST>;.* SoapEngine - handler exception: authentication failed for .*, account not found$
                        WARN .*;ip=<HOST>;ua=ZimbraWebClient .* security - cmd=AdminAuth; .* error=authentication failed for .*;$

ignoreregex =

Nachdem die regulären Ausdrücke für Zimbra OSE erstellt wurden, ist es an der Zeit, die Konfiguration von Fail2Ban selbst zu bearbeiten. Die Einstellungen dieses Tools befinden sich in der Datei /etc/fail2ban/jail.conf. Zur Sicherheit erstellen wir eine Sicherungskopie mit dem Befehl cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Danach bringen wir diese Datei in etwa die folgende Form:

# Fail2Ban configuration file
 
[DEFAULT]
ignoreip = 192.168.0.1/24
bantime = 600
findtime = 600
maxretry = 5
backend = auto
 
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=admin@company.ru, sender=fail2ban@company.ru]
logpath = /var/log/messages
maxretry = 5
 
[sasl-iptables]
enabled = false
filter = sasl
backend = polling
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=sasl, dest=support@company.ru]
logpath = /var/log/zimbra.log
 
[ssh-tcpwrapper]
enabled = false
filter = sshd
action = hostsdeny
sendmail-whois[name=SSH, dest=support@ company.ru]
ignoreregex = for myuser from
logpath = /var/log/messages
 
[zimbra-account]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-account]
sendmail[name=zimbra-account, dest=support@company.ru ]
logpath = /opt/zimbra/log/mailbox.log
bantime = 600
maxretry = 5
 
[zimbra-audit]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-audit]
sendmail[name=Zimbra-audit, dest=support@company.ru]
logpath = /opt/zimbra/log/audit.log
bantime = 600
maxretry = 5
 
[zimbra-recipient]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-recipient]
sendmail[name=Zimbra-recipient, dest=support@company.ru]
logpath = /var/log/zimbra.log
bantime = 172800
maxretry = 5
 
[postfix]
enabled = true
filter = postfix
action = iptables-multiport[name=postfix, port=smtp, protocol=tcp]
sendmail-buffered[name=Postfix, dest=support@company.ru]
logpath = /var/log/zimbra.log
bantime = -1
maxretry = 5

Dieses Beispiel ist zwar recht allgemein, es ist jedoch wichtig, einige Parameter zu erläutern, die Sie möglicherweise bei der eigenen Konfiguration von Fail2Ban ändern möchten:

  • Ignoreip — Mit diesem Parameter kann eine bestimmte IP oder ein Netzwerk angegeben werden, deren Adressen von Fail2Ban nicht überprüft werden sollen. In der Regel werden die interne Unternehmensnetzwerke und andere vertrauenswürdige Adressen in die Ignorierliste aufgenommen.
  • Bantime — Die Zeit, für die der Angreifer gesperrt wird. Diese wird in Sekunden gemessen. Der Wert -1 bedeutet eine unbefristete Sperre.
  • Maxretry — Die maximale Anzahl an Versuchen, die eine IP-Adresse haben kann, um auf den Server zuzugreifen.
  • Sendmail Einstellung, die es ermöglicht, automatisch E-Mail-Benachrichtigungen über die Auslösung von Fail2Ban zu versenden.
  • Findtime Einstellung, die es ermöglicht, einen Zeitintervall festzulegen, nach dem die IP-Adresse erneut versuchen kann, auf den Server zuzugreifen, nachdem die maximale Anzahl von Fehlversuchen (Parameter maxretry) erreicht wurde.

Nach dem Speichern der Konfigurationsdatei von Fail2Ban bleibt nur noch der Neustart dieses Dienstes mit dem Befehl service fail2ban restart. Nach dem Neustart werden die Hauptprotokolle von Zimbra kontinuierlich auf Übereinstimmung mit regulären Ausdrücken überwacht. Dadurch kann der Administrator jegliche Möglichkeit eines unbefugten Zugriffs nicht nur auf die Postfächer der Zimbra Collaboration Suite Open-Source Edition ausschließen, sondern auch alle in Zimbra OSE betriebenen Dienste schützen und über alle Versuche, unbefugten Zugang zu erhalten, informiert sein.

Bei allen Fragen zu Zextras Suite können Sie sich an die Vertreterin der Firma „Zextras“, Ekaterina Triandafilidi, per E-Mail unter katerina@zextras.com wenden.

Quelle: habr.com

60GB SSD 8Gb DDR4