Hat man einen SSH-Server installiert und ist dieser auch vom Internet aus zu erreichen, so hat man eventuell ein mulmiges Gefühl bezüglich der Sicherheit. Den Dienst an sich zu missbrauchen ist schwer möglich. Aber gerade an einem Rechner mit mehreren Benutzeraccounts, hat man nicht die volle Kontrolle, so dass eventuell schwache Passwörter von Dritten genutzt werden.

So wäre es in der Theorie möglich, durch einen Brute-Force-Angriff einen Account mit einem gültigen Passwort zu treffen. Denn der SSH-Server selber ist sehr geduldig mit einem Angreifer. Dieser könnte über Stunden, Tage oder gar Wochen hinweg immer und immer wieder Accountnamen und Passwörter wiederholt austesten.

Hier kommt der kleine Dienst Fail2Ban ins Spiel. Versucht sich jemand per SSH einzuloggen und misslingt dieser Versuch, so trägt sshd — also der SSH-Server — dieses Ereignis in die Logdatei /var/log/auth.log ein.

Oct 14 20:13:11 knecht sshd[25218]: Failed password for root from 192.168.0.251 
port 43101 ssh2

Fail2Ban überwacht nun die auth.log im Hintergrund und blockiert die Zugriff zum SSH-Server über iptables, falls der Zugriff per SSH über eine IP wiederholt scheitert. In der Datei /var/log/fail2ban.log protokolliert Fail2Ban das Ereignis mit …

2006-10-14 20:13:12,132 INFO: SSH: 192.168.0.251 has 5 login failure(s). Banned.
2006-10-14 20:13:12,132 WARNING: SSH: Ban 192.168.0.251

Fail2Ban ist ist den Ubuntu Paketquellen (universe) vorhanden und kann direkt installiert werden. Hat man das Paket installiert, können man über die Konfigurationsdatei /etc/fail2ban.conf noch Einstellungen vorgenommen werden. Aber eigentlich ist die Standardkonfiguration ausreichend. Hat man die fail2ban.conf geändert, so muss man den Dienst mit…

$ sudo /etc/init.d/fail2ban restart

…neu starten, damit die Änderungen eingelesen werden. Der Dienst ist gleich nach der Installation des Paketes aktiv und blockiert nach dem fünften vergeblichen Versuch einer IP sich einzuloggen den Zugriff dieser IP zum SSH-Server.

9 Kommentare

      • So wie ich das sehe ist es sehr wohl dynamisch 🙂

        Man kann über die Config bestimmten, dass eine IP beispielsweise nach 5 falschen SSH-Login Versuchen in die /etc/hosts.deny eingetragen wird.

  1. 12 Jahre spaeter ist der Artikel nicht so gut gealtert ^^

    fail2ban hatte 2 kritische Sicherheitsluecken durch manipulierte usernames (fail2ban text logparser)

    Besser ist einfach passwoerter (und root login) auszuschalten und nur key auth zuzulassen, da koennen angreifer dann ihre hundert milliarden versuchen machen ^_^

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein