Zum Inhalt

Webserver und Zugriffsprüfung

Die einfache Apache-Konfiguration aus der Installation kann zu Warnungen führen. Hier untersucht man den Schutz des Datenverzeichnisses und die Weiterleitungen für Kalender- und Kontaktclients.

Datenverzeichnis vor Webzugriff schützen

Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.

vi /etc/apache2/sites-available/000-default.conf

Den Inhalt durch diesen ersetzen.

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/nextcloud

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory "/var/www/nextcloud">
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </Directory>

</VirtualHost>

Warnung zum HTTP-Zugriff

Unsicherer Zugriff auf die Website über HTTP. Es wird dringend empfohlen, Ihren Server so einzurichten, dass HTTPS erforderlich ist. Ohne HTTPS funktionieren einige wichtige Webfunktionen wie "Kopieren in die Zwischenablage" oder "Service Worker" nicht!

Diese Warnung wird zum Abschluss der Anpassungen unter Zertifikate und HTTPS behoben. Zunächst die übrigen Konfigurationsschritte in der abgeschotteten Testumgebung bearbeiten.

.well-known-Weiterleitungen prüfen

Ihr Webserver ist nicht ordnungsgemäß für die Auflösung von .well-known-URLs eingerichtet. Fehler bei: /.well-known/caldav

Anpassung:

a2enmod rewrite
systemctl restart apache2

Nach der Anpassung die Apache-Konfiguration mit apache2ctl configtest prüfen, bei Erfolg neu laden und die betreffende Warnung in der Nextcloud-Übersicht erneut kontrollieren.

HTTP-Header: fehlenden HSTS-Header beheben

Einige Header sind in Ihrer Instanz nicht richtig eingestellt - Der Strict-Transport-Security-HTTP-Header ist nicht gesetzt (er sollte mindestens 15552000 Sekunden betragen). Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.

Diese Warnung wird zum Abschluss der Anpassungen behoben. Voraussetzung ist eine funktionierende HTTPS-Einrichtung mit Zertifikatsvertrauen. Der Header gehört in den HTTPS-VirtualHost auf Port 443; ein Eintrag im HTTP-VirtualHost auf Port 80 genügt nicht.

Apache-Konfiguration ergänzen

Als Root das Modul headers aktivieren und die HTTPS-Site öffnen:

a2enmod headers
vi /etc/apache2/sites-available/nextcloud-ssl.conf

Innerhalb des vorhandenen <VirtualHost *:443>-Blocks vor </VirtualHost> folgende Zeile ergänzen. Einen bereits vorhandenen HSTS-Eintrag anpassen, statt ihn doppelt einzufügen:

Header always set Strict-Transport-Security "max-age=15552000"

Die Laufzeit beträgt 180 Tage. Für diesen Zeitraum merkt sich der Browser die HTTPS-Pflicht für den Host. includeSubDomains nur ergänzen, wenn auch alle betroffenen Subdomains HTTPS unterstützen.

Konfiguration prüfen und aktivieren

apache2ctl configtest

Nur bei Syntax OK Apache neu laden:

systemctl reload apache2

Ausgelieferten Header kontrollieren

Für das selbstsignierte Zertifikat der Testumgebung auf dem Server ausführen:

curl --cacert /etc/ssl/certs/nextcloud.crt -I https://nc.home.arpa/

Den Hostnamen gegebenenfalls an die Testumgebung anpassen. Bei einem öffentlich vertrauenswürdigen Zertifikat entfällt --cacert. Die Antwort muss folgenden Header enthalten (Groß- und Kleinschreibung des Headernamens sind unerheblich):

Strict-Transport-Security: max-age=15552000

Anschließend Administrationseinstellungen → Übersicht neu laden und prüfen, ob die HSTS-Warnung verschwunden ist. Bei einem vorgeschalteten Reverse Proxy muss der Header in der tatsächlich beim Client ankommenden HTTPS-Antwort stehen.

Die vollständige Reihenfolge mit HTTP-Weiterleitung steht unter HTTP-Weiterleitung und HSTS.