Weiter geht’s – in den letzten Teilen haben wir Nextcloud installiert und die ersten Mängel behoben, die bei der Installation angefallen sind. Jetzt geht es noch um die Meldungen, dass der Webserver nicht richtig konfiguriert ist, um einzelne Pfade aufzulösen. Hintergrund des Ganzen ist, dass bestimmte Clients (wohl hauptsächlich welche der Firma mit dem angebissenen Stück Obst) Schwierigkeiten mit ihren CalDav- und CardDav-Clients haben. Um hier Abhilfe zu schaffen, gibt es mehrere Möglichkeiten: Zum einen kann man in der Apache-Konfigurationsdatei entsprechende Redirect-Direktiven eintragen (RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav [R=301,L]). Zum anderen besteht auch die Möglichkeit, den Reverse-Proxy entsprechend anzupassen. Da es möglich ist, dass auch andere Dienste, die ich anbieten will, zusätzliche Anpassungen erfordern, scheint mir eine zentrale Stelle, an der diese Änderungen eingepflegt werden, sinnvoller. Wir ändern also die Konfiguration unseres Reverse Proxies.

Dies geschieht in der Firewall – wie genau das mit den Regeln und Bedingungen bei HAProxy funktioniert, habe ich bereits in anderen Artikeln beschrieben. Daher hier nur die für Nextcloud erforderlichen Schritte.

Bedingungen

Exemplarisch hier ein Screenshot. Die CalDAV-Bedingung ist ähnlich – das Pfad-Suffix heißt lediglich ./well-known/caldav

Zusätzlich brauchen wir noch zwei Bedingungen vom Typ „Benutzerdefinierte Bedingung (Optionsdurchleitung)“ mit den Werten

path ./well-known/nodeinfo
path ./well-known/webfinger

Regeln

Für jede der angelegten Bedingungen erstellen wir eine zugehörige Regel

Bedingungen auswählen: CalDAV

Funktion ausführen: http-Anfrage weiterleiten

http-Umleitung: code 301 location /remote.php/dav

Für die Nodeinfo- und Webfinger-Regel definieren wir die Funktion „http-Anfrage weiterleiten“ und tragen als Ziel

code 301 location /index-php/%[capture.req.uri]

ein.

Außerdem erstellen wir noch ein Regel-Bedingungspaar für den Zugriff über den Reverse-Proxy (Host Treffer „nextcloud.meinedomain.de“). Diese Bedingung fügen wir zusätzlich in die jeweiligen Regeln ein. Wenn wir diese Änderungen nun anwenden und unsere Nextcloud-Instanz über das Internet aufrufen, erhalten wir die Meldung „Zugriff über eine nicht vertrauenswürdige Domain“. Das ist ein Sicherheitsfeature von Nextcloud: Die Installation lässt nur Aufrufe auf bestimmten Wegen zu. Aus Sicherheitsgründen müssen Domainnamen und Proxies in einer Whitelist eingetragen werden. Dasselbe gilt übrigens auch für Proxies, die der Nextcloud-Installation vorgeschaltet sind. Beides wird in der Datei config.php eingetragen:

Die IP-Adresse des Proxies ist die LAN-Adresse der Firewall. Außerdem tragen wir noch die drei overwrite-Parameter ein – die sind erforderlich, weil die Installation hinter einem Reverse Proxy liegt. Wenn wir die Datei jetzt speichern und die Nextcloud-Installation über ihre Internetadresse (die wir unter ‚trusted_domains‘ eingetragen haben) aufrufen, können wir uns ganz normal anmelden. Ein Blick in die Einstellungen zeigt, dass jetzt alles in Ordnung ist – keine Fehler mehr:

Ein kleines Schmankerl noch: Nextcloud bietet einen Sicherheitsscanner. Das ist eine Webseite, auf der man die eigene Installation auf Sicherheitsprobleme untersuchen lassen kann. Man gibt einfach die URL ein, klickt auf „Scan“ und wartet ein paar Sekunden. Danach wird das Ergebnis angezeigt. Mit den Anpassungen, die wir an unserer Konfiguration vorgenommen haben, sind wir in Sachen Sicherheit ganz weit vorne – eine Einstufung in die Kategorie „A“ ist erstrebenswert, „A+“ ist das Höchste der Gefühle:

In diesem Teil der Nextcloud-Serie haben wir eine ganze Menge geschafft: Die Installation ist gesichert, der Zugriff übers Internet ist möglich. Im nächsten Teil werden wir uns um die Einrichtung von Benutzern kümmern. Außerdem steht noch das Branding auf dem Programm, die Installation einiger Apps, Office-Anbindung, Talk und und und…