Einleitung
Der Raspberry Pi 2 Model B bietet sich zum Betrieb einer eigenen Cloud im Heimnetz nahezu an. Dieser Kleinstrechner sollte mit seiner vierkernigen, 900 Mhz getakteten ARM CPU und einem 1 GB großen RAM ausreichend Leistung bieten. Darüber hinaus verbraucht er zwischen 1,5 und 2,5 Watt. Das führt dazu, dass auch beim Dauerbetrieb der Geldbeutel nicht zu stark belastet wird. (Genaueres siehe: https://www.raspberrypi.org/products/raspberry-pi-2-model-b/)
Aus diesem Grund habe ich mich auf den Weg gemacht, Owncloud auf meinem Raspberry Pi 2 zu testen. Dabei zeigte sich schnell, dass eine einfache Installation meine Anforderungen, vor allem im Bereich der Sicherheit, nicht ausreichend abdecken würde. Schlußendlich habe ich meine Erfahrung in einem Installationsskript zusammengefasst, um in Zukunft möglichst schnell eine Owncloud auf dem Raspberry Pi aufzusetzen. Dieses Skript möchte ich im folgenden genauer vorstellen. Das Aufsetzen einer eigenen Owncloud sollte mit diesem auch einem Neuling in ca. 15 Minuten gelingen.
Features
Das Skript bietet folgende Funktionen:
- Die benötigten Eingaben werden am Anfang interaktiv abgefragt, anschließend läuft die Installation ohne weitere Eingriffe des Benutzers.
- Owncloud wird installiert und initial mit einem administrativen Benutzer eingerichtet.
- Eine Mysql Datenbank wird installiert und Owncloud darauf konfiguriert.
- Der Webserver Apache 2 wird installiert. Darüber hinaus wird dessen Sicherheit optimiert, indem verschlüsselter Verkehr erzwungen wird.
- Zusätzliche Absicherung mit dem Tool „fail2ban“, welches dafür sorgt, dass IP-Adressen eine zeitlang gesperrt werden, wenn mehrmals ein Login mit einem falschen Passwort versucht wurde.
- Einrichtung einer Beschleunigung für Owncloud, durch die Aktivierung des Cachings mittels „apcu“.
- Es wird ein Zertifikat generiert und eingerichtet, welches von einer eigens erzeugten CA beglaubigt wird.
Installation
Als Grundlage für die Ausführung des Skriptes wird das Betriebsystem Raspbian in der aktuellen Version 8 alias „Jessie“ benötigt. Falls noch kein laufendes Raspbian vorliegt, kann dies einfach unter https://www.raspberrypi.org/downloads/raspbian/ heruntergeladen werden. Das Speichern auf die SD-Karte ist in der dort ebenfalls zu findenden Installationanleitung beschrieben.
Bei einer neuen Installation ist es nun an der Zeit ein paar anfängliche Einrichtungen vorzunehmen. Dazu wird am besten die „Raspberry Pi Configuration“ gestartet, welche sich in der grafischen Oberfläche im Menü unter „Preferences“ findet. Hier empfehle ich folgende Schritte durchzuführen:
- Dateisystem auf die volle SD-Karte ausbreiten über „Expand Filesystem“
- Passwort verändern über „Change Password“
- Den Hostnamen im gleichlautenden Textfeld auf einen individuellen Wert verändern
- Dafür sorgen, dass lediglich in den Textmodus gestartet wird, indem „To CLI“ angewählt wird
- Aus Sicherheitsgründen sei es empfohlen den automatischen Login zu deaktivieren, dazu einfach das Kreuz aus der Checkbox „Login as user ‚pi’“ entfernen
- Arbeitspeicher für die Grafik herunterstellen auf das Minimum von 16 MB, unter „GPU Memory“
- Gewünschte Spracheinstellungen mittels „Set Locale“ setzen
- Die passende Zeitzone durch anwählen von „Set Timezone“ einstellen
- Schlußendlich noch über „Set Keyboard“ das Tastaturlayout editieren
Nun muss das Skript heruntergeladen und ausführbar gemacht werden.
wget https://raw.github.com/michaelwiesing/Owncloud-Auto-Setup-for-Raspberry-Pi-2/master/setup_owncloud.sh chmod +x ./setup_owncloud.sh
Anschließend genügt ein Aufruf des Skriptes als root.
sudo ./setup_owncloud.sh
Wenn die Installation erfolgreich war, kann es wieder gelöscht werden mit folgendem Befehl:
rm ./setup_owncloud.sh
Bekannte Nebenwirkungen
- Fail2ban wirkt sich in der Standardinstallation auch auf eine ggf. vorhandene Installation vom Dienst „SSH“ aus, da auch für diesen eine Filterregel angelegt wird. Also nicht wundern, dass ein Rechner eine Zeit lang geblockt wird, wenn von ihm das Passwort zu oft falsch eingegeben wird.
Alternativen
An dieser Stelle soll auch noch auf Alternativen zu meinem Skript hingewiesen werden. Diese brachten eine Recherche im Internet zu Tage:
https://github.com/petrockblog/OwncloudPie
https://github.com/jancborchardt/owncloud-scripts/blob/master/owncloud-raspberrypi.sh
http://etapien.com/guides/owncloud-auto-install-script-on-debian-7/
Die Projekte zeigen sehr gut, dass es ganz unterschiedliche Wege gibt zum Ziel zu kommen. Teilweise sind die Skripte noch nicht vollständig, der Großteil ist jedoch sehr brauchbar. Keines der Skripte entsprach jedoch vollendst meinen Ansprüchen, weswegen ich mich zu einem eigenen entschlossen habe. Falls dir das von mir zur Verfügung gestellte Skript jedoch nicht zusagt, solltest du mal einen Blick in die verlinkten Seiten werfen.
Sonstiges
Das Skript läuft gleichermaßen auf einem Debian 8 alias „Jessie“ in der x86-Ausprägung. Dieser Umstand ist vom Vorteil, wenn Modifikation am Skript vorgenommen und Tests erforderlich werden. Denn dann können diese relativ einfach in einer VM auf einem Standard PC erfolgen.
Schlusswort
Meine Owncloud läuft bereits seit einigen Wochen auf einem Raspberry Pi 2 Model B und meine Erfahrungen sind bisher sehr positiv. Mit der Performance bin ich zufrieden. Und die Synchronisation von unterschiedlichen Clients läuft ohne Probleme.
Nun seit ihr an der Reihe. Habt ihr weitere Anmerkungen könnt ihr gerne ein Kommentar anfügen. Falls ihr Verbesserungen am Installationsskript vornehmen wollt, seit ihr natürlich auch herzlich eingeladen, diese auf GitHub hinzuzufügen. Das zu diesem Eintrag gehörende Projekt findet sich unter https://github.com/michaelwiesing/Owncloud-Auto-Setup-for-Raspberry-Pi-2.
Nachtrag
Nachdem die Owncloud nun einige Zeit sehr zufriedenstellend im Betrieb ist, bin ich noch auf einen Punkt gestoßen, welcher einer kleinen Nachbesserung bedarf. Per Default löscht Owncloud alte Versionen und im Mülleimer befindliche Dateien erst, sobald das Speicherkontingent ausgenutzt ist. Die Einstellung kann jedoch sehr leicht in der config.php verändert werden. Eine Beschreibung dazu findet sich unter: https://doc.owncloud.org/server/8.2/admin_manual/configuration_server/config_sample_php_parameters.html. Die relevanten Konfigurationsparamter sind „trashbin_retention_obligation“ und „versions_retention_obligation“. Bei ersterem kann der Wert nach euren Wünschen angepasst und bei letzterem hinzugefügt werden.