Die Open-Source-Edition der Zimbra Collaboration Suite verfügt über mehrere leistungsstarke Tools zur Gewährleistung der Informationssicherheit. Unter anderem ist
Postscreen eine Lösung, um den Mailserver vor Angriffen durch Botnets zu schützen, ClamAV ist ein Antivirus, der eingehende Dateien und Briefe auf Malware-Infektionen scannen kann, und
SpamAssassin ist einer der besten Spam-Filter, die es derzeit gibt. Diese Tools sind jedoch nicht in der Lage, das Zimbra OSE vor Angriffen wie Brute Force zu schützen. Nicht die eleganteste, aber dennoch recht effektive Aufzählung von Passwörtern in einem speziellen Wörterbuch birgt nicht nur die Wahrscheinlichkeit eines erfolgreichen Hacks mit allen sich daraus ergebenden Konsequenzen, sondern auch die Entstehung einer erheblichen Belastung des Servers, der alle erfolglosen Versuche verarbeitet, den Server mit Zimbra OSE zu hacken.

Grundsätzlich können Sie sich mit Standard-Zimbra-OSE-Tools vor Gewalt schützen. Mit den Einstellungen für die Kennwortsicherheitsrichtlinie können Sie die Anzahl der fehlgeschlagenen Kennwortversuche festlegen, nach denen das möglicherweise angegriffene Konto gesperrt wird. Das Hauptproblem bei diesem Ansatz besteht darin, dass Situationen auftreten, in denen die Konten eines oder mehrerer Mitarbeiter aufgrund eines Brute-Force-Angriffs gesperrt werden, mit dem sie nichts zu tun haben, und die daraus resultierende einfache Arbeit der Mitarbeiter dem Unternehmen große Verluste bringen kann. Aus diesem Grund sollte diese Option zum Schutz vor brachialer Gewalt nicht angewendet werden.

Zum Schutz vor Brute Force ist ein spezielles Tool namens DoSFilter viel besser geeignet, das in Zimbra OSE integriert ist und sich automatisch über HTTP von Zimbra OSE trennen kann. Mit anderen Worten, das Funktionsprinzip von DoSFilter ähnelt dem Funktionsprinzip von PostScreen, das nur für ein anderes Protokoll verwendet wird. DoSFilter wurde ursprünglich entwickelt, um die Anzahl der Aktionen zu begrenzen, die ein einzelner Benutzer ausführen kann, und bietet außerdem Schutz vor Brute-Force-Angriffen. Der Hauptunterschied zum integrierten Tool in Zimbra besteht darin, dass nach einer bestimmten Anzahl von erfolglosen Versuchen nicht der Benutzer selbst blockiert wird, sondern die IP-Adresse, von der aus mehrere Anmeldeversuche für das eine oder andere Konto unternommen werden. Dank dessen kann sich der Systemadministrator nicht nur vor Brute-Force-Angriffen schützen, sondern auch verhindern, dass Mitarbeiter des Unternehmens blockiert werden, indem das interne Netzwerk seines Unternehmens einfach zur Liste der vertrauenswürdigen IP-Adressen und Subnetze hinzugefügt wird.
Das große Plus von DoSFilter ist, dass Sie mit diesem Tool zusätzlich zu den zahlreichen Anmeldeversuchen für das eine oder andere Konto automatisch diejenigen Cyberkriminellen blockieren können, die die Authentifizierungsdaten des Mitarbeiters in Besitz genommen und sich dann erfolgreich in seinem Konto angemeldet und mit dem Senden von Hunderten von Anfragen an den Server begonnen haben.
Sie können DoSFilter mit den folgenden Konsolenbefehlen konfigurieren:
- zimbraHttpDosFilterMaxRequestsPerSec - Mit diesem Befehl können Sie die maximale Anzahl von Verbindungen festlegen, die für einen Benutzer zulässig sind. Standardmäßig beträgt dieser Wert 30 Verbindungen.
- zimbraHttpDosFilterDelayMillis - Mit diesem Befehl können Sie die Verzögerung in Millisekunden für Verbindungen festlegen, die den mit dem vorherigen Befehl festgelegten Grenzwert überschreiten. Zusätzlich zu ganzzahligen Werten kann der Administrator 0 angeben, damit überhaupt keine Verzögerung auftritt, und -1, damit alle Verbindungen, die das angegebene Limit überschreiten, einfach unterbrochen werden. Standardmäßig ist dieser Wert -1.
- zimbraHttpThrottleSafeIPs - Mit diesem Befehl kann der Administrator vertrauenswürdige IP-Adressen und Subnetze angeben, die von den obigen Einschränkungen nicht betroffen sind. Beachten Sie, dass die Syntax dieses Befehls abhängig vom gewünschten Ergebnis variieren kann. Wenn Sie beispielsweise den Befehl zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1 eingeben , wird die gesamte Liste vollständig neu geschrieben und nur eine IP-Adresse bleibt darin. Wenn Sie den Befehl zmprov mcf + zimbraHttpThrottleSafeIPs 127.0.0.1 eingeben , wird die eingegebene IP-Adresse zur Whitelist hinzugefügt. Ebenso können Sie mithilfe eines Subtraktionszeichens eine beliebige IP-Adresse aus der Liste der zulässigen entfernen.
Beachten Sie, dass DoSFilter bei der Verwendung der Zextras Suite Pro-Erweiterungen eine Reihe von Problemen verursachen kann. Um dies zu vermeiden, empfehlen wir, die Anzahl der gleichzeitigen Verbindungen mit dem Befehl
zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100 von 30 auf 100 zu
erhöhen . Darüber hinaus empfehlen wir, das interne Netzwerk des Unternehmens zur Liste der zulässigen hinzuzufügen. Dies kann mit dem Befehl
zmprov mcf + zimbraHttpThrottleSafeIPs 192.168.0.0/24 erfolgen . Stellen Sie nach Änderungen an DoSFilter sicher, dass Sie den Mailserver mit dem Befehl
zmmailboxdctl restart neu starten .
Der Hauptnachteil von DoSFilter besteht darin, dass es auf Anwendungsebene funktioniert und daher die Fähigkeit von Angreifern, verschiedene Aktionen auf dem Server auszuführen, nur einschränken kann, ohne die Fähigkeit zu beeinträchtigen, eine Verbindung mit dem Norden herzustellen. Aus diesem Grund sind Authentifizierungsanfragen oder das Senden von Briefen an den Server, obwohl dies offensichtlich ein Fehler ist, immer noch eine gute alte DoS-Attacke, die auf einer so hohen Ebene nicht gestoppt werden kann.
Um Ihren Unternehmensserver vollständig mit Zimbra OSE abzusichern, können Sie eine Lösung wie Fail2ban verwenden. Hierbei handelt es sich um ein Framework, das die Protokolle des Informationssystems ständig auf wiederholte Aktionen überwacht und den Angreifer durch Ändern der Firewall-Einstellungen blockiert. Wenn Sie auf einer so niedrigen Ebene blockieren, können Sie Angreifer bereits in der Phase der IP-Verbindung zum Server deaktivieren. Somit kann Fail2Ban den mit DoSFilter erstellten Schutz perfekt ergänzen. Lassen Sie uns herausfinden, wie Sie Fail2Ban mit Zimbra OSE anfreunden und so die Sicherheit der IT-Infrastruktur Ihres Unternehmens erhöhen können.
Wie jede andere Unternehmensanwendung verwaltet Zimbra Collaboration Suite Open-Source Edition detaillierte Protokolle seiner Arbeit. Die meisten von ihnen werden als Dateien im Ordner
/ opt / zimbra / log / gespeichert. Hier sind nur einige davon:
- mailbox.log - Jetty Mail Service-Protokolle
- audit.log - Authentifizierungsprotokolle
- clamd.log - Antivirus-Protokolle
- freshclam.log - Antivirus-Aktualisierungsprotokolle
- convertd.log - Konvertierungsprotokolle für Anhänge
- zimbrastats.csv - Server-Leistungsprotokolle
Zimbra-Protokolle finden Sie auch in der Datei
/var/log/zimbra.log , in der die Protokolle von Postfix und Zimbra selbst gespeichert sind.
Um unser System vor Brute Force zu schützen, überwachen wir
mailbox.log ,
audit.log und
zimbra.log .
Damit alles funktioniert, müssen Fail2Ban und iptables mit Zimbra OSE auf Ihrem Server installiert sein. Wenn Sie Ubuntu verwenden, können Sie dies mit den
Befehlen dpkg -s fail2ban tun. Wenn Sie jedoch CentOS verwenden, können Sie dies mit den in
yum-Liste installierten fail2ban-Befehlen überprüfen. Falls Sie Fail2Ban nicht installiert haben, ist die Installation kein Problem, da dieses Paket in fast allen Standard-Repositorys enthalten ist.
Nachdem die gesamte erforderliche Software installiert wurde, können Sie mit der Konfiguration von Fail2Ban fortfahren. Erstellen Sie dazu eine Konfigurationsdatei
/etc/fail2ban/filter.d/zimbra.conf , in die reguläre Ausdrücke für Zimbra-OSE-Protokolle geschrieben werden, die falschen Anmeldeversuchen entsprechen und Fail2Ban-Mechanismen auslösen. Hier ist ein Beispiel für den Inhalt von zimbra.conf mit einer Reihe regulärer Ausdrücke, die verschiedenen Fehlern entsprechen, die von Zimbra OSE generiert werden, wenn ein Authentifizierungsversuch fehlschlägt:
# 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 kompiliert wurden, ist es Zeit, die Konfiguration von Fail2ban selbst zu bearbeiten. Die Einstellungen für dieses Dienstprogramm befinden sich in der Datei
/etc/fail2ban/jail.conf .
Für alle Fälle sichern wir es mit dem Befehl
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak . Danach bringen wir diese Datei in das folgende Formular:
# 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
Obwohl dieses Beispiel sehr allgemein gehalten ist, sollten Sie einige Parameter erläutern, die Sie möglicherweise ändern möchten, wenn Sie Fail2Ban selbst einrichten:
- Ignoreip ( Ignorieren) - Mit diesem Parameter können Sie eine bestimmte IP-Adresse oder ein bestimmtes Subnetz angeben, deren Adresse Fail2Ban nicht überprüfen soll. In der Regel werden das interne Netzwerk des Unternehmens und andere vertrauenswürdige Adressen zur Liste der ignorierten Adressen hinzugefügt.
- Bantime - Die Zeit, für die der Eindringling sperren wird. Gemessen in Sekunden. Ein Wert von -1 bedeutet ein unbegrenztes Verbot.
- Maxretry - Die maximale Häufigkeit , mit der eine IP-Adresse versuchen kann, auf den Server zuzugreifen.
- Sendmail - Eine Einstellung, mit der Sie automatisch E-Mail-Benachrichtigungen über den Betrieb von Fail2Ban senden können.
- Findtime - Eine Einstellung, mit der Sie das Zeitintervall festlegen können, nach dem die IP-Adresse erneut versuchen kann, auf den Server zuzugreifen, nachdem die maximale Anzahl fehlgeschlagener Versuche erschöpft ist (maxretry-Parameter).
Nach dem Speichern der Datei mit den Fail2Ban-Einstellungen muss dieses Dienstprogramm nur noch mit dem
Dienst-Befehl fail2ban restart neu gestartet werden. Nach dem Neustart werden die Hauptprotokolle von Zimbra ständig auf die Einhaltung der regulären Ausdrücke überwacht. Auf diese Weise kann der Administrator praktisch jeden Eindringling ausschließen, der in die Mailboxen der Zimbra Collaboration Suite Open-Source Edition eindringt, und alle Dienste schützen, die in der Zimbra OSE ausgeführt werden.
Bei allen Fragen zur Zextras Suite können Sie sich per E-Mail an die Vertreterin von Zextras, Ekaterina Triandafilidi, wenden: katerina@zextras.com