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

Die Open-Source-Edition der Zimbra Collaboration Suite verfügt über mehrere leistungsstarke Tools für die Informationssicherheit. Unter ihnen Postscreen - eine Lösung zum Schutz des Mailservers vor Angriffen durch Botnetze, ClamAV - ein Antivirenprogramm, das eingehende Dateien und Briefe auf Malware-Infektionen scannen kann, sowie SpamAssassin einer der besten Spamfilter heute. Diese Tools sind jedoch nicht in der Lage, Zimbra OSE vor dieser Art von Angriffen, wie z. B. Brute-Force-Angriffen, zu schützen. Nicht die eleganteste, aber dennoch recht effektive Passwort-Brute-Force-Methode mithilfe eines speziellen Wörterbuchs birgt nicht nur die Wahrscheinlichkeit eines erfolgreichen Hacks mit allen daraus resultierenden Konsequenzen, sondern auch eine erhebliche Belastung des Servers, der alle erfolglosen Versuche verarbeitet um den Server mit Zimbra OSE zu hacken.

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

Grundsätzlich können Sie sich mit Standard-OSE-Tools von Zimbra vor roher Gewalt schützen. Mit den Einstellungen der Passwortsicherheitsrichtlinie können Sie die Anzahl der erfolglosen Passworteingabeversuche festlegen, nach denen das potenziell angegriffene Konto gesperrt wird. Das Hauptproblem bei diesem Ansatz besteht darin, dass es Situationen gibt, in denen die Konten eines oder mehrerer Mitarbeiter aufgrund eines Brute-Force-Angriffs, mit dem sie nichts zu tun haben, gesperrt werden können und die daraus resultierenden Ausfallzeiten bei der Arbeit der Mitarbeiter erhebliche Auswirkungen haben können Verluste für das Unternehmen. Deshalb sollten Sie diese Möglichkeit des Schutzes vor roher Gewalt am besten nicht nutzen.

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

Zum Schutz vor Brute Force eignet sich deutlich besser ein spezielles Tool namens DoSFilter, das in Zimbra OSE eingebaut ist und die Verbindung zu Zimbra OSE über HTTP automatisch beenden kann. Mit anderen Worten: Das Prinzip von DoSFilter ähnelt dem Prinzip von PostScreen, nur wird es für ein anderes Protokoll verwendet. DoSFilter wurde ursprünglich entwickelt, um die Anzahl der Aktionen zu begrenzen, die ein einzelner Benutzer ausführen kann, und kann auch Schutz vor roher Gewalt bieten. Der wesentliche Unterschied zu dem in Zimbra integrierten Tool besteht darin, dass es nach einer bestimmten Anzahl erfolgloser Versuche nicht den Benutzer selbst blockiert, sondern die IP-Adresse, von der aus mehrere Versuche unternommen werden, sich bei dem einen oder anderen Konto anzumelden. Dadurch kann sich der Systemadministrator nicht nur vor brutaler Gewalt schützen, sondern auch verhindern, dass Mitarbeiter des Unternehmens blockiert werden, indem er einfach das interne Netzwerk seines Unternehmens zur Liste der vertrauenswürdigen IP-Adressen und Subnetze hinzufügt.

Der große Vorteil von DoSFilter besteht darin, dass Sie mit diesem Tool zusätzlich zu zahlreichen Versuchen, sich bei dem einen oder anderen Konto anzumelden, automatisch diejenigen Eindringlinge blockieren können, die die Authentifizierungsdaten des Mitarbeiters in Besitz genommen haben, sich dann erfolgreich bei seinem Konto angemeldet und mit dem Senden von Hunderten begonnen haben der Anfragen an den Server.

Sie können DoSFilter mit den folgenden Konsolenbefehlen konfigurieren:

  • zimbraHttpDosFilterMaxRequestsPerSec - Mit diesem Befehl können Sie die maximale Anzahl erlaubter Verbindungen pro Benutzer festlegen. Standardmäßig beträgt dieser Wert 30 Verbindungen.
  • zimbraHttpDosFilterDelayMillis – Mit diesem Befehl können Sie eine Verzögerung in Millisekunden für Verbindungen festlegen, die das im vorherigen Befehl angegebene Limit überschreiten. Zusätzlich zu ganzzahligen Werten kann der Administrator 0 angeben, um überhaupt keine Verzögerung zu haben, sowie -1, um einfach alle Verbindungen zu beenden, die den angegebenen Grenzwert überschreiten. Standardmäßig ist dieser Wert -1.
  • zimbraHttpThrottleSafeIPs – Mit diesem Befehl kann der Administrator vertrauenswürdige IP-Adressen und Subnetze angeben, die von den oben aufgeführten Einschränkungen nicht betroffen sind. Beachten Sie, dass die Syntax dieses Befehls je nach gewünschtem Ergebnis variieren kann. Also zum Beispiel durch Eingabe des Befehls zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, überschreiben Sie die gesamte Liste vollständig und lassen nur eine IP-Adresse darin. Wenn Sie den Befehl eingeben zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, wird die von Ihnen eingegebene IP-Adresse zur Whitelist hinzugefügt. Ebenso können Sie mithilfe des Subtraktionszeichens jede IP aus der Liste der zulässigen IP-Adressen entfernen.

Beachten Sie, dass DoSFilter bei der Verwendung von Zextras Suite Pro-Erweiterungen eine Reihe von Problemen verursachen kann. Um diese zu vermeiden, empfehlen wir, die Anzahl der gleichzeitigen Verbindungen mit dem Befehl von 30 auf 100 zu erhöhen zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Darüber hinaus empfehlen wir Ihnen, das interne Netzwerk des Unternehmens zur Liste der zulässigen Netzwerke hinzuzufügen. Sie können dies mit dem Befehl tun zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Nachdem Sie Änderungen an DoSFilter vorgenommen haben, müssen Sie den Mailserver unbedingt mit dem Befehl neu starten zmmailboxdctl neu starten.

Der Hauptnachteil von DoSFilter besteht darin, dass es auf Anwendungsebene funktioniert und daher nur die Fähigkeit von Angreifern einschränken kann, verschiedene Aktionen auf dem Server auszuführen, ohne die Fähigkeit, eine Verbindung zum Server herzustellen, einzuschränken. Aus diesem Grund handelt es sich bei an den Server gesendeten Anfragen zur Authentifizierung oder zum Versenden von Briefen, obwohl sie offensichtlich scheitern, immer noch um einen guten alten DoS-Angriff, der auf einem so hohen Niveau nicht gestoppt werden kann.

Um Ihren Unternehmensserver mit Zimbra OSE vollständig zu sichern, können Sie eine Lösung wie Fail2ban verwenden, ein Framework, das Informationssystemprotokolle ständig auf sich wiederholende Aktionen überwachen und den Eindringling durch Ändern der Firewall-Einstellungen blockieren kann. Durch die Blockierung auf einem so niedrigen Niveau können Sie Eindringlinge bereits in der Phase der IP-Verbindung zum Server deaktivieren. Somit kann Fail2Ban den mit DoSFilter aufgebauten Schutz perfekt ergänzen. Lassen Sie uns herausfinden, wie Sie sich mit Fail2Ban Zimbra OSE anfreunden und dadurch die Sicherheit der IT-Infrastruktur Ihres Unternehmens erhöhen können.

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

  • mailbox.log – Protokolle des Jetty-Mail-Dienstes
  • audit.log – Authentifizierungsprotokolle
  • clamd.log – Antiviren-Betriebsprotokolle
  • freshclam.log – Antiviren-Update-Protokolle
  • Convertd.log – Anhang-Konverter-Protokolle
  • zimbrastats.csv – Serverleistungsprotokolle

Auch Zimbra-Protokolle sind in der Datei zu finden /var/log/zimbra.log, wo die Protokolle von Postfix und Zimbra selbst gespeichert werden.

Um unser System vor roher Gewalt zu schützen, werden wir es überwachen mailbox.log, Audit-Log и zimbra.log.

Damit alles funktioniert, müssen Fail2Ban und iptables auf Ihrem Zimbra OSE-Server installiert sein. Falls Sie Ubuntu verwenden, können Sie dies mit den Befehlen tun dpkg -s fail2banWenn Sie CentOS verwenden, können Sie dies mithilfe der Befehle überprüfen yum list installiert fail2ban. Falls Sie Fail2Ban nicht installiert haben, ist die Installation kein Problem, da sich dieses Paket in fast allen Standard-Repositorys befindet.

Nachdem die gesamte erforderliche Software installiert ist, können Sie mit der Konfiguration von Fail2Ban beginnen. Dazu müssen Sie eine Konfigurationsdatei erstellen /etc/fail2ban/filter.d/zimbra.conf, in dem wir reguläre Ausdrücke für die Zimbra OSE-Protokolle schreiben, die ungültige Anmeldeversuche abgleichen und die 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 in Zimbra OSE ausgegeben 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 an der Zeit, mit der Bearbeitung der Konfiguration von Fail2ban selbst zu beginnen. Die Einstellungen für dieses Dienstprogramm befinden sich in der Datei /etc/fail2ban/jail.conf. Für alle Fälle erstellen wir mit dem Befehl eine Sicherungskopie davon 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, [email protected], [email protected]]
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, [email protected]]
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, [email protected] ]
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, [email protected]]
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, [email protected]]
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, [email protected]]
logpath = /var/log/zimbra.log
bantime = -1
maxretry = 5

Obwohl dieses Beispiel recht allgemein gehalten ist, lohnt es sich, einige der Einstellungen zu erläutern, die Sie möglicherweise ändern möchten, wenn Sie Fail2Ban selbst konfigurieren:

  • Ignorieren - Mit diesem Parameter können Sie eine bestimmte IP- oder Subnetzadresse angeben, von der aus Fail2Ban keine Überprüfung durchführen 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 Täter gesperrt wird. Gemessen in Sekunden. Ein Wert von -1 bedeutet eine unbefristete Sperre.
  • maxretry – Die maximale Häufigkeit, mit der eine IP-Adresse versuchen kann, auf den Server zuzugreifen.
  • Sendmail – Eine Einstellung, die es Ihnen ermöglicht, automatisch E-Mail-Benachrichtigungen über den Betrieb von Fail2Ban zu senden.
  • Finde Zeit - 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 erfolgloser Versuche erschöpft ist (Parameter maxretry).

Nachdem Sie die Datei mit den Fail2Ban-Einstellungen gespeichert haben, müssen Sie dieses Dienstprogramm nur noch mit dem Befehl neu starten Dienst fail2ban neu starten. Nach dem Neustart werden die Hauptprotokolle von Zimbra ständig auf reguläre Ausdrücke überwacht. Dadurch ist der Administrator in der Lage, praktisch auszuschließen, dass ein Angreifer nicht nur in die Postfächer der Zimbra Collaboration Suite Open-Source Edition eindringt, sondern auch alle in Zimbra OSE ausgeführten Dienste schützt und sich über alle Versuche, unbefugten Zugriff zu verschaffen, im Bilde ist .

Bei allen Fragen im Zusammenhang mit der Zextras Suite können Sie sich per E-Mail an die Vertreterin von Zextras Ekaterina Triandafilidi wenden [E-Mail geschützt]

Source: habr.com

Kommentar hinzufügen