Raspberry Pi: SSH vor Angriffen absichern | Installation und Einrichtung

Den Raspberry Pi eingerichtet, via DynDNS und Portweiterleitung online erreichbar gemacht. Schon ist es möglich online von überall darauf zuzugreifen. Doch was ist, wenn der Raspian unerwünschte Gäste bekommt? Man mag es sich nicht ausmalen, was passieren kann, wenn jemand die Steuerung des Raspberry Pi’s übernimmt und damit zum Beispiel Spam versendet. 

Sicherheit wird ein immer größeres Thema. Und aus diesem Grund installiere ich mir auf meinem Pi die Software “Fail2ban” und richtete sie mir gleich ein.

Bevor ich mit der Installation auf meinem Raspberry Pi beginne, sollte ich zunächst sicherstellen, dass dieser vollständig auf dem neuesten Stand ist. Dazu führe ich folgenden Befehl als root im Terminal aus:

root@heimserver-rpi-b3p:~# sudo apt update && apt upgrade

Wenn die Kiste nun auf dem neuesten Stand ist, installiere ich die Fail2ban-Software, indem ich folgenden Befehl auf dem Raspberry ausführe:

root@heimserver-rpi-b3p:~# sudo apt-get install fail2ban

Während der Installation generiert fail2ban eine Datei mit dem Namen “jail.conf”. Diese Datei jedoch sollte unberührt bleiben, da diese Datei durch ein Update evtl überschrieben werden könnte.

Als erstes werfe ich trotzdem kurz einen Blick in die jail.conf. und suche den Eintrag [sshd]. Im besten Falle dieser nun folgendermaßen aus. Sollte das hier nicht der fall sein, bitte einmal anpassen.

Nachdem ich in die Konfiguration reingeschaut habe, erstelle ich eine Kopie dieser Datei und benenne sie gleichzeitig in “jail.local” um. Fail2ban erkennt diese Datei automatisch und lädt sie in ihrer Konfiguration. Das ganze mache ich mit folgenden Befehl:

root@heimserver-rpi-b3p:~# sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Nun öffne ich diese eben kopierte Datei mit dem Nano-Editor.

root@heimserver-rpi-b3p:~# sudo nano /etc/fail2ban/jail.local

Ich lösche den ganzen Inhalt aus der Konfiguration. Dann schreibe ich folgendes in die Konfig rein:

[sshd]
enabled = true
port = ssh
filter = sshd 

Die erste Variable aktiviert den “Jail”. Die zweite definiert den Port und die dritte Zeile teilt Fail2ban mit, dass die Datei “/etc/fail2ban/filter.d/sshd.conf” zum Filtern von Verbindungen zum ssh-Port verwendet werden muss. 

Zusätzlich zur Aktivierung und Einstellung des Ports kann man auch die Funktion von Fail2ban ändern, wenn jemand die Filter auslöst. Um die Verbotsaktion einzustellen, kann man folgende Zeile verwenden. In diesem Beispiel, welches wir unten haben, verwende ich die Verbotsaktion „iptables-multiport“. Durch diese Aktion wird dem Benutzer, der den Filter ausgelöst hat, der Zugriff auf die Ports des Geräts verhindert.

action = iptables[name=sshd, port=ssh, protocol=tcp]
         iptables-multiport[]

Du kannst weitere Aktionen finden, indem Du den Ordner /etc/fail2ban/action.d/ durchschaust. In der Regel solltest Du jedoch einen Angreifer für alle Ports blockieren.

Zum Festlegen der Verbotsaktion kannst Du auch die Anzahl der Versuche festlegen, die ein Benutzer vor dem Verbot erhält, sowie die Dauer, für die er gesperrt werden soll. Zu diesem Zweck können wir die folgenden zwei Werte verwenden. Ich habe einige Beispielwerte festgelegt, die ich im Folgenden erklären werde.

Bantime = -1
maxretry = 2

Die erste Zeile darüber („bantime = -1“) bestimmt, wie lange der Benutzer gesperrt werden soll. Dieser Wert muss in Sekunden liegen. Zum Beispiel: 1800 Sekunden verbieten den Benutzer für 30 Minuten. Wenn Du den Benutzer unbegrenzt sperren möchtest, kannst Du diesen Wert wie im obigen Beispiel auf -1 setzen.
Die zweite Zeile („maxretry = 2“) definiert, wie viele Versuche der Benutzer erhält, bevor die Verbotsaktion ausgeführt wird. In diesem Beispiel setzen wir diesen Wert auf 2, was bedeutet, dass der Benutzer 2 Chancen hat, bevor er an allen Ports auf diesem Gerät gesperrt wird.

Wenn Du also den Abschnitt [sshd] mit einer Verbotsaktion, einer Verbotszeit, einer maximalen Anzahl von Wiederholungen sowie der Aktivierung und dem Einstellen des Filters fertiggestellt hast, solltest Du in etwa folgendes in der Konfigurationsdatei jail.local stehen haben.

Wenn Du nun mit Deinen Änderungen zufrieden bist, speicher die Datei ab, indem Du STRG + X, dann Y (für Yes) und schließlich ENTER drückst. Jetzt sollte das Raspberry Pi Fail2ban erfolgreich installiert und konfiguriert sein. Damit die Fail2ban-Software die Änderungen auf Deinem Raspberry Pi laden kann, musst Du folgenden Befehl eingeben.

root@heimserver-rpi-b3p:~# sudo service fail2ban restart

Die Log-Datei für Fail2Ban kann z. B. mit diesem Befehl angezeigt werden.

root@heimserver-rpi-b3p:~# sudo tail -f /var/log/fail2ban.log

Wurde für einen bestimmten Jail (z. B. für SSH) eine Logdatei definiert, so kann diese mit diesem Befehl angezeigt werden.

root@heimserver-rpi-b3p:~# sudo cat /var/log/auth.log | more

Das wars schon! Nun hast Du Fail2ban installiert und konfiguriert! 

Vielen Dank an Thomas S., der sich die Zeit genommen hat mir die Software zu erklären.
Danke fürs Teilen!