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

  1. Wahl der Distribution
  2. Installation
  3. Inbetriebnahme
  4. Grundkonfiguration vornehmen
  5. Standard-Passwort ändern
  6. Boot-Optionen ändern
  7. Hostname ändern
  8. Neue SSH-Schlüssel erstellen
  9. Dateisystem erweitern
  10. Pakete aktualisieren
  11. Software installieren
  12. Benutzer einrichten
  13. Grundkonfiguration des SSH-Servers
  14. Zusätzliche Sicherheitsmaßnahmen (optional)
  15. Netzwerk-Konfiguration
  16. 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.

Installation

Inbetriebnahme

  1. Einstecken der SD-Speicherkarte
  2. Anschließen von Bildschirm und Tastatur
  3. Anschließen des Netzwerk-Kabels
  4. 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.

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

Übersicht: Fernwartung und Remote-Service

Erweiterungen für den Server-Betrieb

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
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-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!