Im Gegensatz zu einem klassischen Linux auf einem Computer, installiert man den Raspberry Pi immer über eine Image-Datei. Dadurch ergibt sich eine Sicherheitslücke: Jedes Image ist identisch, daher lautet der im System angelegte User immer „pi“ mit dem Passwort „raspberry“. Dieses lässt sich über das Kommando passwd
schnell ändern, doch viele RasPi-User machen davon keinen Gebrauch. Betreibt man den Raspberry Pi in einem öffentlich zugänglichen Netz, ist es von daher für einen Angreifer kein großes Problem den RasPi zu finden und sich einzuloggen. Zumal der RasPi seine Dasein über einen ARP-Scan bereitwillig mitteilt.
$ sudo arp-scan --localnet | grep Raspberry 192.168.0.100 b8:27:eb:76:1e:16 Raspberry Pi Foundation 192.168.0.101 b8:27:eb:e4:e1:30 Raspberry Pi Foundation
Bislang war auf den Raspian-Images der SSH-Server von Haus aus aktiv. Somit ließ sich der Raspberry Pi „headless“ aufsetzen. Man brauchte also weder Maus, Tastatur oder einen Monitor um das System des RasPis einzurichten, was die Installation eines RasPi-Servers ungemein vereinfacht. In Anbetracht der IT-Sicherheits-GAUs der letzten Tage und Wochen, macht die Raspberry Pi Foundation mit dieser Praxis nun Schluss: Seit Raspbian 2016-11-25 muss man den SSH-Server aktivieren. Kann man den RasPi direkt bedienen, ist das schnell geschehen, einen Headless-RasPi muss man jedoch gezielt vorbereiten.
SSH auf dem Raspberry Pi aktivieren
Wer auf seinen Raspberry Pi direkt zugreifen kann, weil neben Tastatur/Maus auch noch ein Monitor an dem Minirechner angeschlossen sind, muss zum Aktivieren von SSH keine großen Klimmzüge machen. In der Anwendung Preferences | Raspberry Pi Configuration findet sich im Reiter Interfaces ein Schalter zum Aktivieren des SSH-Servers. Diesen ist weiter von Haus aus installiert, man muss hier nun lediglich den Schalter auf Enabled stellen und den Dialog mit OK beenden.
Alternativ ruft man das konsolenbasierte Raspberry-Pi-Konfigurationswerkzeug mittels sudo raspi-config
in einem Terminal auf und schaltet dort unter dem Eintrag 7 Advanced Options | A4 SSH die entsprechende Option ein. Dies funktioniert dann selbstverständlich auch mit dem Light-Image von Raspbian, das auf eine grafische Desktopumgebung verzichtet. Einen Neustart danach braucht es nicht zwingend, man kann man sich sofort wieder per SSH einloggen.
Dabei findet man gleich eine weitere Neuerung. Solange man das Passwort des Standardnutzers „pi“ nicht abändert, es also bei „raspberry“ belässt, bekommt man bei jedem Einloggen einen Hinweis auf den Schirm, dass man dieses doch bitte schnellstmöglichst tun solle. Dazu genügt es sich ganz normal einzuloggen und dann mit dem Kommando passwd
das Kennwort abzuändern. Linux-typisch zeigt das System bei dieser Aktion keinerlei Sternchen oder andere Platzhalter an. Alternativ funktioniert das Ändern des Passworts auch über RasPi-Config.
SSH auf einem Headless-RasPi
Möchte man nun aber gar nicht erst einen Monitor und Eingabegeräte an den Raspberry Pi anschließen, dann steht man mit dem neusten Raspbian vor verschlossenen Türen: Konnte man sich früher per SSH direkt auf dem RasPi einloggen, heißt es jetzt nur noch ssh: connect to host 192.168.111.100 port 22: Connection refused
und nichts geht mehr. Nun beißt sich die Katze natürlich in den Schwanz: Ohne SSH kein SSH. Doch auch für diesen Fall haben die Entwickler von Raspbian eine Lösung erdacht.
Damit Raspbian von Haus aus SSH aktiviert, schreibt man die Image-Datei wie gewohnt auf die SD-Karte. Nach Abschluss der Aktion nehmt ihr die Karte nun nicht sofort aus dem Kartenleser, sondern öffnet die /boot
-Partition des Raspbian-Systems in einem Dateimanager eurer Wahl und erstellt dort eine leere Datei mit dem Namen ssh
. Da mit dem FAT-Dateisystem formatiert wurde, funktioniert dies mit allen gängigen Betriebssystem, also mit Linux, MacOS X und auch mit dem Windows Explorer unter Microsoft Windows.
Ich persönlich mache es mir unter Linux ein wenig leichter: Anstatt einen Dateimanager zu bemühen, schreibe ich das Rapbian-Image wie gewohnt mit dd auf die Speicherkarte (Achtung: Bitte Namen und bei Bedarf Pfad der Image-Datei anpassen, sowie den Pfad /dev/sdd
zur Speicherkarte ändern) und lege die Datei dann mit touch
an. Wobei man auch hier wieder den Pfad zum Mountpunkt der /boot
-Partition anpassen muss. Arch bindet externe Medien unter /run/media/benutzername ein. Das $(whoami)
sorgt dafür, dass dieser automatisch aufgelöst wird.
$ sudo dd if=2016-11-25-raspbian-jessie.img of=/dev/sdd bs=512; sync $ touch /run/media/$(whoami)/boot/ssh
In Zukunft wird es also ein klein wenig komplizierter einen Raspberry Pi ohne Monitor und Tastatur entsprechend aufzusetzen. Das Plus an Sicherheit ist es in meinen Augen jedoch wert, ich möchte nicht von einem „Raspberry-Pi-Botnet“ aus der Presse erfahren. Zahlreiche RasPi-User wussten wahrscheinlich gar nicht, dass das System aus dem Netz heraus über SSH zu erreichen war. Wurde dann nicht einmal das Standard-Passwort geändert, war das RasPi-System offen wie ein Scheunentor.
Habs vorhin ausprobiert. Klappt. Das Touch Kommando ist nen praktischer Tipp. Danke Mark!
Ich frage mich, ob „…das RasPi-System offen wie ein Scheunentor“ wirklich so war. Normalerweise hängt man den Pi doch an seinen Router (aka. DSL-Modem), der dem Pi per DHCP eine private IP-Adresse gibt. Und Port-Forwarding für SSH müsste ja auch noch irgendwie eingerichtet sein. Oder übersehe ich da was ?
Klar, für das Heimnetz ist es unerheblich. Aber viele RasPis hängen im Firmen- oder Uni-Netz und wären demzufolge erreichbar. Viele Grüße, Christoph.
Welches Thema für Raspbian ist das?
Das ist zum einen der aktuelle Pixel-Desktop (in den ersten zwei Screenshots). Die letzten zwei stammen von meinem Desktop mit der Gnome-Shell mit Flat-Plat als GTK-Skin. Viele Grüße, Christoph.
Danke
Welches Icon-Pack benutzt du im zweiten Screenshot? Das im anderen Kommentar genannte Gnome Theme ändert bei mir die Icons nicht
Welches Icon-Pack benutzt du im zweiten Screenshot? Das im anderen Kommentar genannte Gnome Theme ändert bei mir die Icons nicht
Danke,
ich hatte bisher nur Glück, weil ich immer als erstes die Tastatur anpassen musste um nicht jedes Mal am raspberrz bzw. am raspi/config zu scheitern 🙂