Raspberry Pi als Server im Dauerbetrieb (24/7, headless)

Für die meisten Server-Aufgaben war der ursprüngliche Raspberry Pi völlig ungeeignet. Das Problem war dessen geringe CPU- und I/O-Geschwindigkeit, sowie der kleine Arbeitsspeicher. Diese drei Komponenten reduzierten die Möglichkeiten. Mit dem Raspberry Pi 2 B hat sich das geändert. Sowohl die CPU-Geschwindigkeit als auch der Arbeitsspeicher sind für typische Server-Aufgaben optimal. Gleichzeitig ist der Stromverbrauch so gering, dass er durch den Dauerbetrieb keine Rolle spielt.

Allerdings gibt es eine Einschränkung. Die Anbindung der Netzwerk-Schnittstelle ist nicht optimal. Sie hängt am internen USB. Wenn man noch weitere USB-Geräte anschließt, dann begrenzt man damit auch die Geschwindigkeit der Netzwerk-Schnittstelle.

Wenn man den Raspberry Pi als Server, Gateway oder Router dauerhaft (24/7) betreiben möchte, dann muss man ein paar Dinge beachten. Einiges gilt besonders für den Raspberry Pi. Anderes gilt generelle für den Dauerbetrieb, auch für andere Systeme, die als Server, Gateway oder Router fungieren.
Die folgenden Hinweise und Maßnahmen beziehen sich auf Optimierungsmöglichkeiten für den Raspberry Pi und die Verbesserung der Sicherheit. Bei der Optimierung geht es hauptsächlich um Stabilität und rudimentäre Leistungssteigerungen. Bei der Sicherheit geht es darum, den Dauerbetrieb sicherer zu gestalten. Das ist deshalb notwendig, weil der Raspberry Pi, abhängig von der eingesetzten Linux-Distribution, nicht sicher genug konfiguriert ist.

Alle Maßnahmen bezüglich Optimierung und Sicherheit sind optional. Das heißt, keine der Maßnahmen müssen zwangsläufig erfolgen. Man sollte sich nur darüber im Klaren sein, welche Konsequenzen das Unterlassen der einen oder anderen Maßnahme zur Folge haben kann.
Wer einen Raspberry Pi dauerhaft betreibt, übernimmt auch die Verantwortung für Schäden und Folgen. Auch dann, wenn der Raspberry Pi unbeaufsichtigt läuft.

Schritt für Schritt: 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.

Übersicht: Raspberry Pi als Server

  • Ausstattung für den Dauerbetrieb
  • Optimierung für den Dauerbetrieb
  • Server-Sicherheit im Dauerbetrieb

 

Übersicht: Ausstattung für den Dauerbetrieb

Im Dauerbetrieb geht es hauptsächlich darum, dass der Raspberry Pi stabil läuft. Nichts ist ärgerlicher als wenn der Raspberry Pi wegen auftretender Fehler seinen Betrieb einstellt oder Aussetzer hat. In so einem Fall kann die Fehlersuche eine nervtötende Angelegenheit sein. Nicht selten kommt es vor, dass man bei der Fehlerursache nichts herausbekommt, deshalb den Fehler nicht nachstellen und deshalb auch keine Lösung erarbeiten kann.
Um genau das zu vermeiden, hier ein paar Empfehlungen bezüglich der Ausstattung des Raspberry Pi.

Grundsätzlich sollte man ein gutes Netzteil verwenden. Es gibt immer wieder Berichte in diversen Foren, dass ein Raspberry Pi nicht richtig funktioniert oder instabil ist. In den allermeisten Fällen ist das Netzteil schuld. Deshalb nicht am Netzteil sparen, wenn der Raspberry Pi als Server im Dauerbetrieb laufen soll.

SD-Speicherkarten sind extrem günstig. Wie sich jeder denken kann, ist hier die Qualität weit gefächert. Dabei muss man wissen, dass SD-Speicherkarten eigentlich für den Betrieb in Digitalkameras und anderen mobilen Geräten gedacht sind. Hierbei treten so gut wie keine Komplikationen auf, weil hier Schreib- und Lesezugriffe selten und in geringem Umfang auftreten.
Ganz anders als Datenspeicher für den Raspberry Pi. Das darauf laufende Betriebssystem schreibt immer mal wieder, wenn auch in geringem Umfang, Daten auf die SD-Karte, was natürlich die Speicherzellen mehr beansprucht, als wenn nur ab und zu eine Fotodatei in einer Digitalkamera gespeichert wird. Mehr Schreibzugriffe führen auch zu einer schnelleren Abnutzung und somit schneller zum Ausfall. Im Dauerbetrieb wird das noch viel schneller eintreten. Aus diesem Grund sollte man auch nicht die billigste und kleinste SD-Card nehmen, sondern ein besseres Modell eines Markenherstellers und mit großzügig dimensionierter Speicherkapazität wählen.

 

Übersicht: Optimierung für den Dauerbetrieb (Headless-Konfiguration)

Der Raspberry Pi als Server im Dauerbetrieb läuft in der Regel ohne Bildschirm, Tastatur und Maus. Man bezeichnet das als "headless", respektive Headless-Betrieb, weshalb sich eine spezielle Headless-Konfiguration lohnt. Hauptsächlich in Bezug auf Stabilität und Leistungssteigerung.

  • Daten auslagern oder sichern
  • Speicherverteilung optimieren
  • Nicht benötigte Dienste abschalten
  • Swapping deaktivieren

Ansonsten kann man zur Minimierung von Schreibzugriffen Log-Dateien und andere temporäre Dateien ins RAM auslagern und auf den Eintrag der Zugriffszeiten je Datei verzichten (noatime).

 

Optimierung: Daten auslagern oder sichern

Weil SD-Speicherkarten alles andere als zuverlässig sind, eignen sie sich in einem Raspberry Pi nicht, um darauf Daten dauerhaft zu speichern, die regelmäßig erzeugt werden. Außerdem gibt es Fälle, bei denen eine mangelhafte Stromversorgung des Raspberry Pi zu Konflikten im Dateisystem und damit zu Datenverlusten führen. Im Prinzip muss man beim dauerhaften Betrieb eines Raspberry Pi immer damit rechnen, dass es zum Datenverlust kommen kann. Deshalb sollten Daten auf einem meist zuverlässigeren USB-Stick, übers Netzwerk auf einem NAS oder in die Cloud gespeichert werden.

Ein Mittelweg ist, wenn man die Daten auf der SD-Karte speichert und zusätzlich einmal am Tag automatisch ein Backup der Daten auf einen USB-Stick macht. Dadurch verlängert man die Lebensdauer der SD-Karte nicht, aber hat zumindest eine Datensicherung, wenn die SD-Karte irgendwann Probleme macht.

Optimierung: Speicherverteilung

Das SDRAM auf dem Raspberry Pi ist ein sogenanntes "shared memory". Das heißt, ein großer Teil wird für den Arbeitsspeicher der CPU verwendet und nur ein kleiner Teil wird für den Grafikspeicher der GPU genutzt. Standardmäßig ist für den GPU-Speicher eine Größe von 64 MByte festgelegt. Weil man den grafischen Fenster-Manager im Server- bzw. Headless-Betrieb nicht braucht, kann man die Speicherverteilung zu Gunsten des Arbeitsspeichers optimieren.

Optimierung: Nicht benötigte Dienste abschalten

Im Zuge der Performance- und Speicher-Optimierung geht es auch darum, nicht benötigte Dienste, die aktiviert sind zu identifizieren und ggf. abzuschalten. Das kann Prozessorleistung und Arbeitsspeicher sparen.

Optimierung: Swapping deaktivieren

Wenn man die Speicherverteilung des Raspberry Pi optimiert hat, dann kann man sich überlegen, ob man das Swapping abschaltet.
Auf einem Server kann Swapping nützlich, aber auch unnütz sein. Speziell beim Raspberry Pi ist Swapping eigentlich kontraproduktiv. Swapping erhöht die Anzahl der Schreibzugriffe auf das Speichermedium, auf dem sich der Swap-Speicher befindet. Das Betriebssystem und der Swap-Speicher befindet sich beim Raspberry Pi auf einer SD-Speicherkarte, die nur eine begrenzte Anzahl an Schreibzugriffen verträgt. Damit verkürzt sich die Lebensdauer der SD-Karte. SD-Karten eignen sich deshalb überhaupt nicht zum Swapping. Vor allem dann nicht, wenn der Raspberry Pi dauerhaft und eine möglichst lange Zeit störungsfrei laufen soll. Ein weiterer Grund auf Swapping zu verzichten ist die begrenzte Geschwindigkeit der SD-Speicherkarten. Das macht das Swapping auf dem Raspberry Pi langsam. Man kann also unter Umständen auf Swapping verzichten.

 

Übersicht: Server-Sicherheit

Eine Standard-Installation eines Raspberry Pi mit Raspbian in einem lokalen Netzwerk ist von außen gesehen einigermaßen sicher. Allerdings muss man immer davon ausgehen, dass sich ein Angreifer im eigenen lokalen Netzwerk befindet oder Zugriff bekommen kann. Insbesonders dann, wenn man ein WLAN betreibt. Das Problem dabei sind nicht die ungebetenen Gäste, die sich einhacken wollen, sondern Freunde, die ihre unsicheren Clients mitbringen. Wer weiß schon, welche Trojaner und Würmer da drauf sind und Löcher in die Firewall reißen.

Die hier dargestellten Sicherheitsprobleme sind in ihrer Schwere in gewisser Weise Ansichtssache. Deshalb muss man den Lösungen hier nicht zwangsläufig folgen. Es gibt allerdings Konstellationen, bei denen man die beschriebenen Sicherheitsprobleme nicht ignorieren darf. Insbesondere dann nicht, wenn man den Raspberry Pi dauerhaft betreibt und er auch noch aus dem Internet erreichbar ist. Aber auch dann, wenn der Raspberry Pi nur im lokalen Netz erreichbar ist, sollte man sich um eine höhere Sicherheit bemühen, weil man davon ausgehen muss, dass sich ein Angreifer Zugang zum lokalen Netz verschaffen kann oder im schlimmsten Fall schon verschafft hat.

  • Root-Zugriff
  • Standard-Benutzer und -Passwörter
  • Nicht benötigte Software
  • Aktualisierung vornehmen
  • SSH-Zugang

Hinweis: Nicht alle hier dargestellten Sicherheitsprobleme stellen ein echtes Problem dar. Und auch nicht alle Maßnahmen machen in jedem Fall Sinn. Und die Lösungen und Vorschläge sind auch nicht in Stein gemeißelt. Man muss schon nach der Verhältnismäßigkeit schauen. Manche Maßnahmen können auch dazu führen, dass man sich aussperrt, dass man sich ein bereits funktionierendes und konfiguriertes System zerschießt, was auch nicht die Lösung sein kann.
Es ist nicht notwendig, einen Raspberry Pi in einen Hochsicherheitsbereich zu verwandeln. Es reicht in der Regel aus, ein paar Abwehr- oder Sicherheitsmaßnahmen einzurichten, um den Aufwand für Eindringlinge zu erhöhen und den Server unattraktiv zu machen. In der Regel setzen Eindringlinge ihre Ressourcen dann bei einfacher anzugreifenden Opfern ein.

Sicherheitsproblem: Root-Zugriff

Der Benutzer "root" ist ein Standard-Benutzer, der sich in jedem Linux-System befindet. Dieser Benutzername ist nicht nur bekannt, sondern auch noch mit uneingeschränkten Rechten ausgestattet. Jetzt braucht man nur noch das Passwort, was sich mit ausreichend Zeit, auch automatisiert, herausfinden lässt.

Was Root-Zugriffe auf ein System angeht, kann man geteilter Meinung sein. Es gibt die Ansicht, dass man einen Server als kompromittiert ansehen muss, wenn ein Eindringling mit einer beliebigen Identität Root-Zugriff erlangen kann.
Bei einem Raspbian ist es so, dass der Standard-Benutzer "pi" jederzeit Root-Rechte per "sudo" erhalten kann. Und das ohne Eingabe des Root-Passworts. Es kann sinnvoll sein dieser Konstellation einen Riegel vorzuschieben. Der Benutzer, aber auch der Angreifer, brauchen dann zwei Passwörter. Einmal das des Benutzers und dann noch das Passwort von "root", sofern er Root-Rechte haben will.

Sicherheitsproblem: Standard-Benutzer und Standard-Passwörter

Die standardmäßig angelegten Benutzer und dazugehörigen Standard-Passwörter in Linux-Distributionen sind aus Sicht eines Angreifers eine feine Sache. Sie erleichtern den Zugriff. Da Standard-Benutzer- und -Passwörter dokumentiert sind, stellen sie ein erhebliches Sicherheitsrisiko dar.
Bei Raspbian ist für den Benutzer "root" kein Passwort festgelegt und damit kein Zugang möglich, es sei denn, man hat das nachträglich geändert. Für den Benutzer "pi" ist "raspberry" als Standard-Passwort festgelegt. Generell wird empfohlen bei der Erstkonfiguration für den Benutzer "pi" ein neues Passwort zu vergeben. Wenn man das nicht macht, dann riskiert man, dass es ein Angreifer schafft, mit dem Benutzer "pi" und dem Standard-Passwort "raspberry", Zugriff zu erhalten.

Man muss das nicht als ernsthaftes Problem sehen. Es kommt auf die Nutzung des Raspberry Pi an. Nur soviel sei erwähnt, dass es einige Tutorials gibt, die den Raspberry Pi zum VPN-Gateway oder WLAN-Access-Point machen. Man sollte sich darüber im Klaren sein, dass der Raspberry Pi dabei unter Umständen per SSH von extern erreichbar ist. Dabei reißt man sich mit SSH eine Sicherheitslücke ins Netzwerk, wenn ein standardmäßig angelegter Benutzer ein Standard-Passwort aufweist. Insbesondere der Benutzer "pi" ist gefährdet, weil der immer vorhanden ist.

Standard-Benutzernamen mit Standard-Passwörtern sind typische Sicherheitslücken. Schlimmer sind nur noch Passwörter, die man nicht ändern kann.

Sicherheitsproblem: Nicht benötigte Software

Der sichere Betrieb eines Raspberry Pi als Server bedingt, dass darauf nur die Anwendungen installiert sind, die für den Betrieb nötig sind. Eine Standard-Distribution, wie zum Beispiel Raspbian, bildet für den Betrieb eines Servers eigentlich keine gute Basis, weil hier schon so viel vorinstalliert ist, von dem man im Detail nichts weiß und was man nicht unter Kontrolle hat.
Allerdings stellen die ungenutzten Anwendungen erst einmal kein Sicherheitsproblem dar. Allerdings kann man nicht ausschließen, dass ein Angreifer nicht doch einen Weg findet, über eine ungenutzte Anwendung eine Sicherheitslücke auszumachen und auszunutzen. Deswegen scheidet eine Standard-Distribution als Server-Betriebssystem eigentlich aus.
Empfehlenswert ist eine spezielle Server-Distribution oder ein Minimal-Image einer Linux-Distribution.

Ein Server sollte in der Regel nur genau die Software enthalten, die er zur Erfüllung seiner Aufgabe benötigt, jedes weitere Paket stellt ein potenzielles Sicherheits- oder Performancerisiko dar.
Alle Komponenten, die nicht gebraucht werden, sollten abgeschaltet, besser deinstalliert werden, um Eindringlingen möglichst wenig Angriffsfläche zu bieten.

Sicherheitsproblem: Veraltete Software

Wenn ein Angreifer über die üblichen Authentifizierungswege nicht in ein System reinkommt, dann wird er die Implementierung auf Schwachstellen abklopfen. Beispielsweise in dem er sich über aktuelle Sicherheitslücken in der Version der Implementierung informiert. Neue Versionen werden generell mit Bug-Fixes zu beschriebenen Sicherheitslücken veröffentlicht. Angreifer nutzen diese Informationen, um im Internet nach Servern und Software zu suchen, die diese Lücken aufweisen.
Deshalb sei angeraten regelmäßig neue Aktualisierungen einzuspielen. Es mag dann zwar sein, dass die neue Version auch Sicherheitslücken enthält, aber das ist ja dann noch nicht bekannt. Wenn dann welche bekannt werden, kommt in der Regel zeitnah eine neue Aktualisierung heraus, die das Problem löst. Wenn man ständig seine eingesetzte Software auf den neusten Stand hat, hat man Software-seitig ein ziemlich sicheres System.
Wer sein System nicht laufend aktuell hält, dem muss klar sein, dass er sein System mit Sicherheitslücken betreibt.

Bei jedem Update besteht natürlich auch immer die Gefahr, dass man sich Funktionsstörungen einhandelt. Vor allem bei wichtigen Systemen möchte man das vermeiden. Die Frage ist, wie viel Aufwand zieht es nach sich, wenn ein Eindringling Schaden verursacht hat.
Ein Mittelweg mag sein, dass man keine automatischen Updates macht, sondern regelmäßige Termine für die manuelle Auslösung setzt und dabei berücksichtigt, dass man zum anschließenden Prüfen und Beseitigen von Problemen noch etwas Zeit einplant.

Alternativ kann man zumindest Sicherheitsupdates automatisch einspielen lassen.

Dann sollte man noch einen kritischen Blick auf die Paketquellen werfen.

Sicherheitsproblem: SSH-Zugang

Standardmäßig ist auf einer Linux-Distribution für den Raspberry Pi, wie zum Beispiel Raspbian, ein SSH-Server aktiv. Der ermöglicht es, dass man sich mit einem SSH-Client von einem anderen System über das Netzwerk auf den Raspberry Pi per SSH einloggt, ohne direkt mit Tastatur und Bildschirm am Raspberry Pi zu sitzen.

Dieser Remote-Zugriff auf den Raspberry Pi ist standardmäßig aber alles andere als sicher. Auch wenn SSH (Secure Shell) das anders suggeriert. Es kommt auch auf eine sichere Konfiguration an. Die ist in der Standard-Installation komfortabel eingerichtet, allerdings nicht darauf ausgelegt, dass der Raspberry Pi als Server, Gateway oder Router Kontakt zur Außenwelt hat.

Wenn ein Raspberry Pi als Server, Gateway oder Router vom Internet aus erreichbar ist, dann sollte man sich um zusätzliche Sicherungsmaßnahmen für den SSH-Zugang kümmern. Das ist wichtig und dringend. Ein als Server, Gateway oder Router betriebener Raspberry Pi mit einem Standard-Raspbian ist nicht sicher.

Sicherheitshinweis zum Schluss

Ein Server, Gateway oder Router ist nur so sicher, wie der PC, von dem er administriert wird. Ein Trojaner auf diesem PC kann ein Einfallstor für den gut geschützten Server sein.

Erweiterung: Fernwartung und Remote-Service

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!