Schlagwort-Archive: fail2ban

Fail2ban ist ein in Python geschriebenes Intrusion Prevention System, das auf allen POSIX-Betriebssystemen läuft, die ein manipulierbares Paketfiltersystem oder eine Firewall besitzen.

Kopano schutz mit Fail2ban

Kopano schützen gegen Attacken

Dieses Howto beschreibt die Installation und Konfiguration von Fail2ban für die Kopano Groupware auf Ubuntu 16.04.4 LTS. Fail2ban bietet effektiven schutz gegen Brute-Force Attacken, in dem aus Syslog und Apache Protokoll fehlgeschlagene versuche von Authentifizierungen herausgefiltert werden, um anschliessend den Host für eine bestimmte Zeit mittels Kernel Firewall zu blockieren.

Installation Fail2ban auf Kopano Server

Das Paket Fail2ban wird auf dem Ubuntu Host als root wie folgt installiert. Fail2ban ist auf Python entwickelt, weshalb die erforderlichen Bibliotheken nachgeladen werden.

Nach der Installation wird Fail2ban ausgeführt und in systemd für den autostart aktiviert.

Ein Fail2ban Filter für Kopano bereitstellen, wir erstellen die Datei kopano-webapp-auth.conf

Den Inhalt mit folgenden Zeilen in die Filter Datei einfügen:

Den Fail2ban Filter für Kopano aktivieren, dazu die Konfigurationsdatei jail.local erstellen.

Und den folgenden Inhalt einfügen:

Hier wird error.log ausgelesen mit der Variable %(apache_error_log), /var/log/apache2/error.log

Fail2ban erneut starten um die änderungen zu aktivieren.

Den Status von Fail2ban kann wie folgt überprüft werden.

Die Firewall gibt Aufschluss über den Status der aktuell durch Fail2ban geblockten Hosts, mit einer iptables abfrage:

WordPress vor Brute-Force Attacken schützen

WordPress Server vor Brute-Force Login versuche durch fail2ban schützen.

WordPress Schutz bietet sich durch mehrere Methoden an, neben LockDown Plugins, die IP-Adressen und Zeitstempel jedes fehlgeschlagenen Anmeldeversuchs aufzeichnen und blockieren, wird mit fail2ban die Kernel Firewall gesteuert, und damit der host für eine vorgegebene Zeit gesperrt.

  Zur Installation von fail2ban auf CentOS 7 muss das EPEL Repository hinzugefügt werden:

Die Installation hier wie folgt als root, es wird eine Standard Konfiguration bereitgestellt, und erfordert keine weiteren Anpassungen:

Nachdem fail2ban auf dem Server installiert ist, können die Apache access_log nach Anmeldeversuchen untersucht werden.

Damit fail2ban weiss nach welchen parser in der Logdatei gesucht werden soll, wird ein Filter erzeugt, durch editieren mit vim oder anderen bevorzugten Editoren, erstellen wir die Filter Datei mit vi /etc/fail2ban/filter.d/wp-auth.conf:

Die Hauptkonfiguration von fail2ban befindet sich in der Datei /etc/fail2ban/jail.conf, diese kopiert man zu jail.local, oder es genügt auch nur die zusätzliche Filter Einstellung einzutragen, die Konfiguration hinzufügen mit vi /etc/fail2ban/jail.local

Nach 6 Anmeldeversuche (maxretry) wird für 30 min. blockiert.

Bevor fail2ban eingesetzt wird, ist ein blick in /etc/fail2ban/jail.conf gegeben, unter der Sektion [INCLUDES] sind die Pfade der gerade verwendeten Linux Distribution definiert, bei der Zeile before = paths-distro.conf, hier verwenden wir CentOS 7 dabei ist die passende Datei /etc/fail2ban/paths-fedora.conf :

Die Datei paths-fedora.conf  kopieren wir zu paths-centos.conf. Es sollen alle Logs unter /var/www/*/logs ausgelesen werden, dabei die Pfade zu den Apache Logs ggf. anpassen:

Nun fail2ban neu starten um den Filter zu aktivieren.

fail2ban Status überprüfen wie folgt.

Der iptables Status des Filters in der Kette ausgeben.

Die iptables Ausgabe des Filter AuthFailures in etwa viel folgt.

Hat man sich selber durch zu viel Fehlversuche und Tests ausgesperrt, kann man sich mit folgendem Command wieder entsperren.

  Der vorteil dieser Methode ist es, durch fail2ban wird der host und alle Dienste blockiert, der Bot wird in der regel zur nächsten Webseite gehen, um die Attacken fortzusetzen, auch ssh und ftp anfragen gehen ins leere, und ICMP anfragen bleiben für die IP-Adresse unbeantwortet.

Schütze dein WordPress vor unerwünschten Login Versuche

Botnet greifen derzeit WordPress-Blogs weltweit an

Der Angriff selbst ist dabei denkbar einfach, es wird versucht, sich mit „admin“ einzuloggen. Um das Passwort herauszufinden, wird schlichtweg eine entsprechende Vorlage aus tausenden Einträgen sehr schnell abgearbeitet. Es kommt deshalb bei den betroffenen Blogs in der Folge zu einer massiv erhöhten Anzahl von Login-Versuchen – „Brute Force Attack“. Was die Angriffswelle in diesem Fall so problematisch macht, ist die riesen Menge an infizierten PCs, die zum Einsatz kommt.

Gemäss Experten geht es am Ende darum, aus den Servern ein neues Botnet aufzubauen. Das wäre dann um ein Vielfaches mächtiger als das jetzige, weil die Server beispielsweise eine wesentlich bessere Internetanbindung haben als infizierte PCs.

Die wichtigsten Massnahmen um ein WordPress-Blog zu schützen.

Den Account „admin“ nach Möglichkeit ganz vermeiden. Er ist bei WordPress-Blogs so verbreitet, dass er – so wie auch in diesem Fall – als Hebel für den Angriff genutzt wird. In diesem Blog wird ebenfalls aufgezeigt, wie man den „admin“-Loginname ändert.

Eine weitere Möglichkeit ist es, den Admin-Bereich von WordPress selbst mit einem Passwort zu schützen. Ohne dieses „Master-Passwort“ kommt man gar nicht erst auf die Login-Seite fürs back-end. Das kann gerade bei Brute-Force-Attacken sehr sinnvoll sein, da der automatische Angriff sehr früh abgefangen wird und den Server dadurch weniger belastet. Auch sollte das MySQL front-end nicht über „phpMyAdmin“ oder „MyAdmin“ in der URL abrufbar sein, hier sollte ein Apache Alias oder ein Symlink, z.B. „db_manager“ angelegt werden, damit ist man aus der Schusslinie von Brute-Force-Attacken, zusätzlich schützt auch ein htaccess-Passwort.

Noch effizienter und den Server nicht belastend, wirkt sich das abfangen der Angriffe durch den Einsatz von fail2ban aus.

Dazu wird fail2ban installiert, hier bei CentOS 5.x.

Nach der Installation wird die Filter Definition für WordPress-„wp-login.php“ erstellt.

vi /etc/fail2ban/filter.d/wp-auth.conf

Und nun die jail-Konfiguration hinzufügen.

vi /etc/fail2ban/jail.conf

Die Änderungen aktivieren mit service fail2ban restart

Es wird nun die Brute Force Attacke nach 6 fehlerhaften Login-Versuche, den Zugang für eine Stunde von der Firewall blockiert, geht die Attacke nach einer Stunde weiter, beginnt die Blockierung erneut.