AA_PO-21680-Fotolia-Gordon_Bussiek_Tuersteher.jpg

© Gordon_Bussiek, Fotolia

Türsteher

Dienste vor Brute-Force- und Wörterbuch-Attacken schützen

21.06.2013
Fail2ban und Sshguard schützen Server-Dienste gegen Brute-Force- und Wörterbuchattacken, indem sie auffällig gewordene Störenfriede kurzerhand aussperren.

Das Internet wimmelt geradezu von Rechnern, die still und leise ihre Dienste anbieten – etwa als Home-Server für die Familie oder als File- und Web-Server in WGs, Kirchengemeinden und Sportvereinen. Solche Maschinen stellen beliebte Ziele für Attacken dar: Einmal geknackt, lassen sie sich bestens als Ausgangspunkt für illegale Aktionen nutzen.

Meist verschafft sich der Angreifer dabei über Brute-Force- und Wörterbuchattacken Zugang zum System. Das klappt auch ohne umfangreiches Wissen, denn netzwerkfähige Passwort-Cracker wie Ncrack, Hydra oder Medusa arbeiten so benutzerfreundlich, dass auch Nichtspezialisten nach kurzer Einarbeitungszeit mit ihnen umgehen können.

Bei der Wörterbuchattacke versuchen Angreifer, schwache Passwörter mithilfe von Wortlisten zu knacken. Umfangreiche Wortlisten liefern beispielsweise Spellchecker wie Aspell und Ispell, andere finden sich im Netz oder lassen sich mit geringem Aufwand aus maschinenverarbeitbaren Texten gewinnen. Weil immer noch viele Nutzer einfache Passworte ohne Großbuchstaben, Ziffern und Sonderzeichen verwenden, führt solch ein Wörterbuchangriff oft schnell zum Erfolg.

Bei mindestens acht, besser zwölf Zeichen langen Passworten, die neben Groß- und Kleinbuchstaben auch Ziffern und Sonderzeichen enthalten, laufen Wörterbuchangriffe mit hoher Wahrscheinlichkeit ins Leere. Hier klappt höchstens eine Brute-Force-Attacke, bei denen der Passwort-Cracker beliebige Zeichenkombinationen durchprobiert. Je nach Länge und Güte des Passworts führt ein derartiger Angriff früher oder später zum Erfolg. Dass viele Dienste und Anwendungen im Netz parallele Verbindungen zulassen und oft auch die Anzahl der Zeichen in Passworten beschränken, erleichtert solche Attacken.

Server protokollieren zwar in aller Regel fehlgeschlagene Logins, doch solange die Dienste anstandslos laufen, macht sich kaum ein Betreiber die Mühe, die Log-Dateien regelmäßig durchzusehen. Läuft auf dem Server kein IDS, das angesichts vieler erfolgloser Login-Versuchen seine warnende Stimme erhebt, fallen Brute-Force- und Wörterbuchangriffe meist erst spät auf.

Hier helfen Anwendungen weiter, welche die Server-Logs überwachen und die betroffenen Ports automatisch sperren, sobald Unregelmäßigkeiten auftreten. Zwei erfahrene "Türsteher" aus dieser Riege sind Fail2ban [1] und Sshguard [2]. Beide Anwendungen dienen als Ergänzung zu einer Firewall.

Eine Firewall kann zwar verhindern, dass viele parallele Verbindungen zu einem Rechner geöffnet werden, vermag aber fehlgeschlagene Logins nicht zu erkennen. Ein Angreifer braucht also nur zu ermitteln, wie viele parallele Verbindungen erlaubt sind, um dann eine auf die Firewall zugeschnittene Attacke abzusetzen. Sofern der Admin nicht über die resultierenden, riesigen Log-Dateien stolpert, verläuft der Angriff unbemerkt.

Fail2ban

Das seit 2004 entwickelte Python-Programm Fail2ban nutzt eine Client/Server-Architektur und kann die Log-Dateien mehrerer Server-Dienste überwachen, so etwa jene von SSH, Web, FTP und E-Mail. Erkennt das Tool eine Attacke, greift es auf Firewalls wie Iptables oder den TCP-Wrapper zurück, um die betroffenen Ports für eine festgelegte Zeit zu sperren. Parallel dazu benachrichtigt es den Administrator per E-Mail über die Attacke. Als Kriterium für einen Angriff nutzt Fail2ban Muster wie etwa Fehlermeldungen, die von einer IP-Adresse ausgelöst wurden.

Das aktuelle Fail2ban 0.8.8 vor findet sich in den Repositories aller gängigen Distributionen, sodass Sie es komfortabel mithilfe der Paketverwaltung einrichten. Alternativ greifen Sie zum Sourcecode von Github.com [3] und führen im Quellverzeichnis python setup.py install aus. Die Programmdateien landen standardmäßig unter /usr/share/fail2ban oder /usr/bin.

Die Entwickler empfehlen, Fail2ban stets über den Client zu steuern. Das Kommando fail2ban-client -h prüft, ob die Installation erfolgreich war. Um Fail2ban nach einer manuellen Installation automatisch beim Booten zu starten, gilt es eventuell noch ein Init-Skript anzulegen. Bei einer Installation aus einem Repository sollte das automatisch erfolgt sein.

Fail2ban einrichten

In Fail2ban kommen Sie nicht um Filter, Aktionen und Jails herum. Bei einem Filter handelt es sich um ein Suchmuster in Form eines regulären Ausdrucks, auf dessen Basis Fail2ban die Log-Dateien durchforstet. Eine Aktion ist ein auszuführendes Kommando, etwa um eine Firewall zu aktivieren oder den Admin anzumailen. Ein Jail besteht aus einem Filter sowie einer oder mehreren Aktionen.

Prinzipiell lässt sich Fail2ban zwar auch zur Laufzeit konfigurieren, doch da die Einstellungen dann bei jedem Neustart verloren gehen, ist es sinnvoll, sie gleich in Konfigurationsdateien zu hinterlegen. Diese finden sich üblicherweise im Verzeichnis /etc/fail2ban. Im File fail2ban.conf treffen Sie Einstellungen hinsichtlich des Servers, wie etwa den Log-Level (Listing 1, Zeile 2). Hier legen Sie auch die Fail2ban-Log-Datei (Zeile 3) fest und definieren den Unix-Socket (Zeile 4), über den der Server mit dem Client kommuniziert.

Listing 1

# Log-Level: 1=Error, 2=Warn, 3=Info, 4=Debug
loglevel = 3
logtarget = /var/log/fail2ban.log
socket = /var/run/fail2ban/fail2ban.sock

Im Unterverzeichnis filter.d/ hinterlegen Sie Regeln in Form regulärer Ausdrücke für die einzelnen Dienste. Eine Regel darf aus mehreren Ausdrücken bestehen, die Sie zeilenweise auflisten. Ein Beispiel für den SSH-Daemon zeigt Listing 2. Beim Ausdruck <HOST> handelt es sich um ein Alias, das reguläre Ausdrücke für Hostnamen sowie IPv4- und IPv6-Adressen ersetzt. Das macht die Filter leichter lesbar. Ob die Regeln funktionieren, testet folgender Befehl (Abbildung 1):

$ fail2ban-regex /Pfad/zur/Log-Datei /etc/fail2ban/filter.d/Filtername

Listing 2

# Regex für sshd
failregex = Failed password for .* from <HOST>
            FAILED su for .* by .*
            Invalid user .* from <HOST>
Abbildung 1: Alle 45 Minuten ein fehlerhafter Login-Versuch von einem isländischen Host? Das stinkt. Fail2ban-regex prüft reguläre Ausdrücke in Filtern und kann neue Erkenntnisse bringen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Sshguard 1.5 baut Features aus

    Das Tool Sshguard erkennt Angriffe auf Netzwerkdienste und sperrt attackierende Rechner zeitweilig in der Firewall. Nun ist die Open-Source-Software in Version 1.5 mit neuen Features erhältlich.
  • IP-Adressen von Angreifern bockieren
    Wenn Sie auf dem Linux-PC einen Port für den Zugriff von außen freigeben, müssen Sie mit automatisierten Einbruchsversuchen rechnen. Fail2ban sperrt die IP-Adressen der Angreifer. Wir zeigen die Einrichtung für SSH-Logins und Dateitransfers mit der SSH-basierten FTP-Alternative SFTP.
  • Ubuntu User 02/2011 jetzt am Kiosk
    Das neue Ubuntu-User-Heft ist da. Diesmal heißt der Schwerpunkt Home-Server. Wir zeigen, wie Sie Blogs, Foren oder Wikis aufsetzen, die Sie und Ihre Freunde über das Internet erreichen (etwa via Apache-Server, DynDNS und
    Port Forwarding).
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...