Schritt für Schritt den Raspberry Pi als Server einrichten
Wenn man den Raspberry Pi als Server einrichten will, um ihn anschließend im Headless-Betrieb einzusetzen, dann sind je nach individuellen Vorlieben einige Konfigurationsschritte vorzunehmen.
Die folgende Schritt-für-Schritt-Anleitung ist ein Vorschlag, um den Raspberry Pi als Server einzurichten.
Die Reihenfolge der einzelnen Schritte folgt einer inneren Logik. So soll ein mehrmaliges Rebooten vermieden werden und nur dann erfolgen, wenn es nicht anders geht. Selbstverständlich kann man die Reihenfolge auch ändern oder einzelne Schritte weglassen, wenn man sie nicht braucht.
Die Anleitung sieht vor, dass man die Konfiguration per SSH vornehmen kann. Das setzt aber einen aktiven SSH-Server auf dem Raspberry Pi voraus. Selbstverständlich kann die Konfiguration auch lokal erfolgen.
Aufgabe
- Wahl der Distribution
- Installation
- Inbetriebnahme
- Grundkonfiguration vornehmen
- Standard-Passwort ändern
- Boot-Optionen ändern
- Hostname ändern
- Neue SSH-Schlüssel erstellen
- Dateisystem erweitern
- Pakete aktualisieren
- Software installieren
- Benutzer einrichten
- Grundkonfiguration des SSH-Servers
- Zusätzliche Sicherheitsmaßnahmen (optional)
- Netzwerk-Konfiguration
- Konfiguration abschließen
Wahl der Distribution
Bei einem Server wird man sich in der Regel für ein Minimal-Image entscheiden, weil jede vorinstallierte Software überflüssig ist, unnötigerweise Speicherplatz verbraucht und auch Performance- und Sicherheitsrisiken beinhaltet.
- Linux-Distributionen
- Raspbian
- Minimal-Image von Raspbian selber erstellen
- Minimal-Image von Raspbian für eine 2-GByte-SD-Card
Installation
Inbetriebnahme
- Einstecken der SD-Speicherkarte
- Anschließen von Bildschirm und Tastatur
- Anschließen des Netzwerk-Kabels
- Anschließen der Energieversorgung
Grundkonfiguration vornehmen
Die ersten Schritte bestehen darin, die Landes-, Sprach- und Zeiteinstellungen vorzunehmen.
Systemsprache, Standort und Zeichensatz einstellen:
sudo dpkg-reconfigure locales
Zeitzone einstellen:
sudo dpkg-reconfigure tzdata
Tastatur-Layout einstellen (nicht über SSH):
sudo dpkg-reconfigure keyboard-configuration
Oder wenn man es per SSH einstellen will:
sudo nano /etc/default/keyboard
Hier ändert man den folgenden Wert:
XKBLAYOUT="de"
Hinweis: Je nach Distribution gibt es unterschiedliche Wege, diese Grundeinstellungen vorzunehmen. So gibt es unter Raspbian das Tool "raspi-config", mit dem sich die oben genannten Einstellungen sehr bequem durchführen lassen.
sudo raspi-config
Standard-Passwort ändern
Aus Sicherheitsgründen muss das Standard-Passwort möglichst frühzeitig nach der ersten Inbetriebnahme geändert werden. In der Regel sofort. In diesem Fall erst nach den Sprach-Einstellungen, weil man dann eine deutschsprachige Benutzerführung hat, was die Handhabung vereinfacht.
passwd
Das Passwort des Benutzers "pi" kann man ebenfalls über "raspi-config" ändern.
Das neue Passwort muss "blind" eingegeben und bestätigt werden.
Boot-Optionen
Unter Raspbian Wheezy wird standardmäßig die Konsole gestartet. Anschließen muss man sich einloggen. Unter Raspbian Jessie wird standardmäßig die grafische Benutzeroberfläche gestartet, was wir nicht unbedingt wollen. Diese Boot-Optionen stellt man am besten mit dem Tool "raspi-config" ein.
sudo raspi-config
Hostname/Computername ändern
Standardmäßig hat ein frisches Image einer Linux-Distribution einen vorgegebenen Hostnamen. Bei einem Server-Betrieb möchte man vielleicht einen individuellen Hostnamen vergeben.
sudo hostname -b {NEUERNAME}
Oder über "raspi-config".
Danach kurz prüfen:
hostname
Unter Umständen ist es damit allerdings nicht getan. Man sollte noch einen Blick in die hosts-Datei werfen.
cat /etc/hosts
Wenn dort noch der alte Hostname drin steht, dann muss man den in dieser Datei auch noch ändern.
sudo nano /etc/hosts
Danach speichern und schließen: Strg + O, Return, Strg + X.
Neue SSH-Schlüssel erstellen
Spätestens, wenn man den Hostnamen geändert hat, muss man neue SSH-Schlüssel erstellen. Zuerst löschen wir alle Dateien, in denen sich die Schlüssel befinden. Davon gibt es mehrere. Zum Löschen reicht trotzdem ein Kommando.
sudo rm /etc/ssh/ssh_host_*
Anschließend führen wir eine Rekonfiguration des SSH-Servers durch:
sudo dpkg-reconfigure openssh-server
Die Erstellung der Schlüssel-Dateien erfolgt automatisch. Normalerweise sollte auch der SSH-Server automatisch neu gestartet werden. Wenn nicht, dann muss man das händisch machen.
sudo service ssh restart
Ein Neustart des Systems ist nicht erforderlich. Allerdings muss man beachten, dass nach einem erneuten Login per SSH die Identität des Systems neu bestätigt werden muss.
Dateisystem erweitern
Wenn eine Linux-Distribution frisch auf eine SD-Card geschrieben wurde, dann wird nicht die gesamte Speicherkarte belegt, sondern nur ein Teil davon. Wenn man das Dateisystem auf die ganze Speicherkarte ausdehnen möchte, dann empfiehlt sich per "raspi-config" der Menüpunkt "Expand Filesystem".
Anschließend ist ein Reboot zwingend erforderlich.
sudo reboot
Hinweis: Nach einem "Expand Filesystem" muss ein Reboot zwingend erfolgen. Wenn man hier ohne Reboot einfach weitermacht, kann man sich das System zerschießen.
Pakete aktualisieren
Wenn man ein System neu aufsetzt, dann ist es empfehlenswert die Paketquellen zu überprüfen, aus denen später über die Paketverwaltung neue und aktualisierte Pakete bezogen werden. Je nach dem, welche Anforderungen man stellt, sind Anpassungen nötig oder auch nicht.
Wenn man eine Standard-Distribution, wie Raspbian verwendet, dann ist das Prüfen der Paketquellen nicht zwingend notwendig. Die sind meistens sinnvoll eingestellt. Anders sieht es aus, wenn man ein Image aus einer fremden Quelle hat. Hier sollte man einen Blick drauf werfen.
Anschließend führen wir die Aktualisierung der Paketlisten aus den Paketquellen durch.
sudo apt-get update
Und danach laden und installieren wir aktualisierte Pakete.
sudo apt-get upgrade
Je nach Aktualität des Image oder der Distribution kann das auch mal etwas länger dauern.
Software installieren
Je nach Distribution oder Image kann es nicht schaden ein paar Pakete nachzuinstallieren. Es handelt sich hierbei um einige Tools, die später helfen das System besser zu bedienen.
Die Installation erfolgt einzeln. Das heißt, bedarfsweise können einzelne Pakete weggelassen oder auch später installiert werden.
apt-get install sudo
Benutzer einrichten
Die folgenden Schritte gelten nur dann, wenn noch kein Benutzer eingerichtet sind. Bei Raspbian ist der Benutzer "pi" schon eingerichtet und deshalb muss kein weiterer Benutzer eingerichtet werden.
Sinnvoll ist die Einrichtung eines weiteren Benutzers zur Administration nur dann, wenn vorher das Paket "sudo" installiert wurde.
Benutzer mit Home-Verzeichnis einrichten:
useradd -m {USERNAME}
Passwort festlegen:
passwd {USERNAME}
Danach muss das Passwort "blind" eingegeben und anschließend bestätigt werden.
Standard-Bash zuweisen:
usermod -s /bin/bash {USERNAME}
Hauptgruppe zuweisen:
usermod -g users {USERNAME}
Benutzergruppen zuweisen:
gpasswd -a {USERNAME} sudo gpasswd -a {USERNAME} ssh
Gruppenzugehörigkeit eines Benutzers prüfen:
id {USERNAME}
Neuen Benutzer testen:
su - {USERNAME}
Benutzer beenden:
exit
Berechtigung für die Benutzergruppe "sudo" setzen:
visudo
Hier prüfen wir, ob folgende Zeile eingetragen ist. Wenn nicht, dann muss diese Zeile nachgetragen werden.
$sudo ALL=(ALL:ALL) ALL
Wenn man sich einen Benutzer für die Systemadministration eingerichtet hat, ist eine gute Gelegenheit, diesen durch Anmelden zu testen. Dazu meldet man sich als "root" ab und als neuen Benutzer an.
Grundkonfiguration des SSH-Servers
Im folgenden Schritt geht es darum, den SSH-Server sicherer zu konfigurieren.
sudo nano /etc/ssh/sshd_config
Die folgenden Zeilen müssen einzeln betrachtet werden. Teilweise sind die Parameter schon richtig voreingestellt. Andere müssen geändert oder nachträglich eingefügt werden.
Protocol 2
AllowGroups ssh
PermitEmptyPasswords no
PermitRootLogin no
Nach den Änderungen muss die Datei gespeichert und geschlossen werden. Anschließend ist ein Neustart des SSH-Servers notwendig, damit die Änderungen übernommen werden.
sudo service ssh restart
Eine bestehende SSH-Verbindung wird dabei nicht unterbrochen.
Zusätzliche Sicherheitsmaßnahmen (optional)
Wenn man einen Benutzer für die Systemadministration eingerichtet hat und der berechtigt ist, "sudo" zu benutzen und eine Verbindung per SSH herstellen kann, dann kann man die Sicherheit des Gesamtsystems zusätzlich verbessern, in dem man das Passwort von "root" löscht.
sudo passwd -d root
Netzwerk-Konfiguration
Bevor die Konfiguration des Gesamtsystems zu Ende gebracht wird, wird man sich noch um die Netzwerk-Konfiguration kümmern. Die ist allerdings individuell festzulegen. So wird man in der Regel für den Server-Betrieb eine statische IPv4-Adresse einrichten. Im einen oder anderen Fall IPv6 aktivieren, was bei einer Neueinrichtung zu empfehlen ist. Und gegebenenfalls wird man weitere Netzwerk-Dienste, wie zum Beispiel Avahi installieren.
- Statische IPv4-Adresse für Raspbian Jessie (Raspberry Pi)
- Statische IPv4-Adresse für Raspbian Wheezy (Raspberrry Pi)
- Avahi einrichten
- Netzwerk-Probleme beim Raspberry Pi lösen
Konfiguration abschließen
Der letzte Neustart. Das ist notwendig, damit man weiß, dass bei einem Neustart auch wirklich alles so funktioniert, wie man es möchte.
sudo reboot
Übersicht: Raspberry Pi als Server
- Webserver auf dem Raspberry Pi einrichten (lighttpd)
- File-Server auf dem Raspberry Pi einrichten
- DHCP-Server auf dem Raspberry Pi einrichten
- Raspberry Pi: Nextcloud installieren
- Raspberry Pi: Print-Server mit CUPS und AirPrint einrichten
Übersicht: Fernwartung und Remote-Service
- Raspberry Pi: Fernwartung und Remote-Desktop mit VNC, RDP und SSH
- Raspberry Pi: Kommandozeile per SSH aktivieren
- VNC-Server auf dem Raspberry Pi einrichten (X11VNC)
- Desktop-Sharing per VNC mit RealVNC auf dem Raspberry Pi einrichten
- XRDP-Remote-Desktop auf dem Raspberry Pi einrichten
Erweiterungen für den Server-Betrieb
- Raspberry Pi als Server im Dauerbetrieb (24/7, headless)
- SSH-Server auf dem Raspberry Pi absichern
- Raspberry Pi und USB-LED blink(1): Service-Status anzeigen
- Raspberry Pi und USB-LED blink(1): User-Login-Status anzeigen
Weitere verwandte Themen:
Teilen:
Produktempfehlungen
Elektronik-Set Raspberry Pi Edition
Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero
- Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
- Experimentieren und Programmieren ohne Vorkenntnisse
- Sofort Loslegen mit All-in-one-Set
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.