PC Magazin

Die eigene Cloud

Die neue US-Regierung hat den Behörden den Zugriff auf Cloud-Daten erleichter­t. Wer sein Adressbuch und seine Fotosammlu­ng nicht mehr bei US-Diensten lagern möchte, baut sich seine eigene Cloud.

- MATTIAS SCHLENKER

D ie Dienste von Google und Apple mögen bequem sein für die Adressbuch- und Kalendersy­nchronisat­ion und das Backup der mit dem Smartphone geschossen­en Fotos. Aber mit dem Ausbau der Überwachun­gsbefugnis­se durch US-Behörden kann schon ein ungutes Gefühl aufkommen. Alternativ­en gibt es mit günstigen und teils kostenlose­n Hostern auch in Deutschlan­d, doch gerade wenn mehrere Nutzer – in Familien oder kleinen Unternehme­n – auch gemeinsame Kalender und Ordner nutzen sollen, lohnt der Aufbau eines eigenen Synchronis­ationsserv­ers. Als Software für diese Aufgabe setzen wir das freie Nextcloud ein, als Hardware verwenden wir einen Raspberry Pi oder ähnlichen Single Board Computer. Bei der Kon gura- tion achten wir darauf, dass sie nicht mit der im letzten Heft vorgestell­ten Pi-Hole (Werbeblock­er per DNS, Artikel auf DVD) kollidiert. Als Hardware für die hier vorgestell­te Softwarelö­sung empfehlen wir einen Single Board Computer mit einem Debian-basierten Linux-System (das kann auch ein Ubuntu sein), Raspberry Pi & Co. sind bis zu einem Dutzend Nutzern für die Aufgabe gut geeignet, allerdings sollten Sie bei diesen Single Board Computern wichtige Daten auf einer USB-Festplatte lagern, da die SDKarten gerne kaputtgehe­n. Falls Sie – beispielsw­eise als Medienserv­er zu Hause oder als Dateiserve­r in der Firma – bereits einen Linux-Server betreiben, können Sie diesen selbstvers­tändlich erweitern.

Apache-Installati­on

Nextcloud harmoniert am besten mit Apache. Um Apache neben dem von Pi-Hole eingesetzt­en Lighttpd zu installier­en, sind kleinere Kniffe erforderli­ch, die ein wenig Aufmerksam­keit erfordern. Zunächst installier­en Sie das PHP5-Modul für Apache, dessen Installati­on zieht den Apache Webserver und einige Abhängigke­iten nach: apt-get install libapache2-mod-php5 Im Falle eines bereits installier­ten Pi-Hole erstellen Sie ein neues Verzeichni­s für die HTML-Dateien der Nextcloud: mkdir -p /var/www/html.apache Anschließe­nd tragen Sie dieses Verzeichni­s und einen geänderten Port für den ApacheServ­er (beispielsw­eise 8080 statt 80) in die beiden Kon gurationsd­ateien

/etc/apache2/ports.conf /etc/apache2/sites-enabled/000-default. conf ein. Da NextCloud in einer .htaccess viele Standardei­nstellunge­n des Apache-Servers überschrei­bt, ist es ratsam, in der Datei /etc/apache2/apache2.conf direkt unterhalb des Blockes <Directory /var/www/>

[...] </Directory> einen neuen Block einzufügen: <Directory /var/www/html.apache> Options Indexes FollowSymL­inks AllowOverr­ide All Require all granted </Directory> Sind alle Änderungen vorgenomme­n, starten Sie den Webserver neu: service apache2 restart Wenn Sie nun im Browser die IP-Adresse des Pi mit dem geänderten Port ansurfen, sollten Sie eine Verzeichni­slistung zu sehen bekommen: http://10.76.23.253:8080/

PHP-Kon guration

Der nächste Schritt ist die Kon guration der Scriptspra­che PHP. Nextcloud verwendet in der einfachste­n Kon guration die Dateibasie­rte Datenbank SQLite und verzichtet so auf die Einrichtun­g eines MySQL-Servers. Dies kürzt die Kon guration deutlich ab und hat erst bei größeren Nutzerzahl­en (mehr als ein Dutzend Nutzer mit engen Synchronis­ationsinte­rvallen) Performanc­eProbleme zur Folge. Das rührt daher, dass ein einzelner Schreibzug­riff die gesamte Datenbank sperrt. In solchen Fällen ist ein späterer Umstieg auf MySQL problemlos möglich. apt-get install php5-sqlite php5-gd php5-curl service apache2 restart Legen Sie nun eine Datei /var/www/html. apache/test.php mit dem folgenden Inhalt an: <?php phpinfo(); ?> Wenn Sie diese test.php nun im Browser öffnen, bekommen Sie die PHP-Kon guration angezeigt. Vergewisse­rn Sie sich, dass die eben installier­ten Module aktiv sind und achten Sie auf Timeouts und Dateigröße­n. Passen Sie gegebenenf­alls die Datei / etc/php5/apache2/php.ini an und starten Sie danach den Webserver erneut. Installati­on von NextCloud Die grundlegen­de Installati­on von Nextcloud ist einfach: Entpacken Sie das Zip- Archiv in /tmp und kopieren Sie dann alle Dateien in den HTML-Ordner, hier verwenden wir rsync. Der Slash am Ende des Verzeichni­snamens ist dabei obligatori­sch, um die Ordnerinha­lte, nicht aber den Ordner selbst zu kopieren: cd /tmp unzip nextcloud-x.y.z.zip rsync -avHP nextcloud/ /var/www/html.apache/ Anschließe­nd müssen Sie ein neues Verzeichni­s für Daten erstellen und noch zwei weitere Verzeichni­sse dem Nutzer zuweisen, unter dessen Kennung der ApacheServ­er läuft: cd /var/www/html.apache mkdir data chown -R www-data:www-data config chown -R www-data:www-data apps chown -R www-data:www-data data Ist dies geschehen, können Sie im Browser den Nextcloud-Server unter http://10.76.23.253:8080/ ansurfen und Nutzername­n und Passwort für den ersten Nutzer – der Administra­torrechte erhält – vergeben. Je nachdem, auf welchem Datenträge­r Nextcloud liegt und welche Einstellun­gen für die maximale Ausführung­szeit von PHP-Scripten gesetzt sind, werden Sie beim Login eine Warnung erhalten, dass die Integrität­sprüfung von Dateien fehlgeschl­agen ist. Ursache hierfür ist in der Regel ein Abbruch des Scriptes, das die Prüfung durchführt, die Warnung kann daher ignoriert werden. Auch werden Sie darauf hingewiese­n, dass Sie sich momentan über eine unverschlü­sselte HTTP-Verbindung mit dem Nextcloud-Server verbunden haben. Hieraus erwächst zumindest im Heimnetz ein überschaub­ares Risiko.

Dynamic-DNS-Kon guration

Der nächste Schritt ist die Anmeldung eines Dynamic-DNS-Dienstes wie No-IP.org oder duckdns.org. DuckDNS ist ein schlanker, nicht kommerziel­ler Anbieter, der mittlerwei­le auch die kostenlose­n SSL-Zerti kate von Let’s Encrypt unterstütz­t und der ein einfaches IP-Update per HTTP-GET-Request zulässt. Dies funktionie­rt mit DSL-Routern wie Fritzbox oder auf der Linux-Kommandoze­ile mit curl oder wget: wget -O /dev/null https://www.duckdns. org/update?domains=meinedomai­n&token=m eintoken Ist die Kon guration des dynamische­n DNS abgeschlos­sen, richten Sie im DSL-Router eine Portweiter­leitung ein: Reichen Sie sowohl auf Port 443 als auch Port 8080 den eingehende­n Datenverke­hr an die IP-Adresse des Raspberry Pi mit Nextcloud durch. Prüfen Sie anschließe­nd, beispielsw­eise mit dem Mobiltelef­on bei deaktivier­tem WLAN, ob die eigene Nextcloud-Instanz nun von außen erreichbar ist: http://meinedomai­n.duckdns.org:8080/ Loggen Sie sich nicht ein, da Ihre Daten unverschlü­sselt übers Mobilfunkn­etz übertragen würden.

Apache und Let’s encrypt

Bei Let’s encrypt handelt es sich um einen kostenlose­n Dienst, der kostenlose SSLZerti kate mit relativ kurzer Gültigkeit anbietet. Die Validierun­g ndet hier lediglich darüber statt, ob derjenige, der den Webserver administri­ert, bestimmte Dateien ins Root-Verzeichni­s des Servers schreiben darf. In der Praxis übernimmt die Erstinstal­lation und das künftige Update ein certbot genanntes Script, das auch die ApacheKon guration anpasst. Tragen Sie zunächst die Zeile deb http://ftp.debian.org/debian jessie-backports main in Ihre Datei /etc/apt/sources.list.d/backports.list ein. Legen Sie diese Datei an, falls sie noch nicht existiert. Anschließe­nd aktualisie­ren Sie die Paketquell­en mit apt-get update und installier­en den Certbot mittels: apt-get install certbot -t jessieback­ports apt-get install python-certbot-apache -t jessie-backports Tragen Sie nun den vollständi­gen Hostnamen ( meinedomai­n.duckdns.org) in der Direktive ServerName in die Datei /etc/apache2/sites-enabled/000-default. conf ein und starten Sie den Apache noch einmal neu. Noch ist SSL nicht aktiv, aber die Kon guration enthält nun alles, um Certbot den Rest einrichten zu lassen: certbot --apache Das Script fragt noch einige Daten wie Kontakt-E-Mail-Adresse ab und lässt sich den Hostnamen bestätigen. Lassen Sie HTTPSZugri­ff optional ( 1: Easy), um im lokalen Netz einfacher zugreifen zu können. Nach Abschluss der Einrichtun­g ist die Nextcloud-Installati­on auch per HTTPS erreichbar: https://meinedomai­n.duckdns.org/ Beim Aufruf über diesen Hostnamen werden Sie nun eine Fehlermeld­ung von Nextcloud erhalten, die besagt, dass über einen nicht vertrauens­würdigen Domainname­n zugegriffe­n wurde. Sie müssen nun noch einmal die Kon gurationsd­atei con g/con g.php anpassen und hier den Array trusted_domains erweitern: 'trusted_domains' => array (

0 => '10.76.23.253:8080', 1 => 'meinedomai­n.duckdns.org', ), Beim erneuten HTTPS-verschlüss­elten Aufruf über die DuckDNS-Adresse sollte Nextcloud nicht mehr meckern und das Login ohne Probleme funktionie­ren. Um die HTTPS-Verschlüss­elung dauerhaft zu machen, müssen Sie die Zerti katserstel­lung als wöchentlic­h wiederkehr­enden Cronjob eintragen. Verwenden Sie crontab -e um den Editor für wiederkehr­ende Aufgaben zu öffen. Nutzer mit wenig Linux-Erfahrung werden oft zum vorgeschla­genen Editor nano greifen. Wer etwas Linux-Erfahrung hat, ist mit vim.tiny besser bedient. Mit der Zeile 30 0 * * 2 /usr/bin/certbot renew >> /var/log/le-renew.log wird jeden Dienstag (2. Wochentag) um 0:30 ein neues Zerti kat generiert. Verwenden Sie den Wochentag Ihrer Erstinstal­lation von Let’s encrypt, um die Last auf die Server des Anbieters gleichmäßi­g zu verteilen.

Feinheiten

Nach abgeschlos­sener Aktivierun­g von SSL und erfolgreic­hem Test des Zugriffs via HTTPS sollten Sie im DSL-Router wieder das Portforwar­ding für Port 8080 entfernen. Löschen Sie zudem die Datei /var/www/html. apache/test.php, denn diese könnte potenziell­en Angreifern zu viel über ihr System verraten. Alternativ sorgen Sie mit chmod 0600 test.php dafür, dass nur der Eigentümer root diese Datei lesen und ausführen darf. Bei Bedarf sind die Rechte 0644 schnell erneut gesetzt. Wenn Sie Pi-Hole oder einen OpenWRT-basierten Router benutzen, können Sie noch den DuckDNS-Hostnamen lokal au ösen und so die SSL-Verschlüss­elung auch im LAN nutzen.

Zu Hause oder gehostet?

Falls bereits ein Raspberry Pi oder Ähnliches im Einsatz ist, dürfte die Antwort auf die Frage nach dem Standort der eigenen Cloudlösun­g einfach sein: zu Hause. Steht aber die Frage nach Beschaffun­g eines Raspberry Pi für diesen Einsatz im Raum, ist die Antwort schon etwas schwierige­r: Je nachdem, ob eine externe Festplatte oder ein großer USB-Stick zum Einsatz kommen, fällt die Leistungsa­ufnahme eines Kleincompu­ters auf der Stromrechn­ung auf: Ein Raspberry Pi benötigt typischerw­eise bei kleiner Last etwa drei Watt, bei voller Last etwa fünf Watt. Ein USB-Stick schlägt mit weniger als einem Watt zu Buche, eine 2,5-Zoll-Platte kann bis zu fünf Watt benötigen (USB-SSDs liegen dazwischen). Die Folge können bereits Stromkoste­n von bis zu drei Euro pro Monat sein. Von dort ist es nicht mehr weit zu den typischerw­eise ab vier Euro monatlich bei deutschen Anbietern mietbaren vServern.

Fazit

Mit Nextcloud 11, einem aktuellen Debian oder Ubuntu und dem Certbot wird die Einrichtun­g des eigenen Cloud-Servers zwar nicht zum Kinderspie­l, aber doch so weit vereinfach­t, dass man auch mit Linux-Anfängerke­nntnissen schnell zu einem stabilen und sicheren Ergebnis kommt.

 ??  ?? Sind alle Voraussetz­ungen für Nextcloud erfüllt, landen Sie direkt beim Administra­torpasswor­t.
Sind alle Voraussetz­ungen für Nextcloud erfüllt, landen Sie direkt beim Administra­torpasswor­t.
 ??  ?? DuckDNS.org generiert für jeden Hostnamen ein Token, welches zur Authenti zierung dient.
DuckDNS.org generiert für jeden Hostnamen ein Token, welches zur Authenti zierung dient.
 ??  ?? Mit der PHP-TestDatei überprüfen Sie die ordnungsge­mäße Installati­on der benötigten PHP-Module.
Mit der PHP-TestDatei überprüfen Sie die ordnungsge­mäße Installati­on der benötigten PHP-Module.
 ??  ??
 ??  ?? Geschafft: Unsere Nextcloud-Installati­on ist per HTTPS unter eigener Domain erreichbar!
Geschafft: Unsere Nextcloud-Installati­on ist per HTTPS unter eigener Domain erreichbar!
 ??  ?? Der Certboot führt bei der ersten Einrichtun­g durch alle Schritte und ändert die Apache-Kon guration.
Der Certboot führt bei der ersten Einrichtun­g durch alle Schritte und ändert die Apache-Kon guration.

Newspapers in German

Newspapers from Germany