Die Sicherheit des Raspberry Pi ist wichtig. Sicherheitslücken lassen den Raspberry Pi offen für Hacker, die ihn dann kompromittieren und für bösartige Zwecke nutzen können...
Welcher Grad an Sicherheit benötigt wird, hängt davon ab, wie der Raspberry Pi genutzt wird. Wird der Raspberry Pi z.B. nur im Heimnetzwerk hinter einem Router mit Firewall verwendet, dann ist er standardmäßig schon recht sicher.
Wird der Raspberry Pi direkt mit dem Internet verbunden oder mit einer direkten Verbindung (unwahrscheinlich) oder indem bestimmte Protokolle durch die Router-Firewall geöffnet sind (z.B. SSH), dann müssen einige grundlegende Sicherheitseinstellungen vorgenommen werden.
Auch wenn der Pi hinter einer Firewall betrieben wird, ist es sinnvoll, die Sicherheit ernst zu nehmen. In diesem Artikel werden einige Möglichkeiten beschrieben, wie die Sicherheit des Pi verbessert werden kann.
Im Folgenden ein paar einfache Maßnahmen, um den Raspi abzusichern
Änderung des Standardpassworts
Der Standard-Benutzername und das Standard-Passwort werden für jeden einzelnen Raspberry Pi mit Raspberry Pi OS verwendet. Wenn man also Zugang zu einem Raspberry Pi erhält und diese Einstellungen nicht geändert wurden, hat man Root-Zugriff auf den Pi.
Das erste, was getan werden muss, ist das Passwort zu ändern. Dies kann über die Anwendung raspi-config oder über die Kommandozeile erfolgen.
sudo raspi-config
Danach Auswahl von
- Option 1 System Options und dann
- S3 Password
- ab hier kann man dann einfach den Anweisungen folgen.
Tatsächlich ist alles, was raspi-config tut, das Starten der Kommandozeilenanwendung passwd, was von der Kommandozeile aus auch direkt aufgerufen werden kann. Einfach zweimal das neue Password eingeben und die Änderung ist vollzogen.
passwd
Änderung Benutzername
Alle Raspberry Pis werden mit dem Standard-Benutzernamen pi ausgeliefert. Wenn man diesen direkt ändert, erhöht man natürlich auch die Sicherheit, denn der Default-User ist dann nicht mehr zu gebrauchen.
Um einen neuen Benutzer hinzuzufügen einfach in der Kommandozeile folgenden Befehl absetzen
sudo adduser NameDesBenutzers
Nach Absetzen des Befhels wird man direkt aufgefordert ein Passwort zu vergeben.
Der neue Benutzer wird ein Home-Verzeichnis unter /home/NameDesBenutzers/ haben. Dies kann man allerdings auch unterbinden in dem man den Befehl mit einem großen "M" absetzt:
sudo adduser -M NameDesBenutzers
Mit folgendem Befehl fügt man den neuen Benutzer zur Gruppe sudo hinzu, um ihm sudo-Rechte sowie alle anderen erforderlichen Rechte zu geben:
sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi NameDesBenutzers
Um zu prüfen, ob die gesetzten Berechtigungen vorhanden sind (z.B. kann man prüfen ob "sudo" verwendbar ist), folgenden Befehl in die Kommandozeile tippen:
sudo su - NameDesBenutzers
Wenn dieser Schritt erfolgreich ist, dann können wir sicher sein, dass das neue Konto in der sudo-Gruppe ist.
Sobald man bestätigen kann, dass das neue Konto funktioniert, können wir den Benutzer Pi löschen. Dazu muss man zunächst seinen Prozess mit folgendem Befehl beenden:
sudo pkill -u pi
Bitte beachten, dass es bei der aktuellen Raspberry Pi OS-Distribution einige Aspekte gibt, die das Vorhandensein des pi-Benutzers erfordern. Wenn man sich nicht sicher ist, ob man betroffen ist, dann einfach den pi-Benutzer an Ort und Stelle lassen.
Um den Benutzer Pi zu löschen, setzen wir folgenden Befehl in der Kommandozeile ab:
sudo deluser pi
Dieser Befehl löscht den Benutzer pi, lässt aber den Ordner /home/pi bestehen. Falls erforderlich, kann mit dem folgenden Befehl gleichzeitig der Ordner "home" für den Benutzer "pi" gelöscht werden.
Achtung!! Die Daten in diesem Ordner werden dauerhaft gelöscht. Bitte sicherstellen, dass alle benötigten Daten an anderer Stelle gespeichert sind. Es sollten allerdings keine Daten vorhanden sein, wenn man die Kiste gerade erst neu installiert hat!
sudo deluser -remove-home pi
Dieser Befehl führt zu einer Warnung, dass die Gruppe pi keine Mitglieder mehr hat. Der Befehl deluser entfernt jedoch sowohl den Benutzer pi als auch die Gruppe pi, so dass die Warnung ignoriert werden kann.
"Sudo" sollte immer ein Passwort anfordern
Wenn sudo vor einen Befehl gesetzt wird, wird dieser als Superuser ausgeführt, der standardmäßig kein Kennwort benötigt. Im Allgemeinen ist dies kein Problem. Wenn der Raspi jedoch aus dem Internet erreichbar ist und auf irgendeine Weise ausgenutzt wird (z. B. über einen Webseiten-Exploit), kann der Angreifer Dinge ändern, für die Superuser-Anmeldedaten erforderlich sind, es sei denn, sudo ist so eingestellt, dass ein Kennwort erforderlich ist.
Um zu erzwingen, dass sudo ein Passwort erfordert, folgende Befehlszeile absetzen:
sudo visudo /etc/sudoers.d/010_pi-nopasswd
und hier den Eintrag pi (oder die Benutzernamen, die Superuser-Rechte haben) in:
pi ALL=(ALL) PASSWD: ALL
abändern.
Speichern der Datei: Sie wird auf Syntaxfehler geprüft. Wenn keine Fehler festgestellt wurden, wird die Datei gespeichert und man kommt zur Eingabeaufforderung zurück. Wurden Fehler festgestellt, erscheint die Frage "Was nun?". Eingabetaste auf der Tastatur drücken: Daraufhin wird eine Liste mit Optionen angezeigt. Option "e" für "(e)dit sudoers file again" verwenden, damit die Datei erneut bearbeitet und das Problem behoben werden kann. Bitte beachten, dass mit der Option "Q" die Datei mit allen Syntaxfehlern gespeichert wird, so dass kein Benutzer mehr den Befehl sudo verwenden kann.
Installation letzter/aktueller Sicherheitspatches für den PI
Eine aktuelle Distribution enthält alle aktuellen Sicherheitskorrekturen, daher sollte die Version vom Raspberry Pi OS auf die neueste Version in regelmäßigen Abständen aktualisiert werden.
Der einfachste Weg, Software zu installieren, zu aktualisieren und zu entfernen, ist die Verwendung von APT (Advanced Packaging Tool) von Debian. Um Software im Raspberry Pi OS zu aktualisieren, können man das apt-Tool in einem Terminalfenster verwenden.
APT führt eine Liste der Softwarequellen auf dem Pi in einer Datei unter /etc/apt/sources.list. Bevor neue Software installiert wird, sollten die Paketlisten mit apt update aktualisiert werden. Dazu ein Terminal-Fenster öffnen und folgenden Befehl absetzen:
sudo apt update
Als Nächstes werden alle installierten Pakete auf die neuste Version gebracht:
sudo apt full-upgrade
Ein vollständiges Upgrade (apt full-upgrade) einem einfachen Upgrade (apt upgrade) vorzuziehen hat den Vorteil, dass es auch alle Änderungen an den Abhängigkeiten berücksichtigt, die möglicherweise vorgenommen wurden.
Generell gilt, dass ein regelmäßiges Upgrade die Installation für die jeweilige Hauptversion des Raspberry Pi Betriebssystems, die im Einsatz ist (z.B. Stretch), auf dem neuesten Stand hält. Sie wird nicht von einer Hauptversion auf eine andere aktualisiert, z. B. von Stretch auf Buster.
Es gibt jedoch gelegentlich Änderungen im Raspberry Pi OS-Image der Foundation, die einen manuellen Eingriff erfordern, z. B. ein neu eingeführtes Paket. Diese werden nicht mit einem Upgrade installiert, da dieser Befehl nur die Pakete aktualisiert, die bereits installiert sind.
SSH Sicherheit
SSH ist eine gängige Methode, um aus der Ferne auf einen Raspberry Pi zuzugreifen. Standardmäßig erfordert die Anmeldung mit SSH ein Benutzername/Passwort-Paar, und es gibt Möglichkeiten, dies sicherer zu machen. Eine noch sicherere Methode ist die Verwendung einer schlüsselbasierten Authentifizierung (auf die gehen wir hier nicht ein).
Das Wichtigste ist, dass man ein sehr sicheres Passwort vergibt. Wenn der Raspberry Pi aus dem Internet erreichbar ist, muss das Passwort wirklich sehr sicher sein. Dies hilft, Wörterbuchangriffe (sog. Brute-Force-Angriff) oder Ähnliches zu vermeiden. Zudem bietet sich auch hier die Konfiguration der schlüsselbasierten Authentifizierung an.
Es ist auch möglich, bestimmte Benutzer zuzulassen oder abzuweisen, indem die sshd-Konfiguration geändert wird:
sudo nano /etc/ssh/sshd_config
Folgende Zeile am Ende der Datei hinzufügen oder bearbeiten:
AllowUsers michel hans
Man kann auch DenyUsers verwenden, um bestimmte Benutzernamen von der Anmeldung auszuschließen:
DenyUsers chris daniel
Nach der Änderung muss der sshd-Dienst mit sudo systemctl restart ssh neu starten oder neu booten, damit die Änderungen wirksam werden.
Installation von fail2ban
Hier findet sich ein super Tutorial für die Installation/Konfiguration von fail2ban.