Raspberry im Internet absichern

Die meisten von euch werden den Raspberry mit dem eigenen Netzwerk verbunden haben. Dies bedeutet meistens auch, dass er mit dem Internet verbunden ist. Ist dies der Fall, sollte man einige Einstellungen machen und Standartkonfigurationen ändern. In diesem Beitrag erkläre ich euch, wie ihr die Sicherheit eures Raspberrys im Internet erhöht.

Trotz diesen Änderungen ist natürlich keine 100%ige Sicherheit gewährleistet. Man ist jedoch schon einiges besser gegen Angriffen aus dem Internet abgesichert. Dennoch sollten regelmäßig Updates des Systems durchgeführt werden um immer aktuelle Sicherheitsupdates zu bekommen.

Passwort des Benutzers Pi ändern

Das Standard Passwort des Benutzers „Pi“ ist „raspberry“. Viele vergessen, das Standardpassowrt zu ändern und geben dem Hacker somit einen ersten Anhaltspunkt um auf euer System zugreifen zu können. Man sollte das Passwort also möglichst direkt nach der Ersteinrichtung ändern.

Das Passwort sollte aus mindestens 8 Zeichen, aus Groß- und Kleinbuchstaben sowie aus Sonderzeichen bestehen.

Benutzer „Pi“ löschen und durch neuen ersetzen

Um den Raspberry noch weiter abzusichern, kann man den Standardbenutzer „Pi“ löschen und durch einen neuen Benutzer ersetzen.

Erstellt den neuen Benutzer „neuerBenutzer“ und fügt ihn direkt der Gruppe „sudo“ zu. Dies ist nötig, damit der Benutzer später auch Befhle als root ausführen kann bzw. darf.

Vergibt dem Benutzer ein neues Passwort, welches natürlich nach den oben genannten Kriterien gewählt werden sollte.

Nun solltet ihr euch mit dem neu angelegten Benutzer per SSH einloggen. Der nun nicht mehr benötigte Benutzer „Pi“ kann gelöscht werden.

SSH-Zugang absichern

Die Standartkonfiguration vom SSH-Zugang ist nicht gerade vorteilhaft für einen sicheren Raspberry. Um dies zu ändern bearbeiten wir die Konfigurationsdatei.

Da wir uns nur mit unserem angelegten Benutzer einloggen werden können wir den Zugang mit dem root-Account deaktivieren. Hierzu setzen wir den Eintrag PermitRootLogin auf no

SSH root

Da Standartmäßig Port 22 für den SSH-Zugang freigegeben ist, ist dieser Port die erste Anlaufstelle für Hacker. Um den Angriff etwas schwieriger zu gestalten, sollten wir den Port ändern. Der Port sollte größer 1023 sein. Ändern kann man dies, genauso wie den root-Login, in der Konfigurationsdatei indem man die Zeile „Port 22“ ändert. Zum Beispiel:

SSH Port

Um das wilde herumprobieren von Benutzernamen und Passwörter (sogenannte Brute Force Angriffe) zu unterbinden installieren wir das Paket „fail2ban“. Dies sperrt IP-Adressen nach einer voreingestellten Anzahl von Fehlversuchen.

Bei den Standarteinstellungen werden nun Angreifer nach 3 Fehlversuchen innerhalb von 10 Minuten für 10 Minuten gesperrt. Geändert kann dies unter /etc/fail2ban/jail.conf

Regeln für die Firewall einrichten

Der Raspberry stellt Standardmäßig eine Firewall zur Verfügung. Es sind jedoch keine Regeln eingerichtet. Der Raspberry nimmt also jede Netzwerkverbindung an.

Ich persönlich verwende folgende Regeln (einfach in die SSH-Verbindung kopieren):

Erlauben von lokalen Verbindungen:

nicht eindeutige Pakete verwerfen:

Datenverbindungen erlauben die zu einer bereits bestehenden Verbindung gehören:

SSH erlauben (Port entsprechend anpassen)

Sollte auf dem Raspberry eine FHEM-Installation laufen, ist es wichtig die Ports in der Firewall einzutragen:

Zum Schluss sollten dann alle anderen Verbindungen blockiert werden:

Wichtig: Diese Regel muss zum Schluss eingetragen werden. Alle danach eingetragene Regeln werden nämlich ignoriert.

Nun müssen die Regeln noch abgespeichert werden:

Alle aktiven Regeln könnt ihr euch wie folgt anzeigen lassen:

Es gibt jedoch noch ein kleines Problem. Nach einem Neustart des Systems werden die Regeln nicht wieder automatisch aktiviert. Um dies zu umgehen erstellen wir uns ein ausführbares Skript, welches die Regeln nach einem Neustart wieder aktivieren:

Es wird eine Datei erstellt, welche mit folgendem Befehl ausführbar gemacht wird:

Die auszuführende Datei wird nun bearbeitet

damit die Regeln nach einem Neustart aktiviert werden:

Mit „Strg+X“, „Y“ und „Enter“ abspeichern. Nach einem Neustart werden nun die Regeln automatisch wieder aktiviert.

Optionale Firewall-Regeln

Je nach Anwenderfall müssen natürlich noch weitere Regeln definiert werden. Je nachdem welche benötigt werden einfach kopieren und in eure SSH-Sitzung einfügen.

Anschließend wieder abspeichern:

Sollte bereits der Eintrag für das Sperren der übrigen Verbindungen eingetragen sein, so müssen weitere Einträge manuell vor diesem eingetragen werden. Am besten geschieht dies über den nano-Editor:

Wichtig ist hier die Zeile „reject-with icmp-port-unreachable“. Diese muss als letzte stehen:

iptable Raspberry

Weitere Befehle:

Anzeigen der Regeln:   sudo iptables -L

Regeln auf Standard zurücksetzen:   sudo iptables -F

Weitere Infos hier (Ubuntu Wiki)

Hinterlasse einen Kommentar

8 Kommentare auf "Raspberry im Internet absichern"

Benachrichtige mich zu:
avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
Sortiert nach:   neuste | älteste | beste Bewertung
Jörg
Gast
Jörg

Hallo, nachdem ich der Anleitung gefolgt bin komme ich nicht mehr per SSH auf meinen Raspi. Da ich dort keinen Bildschirm und keine Tastatur angeschlossen habe, wie kann ich die Einstellungen zurücksetzen ohne das komplette System neu aufsetzen zu müssen?

Larimow
Gast
Larimow
Hallo Daniel, nachdem ich nun mit ein wenig Herumprobieren das SSL-Problem gelöst habe (anderer Kommentar), habe ich nun versucht, diese Anleitung abzuarbeiten. Leider sind mir ein paar Fehler unterlaufen, die nun Konsequenzen haben. 1. Ich wollte den „pi“-User löschen, als ich noch als „pi“ angemeldet war. Viele Fehlermeldungen, da ein bestimmter Prozess noch lief, anscheinend aber keine direkten Konsequenzen, mal abgesehen von einem zerschossenen Useraccount. 2. Ich habe die sshd_config-Datei angepasst und gespeichert, danach wollte ich fail2ban installieren. Diverse Fehlermeldungen bei der Installation, weil einige Ordner nicht gefunden waren (habs leider nicht geloggt), scheint aber irgendwie geklappt zu haben 3.… weiterlesen »
Larimow
Gast
Larimow
Hallo Daniel, danke für den Hinweis aber so weit komme ich ja gar nicht erst. Egal welchen su Befehl ich eingebe, es erscheint sofort: „Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die Regeln erklärt hat. Normalerweise läuft es auf drei Regeln hinaus: #1) Resprektieren Sie die Privatsphäre anderer. #2) Denken Sie nach bevor Sie tippen. #3) Mit großer Macht kommt große Verantwortung. [sudo] password for root:“ ________________________________________________________________________ Ich habe jetzt mal versucht, die SD-Karte über einen Ext-Reader einzubinden, was auch soweit klappt. Leider finde ich die verdammte cmdline.txt-Datei nicht, in der ich das Passwort zurücksetzen könnte. Ich suche… weiterlesen »
tom
Gast
tom

Hallo Daniel,

wie geht es weiter, wenn ich auf die Config-Datei mit sudo nano /etc/ssh/sshd_config komme? Wo kann ich PermitRootLogin no ändern bzw. eintragen.

Wenn ich PermitRootLogin no als neue Zeile hinzufügen soll (ist das so?), ist mir nicht klar, wie ich das dann abspeichern kann bzw. wie ich mich in dem Menü bewegen kann (Seite vor etc.).

Mit einer Googlesuche bin ich auf eine Hilfe gekommen, die mir aber og. Fragen leider nicht beantwortet: https://www.thomas-krenn.com/de/wiki/SSH_Root_Login_unter_Debian_verbieten

Ich weiß, dass sind Basics, Anfängerfragen …. 😉

 

tom
Gast
tom

Hallo Daniel,

ja, du hast sehr viel Licht ins Dunkle gebracht 😉

Herzlichen Dank und einen schönen vierten Advent, Tom

wpDiscuz