Geänderte SSH-Server-Konfiguration von Raspbian

Wenn Sie in der Vergangenheit Raspbian installierten, egal, ob mit NOOBS oder durch die direkte Übertragung des Raspbian-Images auf eine SD-Karte, war der SSH-Server standardmäßig aktiv. Jeder, der eine Netzwerkverbindung zum Raspberry Pi herstellen konnte, konnte sich als pi mit dem bekannten Passwort raspberry einloggen und hatte dann per sudo uneingeschränkte Rechte. Es wird natürlich überall empfohlen (auch in allen Auflagen unseres Raspberry-Pi-Buchs), das Default-Passwort von pi sofort zu ändern, aber wen kümmern schon solche Empfehlungen :-(

Immer mehr Pis sind so in Netzwerke integriert, dass sie auch aus dem Internet erreichbar sind. Unter dem Eindruck der Sicherheitskatastrophen der letzten Monate (z.B. Verwundbare Router oder Botnets aus gehackten Webcams) haben sich die Raspbian-Entwickler endlich zu ein klein wenig mehr Sicherheit per Default entschlossen: Bei aktuellen Raspbian-Images ist der SSH-Dienst zwar installiert, aber standardmäßig nicht aktiv. Wie Sie SSH weiterhin verwenden können, erklärt dieser Beitrag.

SSH-Server bei einer Desktop-Installation aktivieren

Um den SSH-Server bei einer Desktop-Installation zu installieren, führen Sie im Startmenü Preferences / Raspberry Pi Configuration bzw. bei deutschen Spracheinstellungen Einstellungen / Raspberry Pi Konfiguration aus und

  • ändern zuerst (!) das Passwort für den Benutzer pi
  • und aktivieren dann SSH

Zum Ändern des Passworts müssen Sie einmal das alte Passwort (also raspberrypi) und zweimal ein sicheres, neues Passwort angeben. Der Dialog gibt sich freilich nicht mit jedem Passwort zurecht. Geben Sie also ein sicheres Passwort mit zumindest 8 Zeichen an!

Hier ändern Sie das Passwort des Benutzers »pi«.
Hier ändern Sie das Passwort des Benutzers »pi«.
So aktivieren Sie den SSH-Server.
So aktivieren Sie den SSH-Server.

Wenn Sie SSH aktiviert haben, das pi-Passwort aber nicht verändert haben, erscheint in Zukunft nach jedem Login ein Warndialog.

Wenn SSH aktiviert ist und das Passwort des Benutzers pi nicht verändert wurde, erscheint diese Warnung.
Wenn SSH aktiviert ist und das Passwort des Benutzers pi nicht verändert wurde, erscheint diese Warnung.

SSH-Server bei einer Lite-Installation aktivieren

Wenn Sie eine Lite-Installation durchgeführt haben, fehlt die grafische Benutzeroberfläche. Zur Konfiguration können Sie nun das Konfigurationsprogramm sudo raspi-config verwenden, das im Textmodus läuft. Zuerst Punkt 2 Change Password, danach Punkt 7 Advanced Options, Unterpunkt A4 SSH. Wer mit Linux vertraut ist, kann das Passwort natürlich auch mit passwd pi ändern und den SSH-Server mit systemctl start/stop/enable/disable ssh starten, stoppen, für zukünftige automatische Starts zu kennzeichnen bzw. diese Kennzeichnung wieder zu lösen.

Passwort ändern mit »raspi-config«
Passwort ändern mit »raspi-config«

SSH-Server bei einer Headless-Installation aktivieren

Von einer Headless-Installation spricht man, wenn der Raspberry Pi immer ohne Tastatur (und in der Regel auch ohne Monitor) betrieben wird, auch während der Installation. In so einem Fall wird das raspbian-Image zuerst auf einem Computer auf die SD-Karte übertragen, danach wird der Raspberry Pi damit in Betrieb genommen. Alle weiteren Konfigurationsarbeiten erfolgen im lokalen Netz via SSH.

Und genau hier hakt es natürlich: Wie die Erstkonfiguration durchführen, wenn SSH von Anfang an gar nicht aktiv ist? Um dieses Henne-Ei-Problem zu lösen, müssen Sie auf dem Rechner, auf dem Sie die SD-Karte für den Raspberry Pi vorbereiten, in der boot-Partition die Datei ssh einrichten. Unter Windows können Sie die neue Datei im Explorer einrichten, unter Linux und osX reicht touch /<mountverzeichnis>/ssh.

Beim nächsten Start des Raspberry Pi wird der SSH-Server gestartet und auch für die Zukunft aktiviert. Die Datei /boot/ssh wird anschließend gelöscht. Somit können Sie via SSH eine Verbindung zum Raspberry Pi herzustellen (ssh pi@raspberrypi). Dann führen Sie aus:

sudo passwd pi
  (sicheres Passwort einstellen!!)

Alternativ können Sie natürlich auch raspi-config verwenden. Idealerweise sollten Sie das Passwort des Benutzers pi ändern, bevor Ihr Raspberry Pi mit dem Internet verbunden ist; auf jeden Fall aber so bald wie möglich.

SSH mit fail2ban weiter absichern

Wenn Ihr Raspberry Pi dauerhaft aus dem Internet erreichbar ist, sollten Sie noch einen Schritt weitergehen und den SSH-Dienst durch fail2ban absichern. Wenn jemand Ihren Raspberry Pi anzugreifen versucht, wird er vermutlich versuchen, durch wiederholte SSH-Login-Versuche Ihr Passwort zu erraten. Der Dienst fail2ban unterbindet das sehr wirkungsvoll: Nach mehreren fehlerhaften Login-Versionen wird die IP-Adresse, von der die Logins erfolgen, für 10 Minuten gesperrt.

Um den SSH-Server durch fail2ban abzusichern, reicht die simple Installation des Pakets.

apt-get install fail2ban
fail2ban-client status ssh

  Status for the jail: ssh
  |- filter
  |  |- File list:  /var/log/auth.log 
  |  |- Currently failed: 1
  |  `- Total failed:     2
  `- action
     |- Currently banned: 0
     |  `- IP list: 
     `- Total banned:     0

Wenn Sie von der Standardkonfiguration abweichende Einstellungen vornehmen möchten, kopieren Sie /etc/fail2ban/jail.conf nach /etc/fail2ban/jail.local und nehmen dort die gewünschten Änderungen vor. Anschließend starten Sie fail2ban mit systemctl restart fail2ban neu.

Quellen / Links