Aus Raspberry Pi Geek 05/2016

Owncloud-Fork Nextcloud auf dem RasPi im Praxistest (Seite 2)

Abbildung 1: Für einen verschlüsselten Zugang zu Nextcloud müssen Sie die Ports 80 und 443 von Ihrem Router auf den zukünftigen Cloud-RasPi weiterleiten.

Abbildung 1: Für einen verschlüsselten Zugang zu Nextcloud müssen Sie die Ports 80 und 443 von Ihrem Router auf den zukünftigen Cloud-RasPi weiterleiten.

Ebenfalls unter den Freigaben finden Sie in den Fritzbox-Settings den Reiter Dynamic DNS. Im zugehörigen Dialog übernehmen Sie die von Ihrem DynDNS-Anbieter genannten Einstellungen (Abbildung 2). Der im Beispiel genutzte Dienst Ddnss.de gibt konkrete Anweisungen für Fritzbox-Router von AVM. Üblicherweise lassen sich diese auch für andere Router in ähnlicher Form übernehmen. Für einen ersten Test rufen Sie anschließend die Testseite des frisch eingerichteten Webservers über die DynDNS-Adresse auf.

Abbildung 2: DynDNS-Anbieter wie der kostenlose DynDNS-Service verbinden eine statische Internet-Adresse mit der dynamischen Internet-IP Ihres Netzzugangs.

Abbildung 2: DynDNS-Anbieter wie der kostenlose DynDNS-Service verbinden eine statische Internet-Adresse mit der dynamischen Internet-IP Ihres Netzzugangs.

Funktioniert das, ergänzen Sie den Webserver um das Let’s-Encrypt-Zertifikat. Installieren Sie dazu die noch fehlenden Pakete certbot und python-certbot-apache. Dazu müssten Sie vorübergehend die Debian-Backports aktivieren. Für Raspbian “Jessie” gibt es diese nicht – daher erhalten Sie während der Installation Fehlermeldungen, die besagen, dass die Schlüssel der Paketbetreuer nicht im System hinterlegt sind. Ignorieren Sie diese, und löschen Sie nach der Installation der Pakete den Eintrag für die Backports wieder aus der Paketverwaltung (Listing 3).

Listing 3

 

$ sudo -s
$ echo "deb http://httpredir.debian.org/debian jessie-backports main contrib non-free" > /etc/apt/sources.list.d/debian-jessie-backports.list
$ apt-get update -y
$ sudo apt install -t jessie-backports certbot python-certbot-apache -y
$ rm /etc/apt/sources.list.d/debian-jessie-backports.list
$ apt-get update

Danach erstellen Sie dann das Zertifikat (Listing 4). Die URL entspricht der zuvor erstellten DynDNS-Adresse. Die Frage nach dem Modus bewirkt, dass der Webserver automatisch alle Anfragen über das verschlüsselte HTTPS-Protokoll leitet (Secure) oder der Nutzer explizit die HTTPS-Adresse aufrufen müsste (Easy). Zur eigenen Sicherheit sollten Sie sich für die Secure-Methode entscheiden (Abbildung 3). Mit dem Schalter renew --dry-run --agree-tos überprüfen Sie dann, ob sich das nur 30 Tage gültige Zertifikat ordentlich aktualisieren lässt.

Listing 4

 

$ sudo letsencrypt --apache -d home.beispiel.com
$ sudo letsencrypt renew --dry-run --agree-tos
Abbildung 3: Für optimale Sicherheit lassen Sie Let's Encrypt den Webserver so konfigurieren, dass er sämtliche Verbindungen über HTTPS leitet.

Abbildung 3: Für optimale Sicherheit lassen Sie Let’s Encrypt den Webserver so konfigurieren, dass er sämtliche Verbindungen über HTTPS leitet.

Damit Let’s Encrypt das Zertifikat automatisch erneuert, richten Sie nun noch einen Systemd-Timer ein. Im Verzeichnis /etc/systemd/system erstellen Sie dazu entsprechend der ersten zwei Kommandos aus Listing 5 die Dateien letsencrypt.service und letsencrypt.timer, deren Inhalte Sie aus Listing 6 und Listing 7 übernehmen. Den Editor Nano beenden Sie mit [Strg]+[O],[Eingabe] und [Strg]+[X]. Der Dienst übernimmt die Aufgabe, das Zertifikat zu erneuern. Danach veranlasst er den Webserver, seine Einstellungen neu zu laden und damit ein gegebenenfalls erneuertes Zertifikat zu übernehmen. Die Timer-Unit führt den Let’s-Encrypt-Dienst dann einmal am Tag automatisch aus.

Listing 5

 

$ sudo nano /etc/systemd/system/letsencrypt.service
$ sudo nano /etc/systemd/system/letsencrypt.timer
$ sudo systemctl enable letsencrypt.timer
$ systemctl list-timers --all | grep letsencrypt
Mi 2016-06-22 00:00:00 CEST    12h left    n/a    n/a    letsencrypt.timer    letsencrypt.service

Listing 6

 

[Unit]
Description=Let's Encrypt renewal service
[Service]
Type=oneshot
ExecStart=/usr/bin/letsencrypt renew
ExecStartPost=/bin/systemctl reload apache2

Listing 7

 

[Unit]
Description=Daily renewal timer of Let's Encrypt's certificates
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target

Nextcloud

Nextcloud erhalten Sie nun in Form eines Tarballs [7] oder ZIP-Archivs. Entpacken Sie die Datei ins Wurzelverzeichnis des Webservers (/var/www/), und übertragen Sie dem System-User www-data die Rechte an den Daten unter /var/www/nextcloud/ (Listing 8).

Listing 8

 

$ wget https://download.nextcloud.com/server/releases/nextcloud-Version.tar.bz2 $ sudo tar xf nextcloud*.bz2 -C /var/www $ sudo chown -R www-data.www-data /var/www/nextcloud

Damit der Apache-Webserver die Daten nutzt, richten Sie danach einen virtuellen Host ein. Erstellen Sie dazu im Verzeichnis /etc/apache2/sites-available/ die Konfigurationsdatei nextcloud.conf (Listing 9), und befüllen Sie sie mit dem Inhalt von Listing 10. Die Änderung speichern Sie wieder über [Strg]+[O],[Eingabe] ab und verlassen Nano über [Strg]+[X]. Danach aktivieren Sie den V-Host und laden abermals die Konfiguration des Webservers neu. Sie müssten nun Ihre Nextcloud-Installation unter http://<i>Beispiel<i>.ddnss.de/nextcloud im Browser erreichen (Abbildung 4).

Listing 9

 

$ sudo nano /etc/apache2/sites-available/nextcloud.conf
$ sudo a2ensite nextcloud
$ sudo service apache2 reload

Listing 10

 

Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
  Options +FollowSymlinks
  AllowOverride All
 <IfModule mod_dav.c>
  Dav off
 </IfModule>
 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
Abbildung 4: Nach der Installation müssen Sie im Konfigurationsassistenten von Nextcloud noch den Zugang zum Datenbankserver einrichten.

Abbildung 4: Nach der Installation müssen Sie im Konfigurationsassistenten von Nextcloud noch den Zugang zum Datenbankserver einrichten.

Im Assistenten geben Sie nun die Zugangsdaten für den ersten administrativen Nutzer ein und weiter unten die (während der Installation des LAMP-Stacks vergebenen) Daten des MariaDB-Servers. In der Beispielkonfiguration wäre dies nextcloud als Datenbankbenutzer und Datenbankname, localhost für den Datenbank-Host sowie das bei der Konfiguration festgelegte Password für den Nextcloud-User der Datenbank.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben