Fernzugriff auf den Raspberry Pi – Teil 8 (Den Raspberry Hardwareseitig absichern)

0
0

Werbung:

Hardwareseitige Absicherung? Damit meine ich nicht, den Raspberry Pi weg zu schließen um ihn vor physischem Zugriff zu schützen (auch wenn das eine gute Methode ist um die Sicherheit zu erhöhen, weil die Gefahr gerne unterschätzt wird).

Tatsächlich geht es mir um die Erhöhung der Ausfallsicherheit des Raspberry Pi und die Konfiguration um einen Serverbetrieb aufrecht zu erhalten.

Werbung:

Reduzierung der Zugriffe auf die Speicherkarte

Wie ich bereits angedeutet habe, sind die Zugriffe auf den SD-Speicher ein Faktor, der die Lebenszeit des Raspberry-Pi’s deutlich erniedrigen können. Zwar nicht des Pi’s selbst, aber dem was den Pi eben ausmacht: Das Betriebssystem. Man kann zwar jederzeit eine neue Karte kaufen und bespielen, aber sicherlich möchte man nicht alle Daten neu eingeben und vor allem, alles was man gesammelt hat, wird verloren sein.

Wo finden denn überhaupt regelmäßig große Mengen an Zugriffen statt? Zum einen ist es die Auslagerungsdatei, der sogenannte „SWAP“. Dieser dient als Puffer, falls der physikalische RAM voll ist. Bei Linux wird in der Regel sehr viel (sehr effizient) im RAM gespeichert. Das ist der Grund, warum (anders als bei M$-Systemen gewohnt) immer nahezu der gesamte Speicher auch benutzt wird. Swappen kommt dennoch recht häufig vor, gerade weil der Raspberry Pi mit 512MB Speicher tatsächlich immer noch für heutige Verhältnisse mager bestückt ist. Andererseits sehe ich das als Vorteil an, weil sich Programmierer (endlich mal wieder) Gedanken über Effiziente Hardwarenutzung machen müssen.

Weiter sind die Verzeichnisse für die Logfiles und das „run“ Verzeichnis stark frequentiert.

Schritt 1: SWAP abschalten!

Mit drei kleinen Befehlen ist der SWAP-Speicher des Raspberry Pi in Zukunft Geschichte. Das System kann dadurch etwas langsamer werden, aber das fällt im reinen Serverbetrieb kaum auf:
sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile remove

Fertig, das war es. Um die Performance des Raspberry Pi weiter zu steigern und Speicher für Anwendungen freizuschaufeln gibt es noch die Möglichkeit den geteilten Arbeitsspeicher für den Grafikchip zu reduzieren. Da ein Server kaum eine echte graphische Oberfläche besitzen muss und der Standardspeicherwert bei 64MB liegt, kann man bei einer Reduzierung auf 16 MB auf einen Schlag 48MB(!) für Anwendungen freigeben. (Neustart des Raspberry Pi erforderlich!)

Hierfür müssen wir nur nocheinmal das Konfigurationsprogramm aufrufen:
sudo raspi-config
Hier unter Advanced den Speicher neu konfigurieren (Menüpunkt A3 „Memory Split“:

raspiconfig_advanced_menue

16MB_graka

fertig. Wer möchte sollte auch noch das automatische Starten in die graphische Oberfläche abschalten, diese wird beim Server nahezu nie genutzt und kann bei bedarf mit dem Befehl „startx“ jederzeit aufgerufen werden.

Auch jetzt sollte man das System des Raspberry Pi   neu starten.

Schritt 2: Zugriffsintensive Verzeichnisse in den RAM auslagern

Unter Linux ist alles eine Datei, jedes Gerät, jede Festplatte und alles andere auch. Somit kann man auch ganze Verzeichnisse genauso in den RAM verschieben, wie jede andere beliebige Programmdaten. Vorteil ist ganz klar: Die SD-Karte wird geschont. Der RAM des Raspberry Pi ist für solche „Belastungen“ konzipiert.
Nachteil: Nach einem Neustart sind alle Daten natürlich weg. Andererseits, hat man somit auch die Logfiles zuverlässig „aufgeräumt“. Um nun die zwei Hauptübeltäter auszulagern, muss man die Pfade dem System mitteilen. Da das Dateisystem sehr dynamisch ist, kann man problemlos Laufwerke ein- und aushängen. Weiter ist ein Verzeichnis immer zu erreichen, egal an welchem Ort es sich befindet. Geregelt wird das in der Datei „fstab“. Diese wird aufgerufen und wie folgt ergänzt:
sudo nano /etc/fstab

Hier wird folgendes eingefügt:


none /var/run tmpfs size=5M,noatime 0 0
none /var/log tmpfs size=5M,noatime 0 0

...so sieht meine fstab zur Zeit aus...
…so sieht meine fstab zur Zeit aus…

Fertig!  Der Parameter noatime wird für diesen Anwendungsfall nicht benötigt. Noatime verhindert, dass bei einem reinen Lesezugriff die Dateizeit für den Zugriff geschrieben wird. Dadurch wird das ganze etwas schneller, ist aber wie gesagt unwichtig für unseren Anwendungsfall.

Wichtig ist aber: Die Verzeichnisse /var/log stehen nach einem Neustart nicht immer zur Verfügung, das ist wichtig zu wissen! Gerade der Apache verweigert den Start, wenn das Verzeichnis nicht vorhanden ist. Dieses muss zur Bootzeit also zuverlässig angelegt werden. Eine saubere Lösung für dieses Problem habe ich bisher nicht finden können.

 

0
0

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.