Knowledge Base

Bitte , um Beiträge und Themen zu erstellen.

NextCloud mit Sophos UTM Webserver Protection

NextCloud mit Sophos UTM Webserver Protection

In diesem Artikel möchte ich ein paar Eckpunkte und Einstellungen bzw. Einstellungsmöglichkeiten und -hilfen aufführen, die bei der Absicherung eines NextCloud Servers über die Sophos UTM Webserver Protection unterstützen können.

NextCloud Konfiguration

Beim Einsatz der Webserverprotection auf der Sophos UTM fungiert die UTM als Reverse Proxy. Damit die NextCloud das auch weiß und Requests entsprechend behandeln kann, muss in der config.php der folgende Eintrag ergänzt werden:

'trusted_proxies' => ['Interne IP der Sophos UTM'],

Setzt man diesen Eintrag nicht, so wird in den Einstellungen unter den Sicherheits- & Einrichtungswarnungen stets die folgende Warnung stehen: „Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Du greifst auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen.

Die gesamte Konfigurationsdatei einer NextCloud in Version 20 mit einer Sophos UTM könnte wie folgt aussehen:

<?php
$CONFIG = array (
'instanceid' => 'XXXXXXXXXXXXXX',
'passwordsalt' => 'XXXXXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'trusted_domains' =>
array (
0 => 'interne IP der NextCloud',
1 => 'cloud.domain.tld',
),
'datadirectory' => '/mnt/data',
'dbtype' => 'mysql',
'version' => '20.0.0.9',
'overwrite.cli.url' => 'https://cloud.domain.tld',
'overwriteprotocol' => 'https',
'trusted_proxies' => ['Interne IP der Sophos UTM'],
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'nextcloud',
'dbpassword' => 'XXXXXXXXXXXXXXXXX',
'installed' => true,
'default_language' => 'de',
'force_language' => 'de',
'default_locale' => 'de',
'force_locale' => 'de',
'skeletondirectory' => '',
'memcache.local' => '\OC\Memcache\APCu',
'filesystem_check_changes' => 1,
);
?>

Sophos Konfiguration

SSL-Zertifikat

Wenn nicht bereits vorhanden, so sollte zunächst ein SSL-Zertifikat importiert oder via Let’s Encrypt von der Sophos angefordert werden.

Dies kann über „Webserver Protection“ -> „Zertifikatsverwaltung“ im Webadmin der UTM erfolgen.

Echter Webserver

Unter „Webserver Protection“ -> „Web Application Firewall“ -> „Echte Webserver“ fügen wir zunächst einen neuen Webserver mit den Daten unseren tatsächlichen internen Servers hinzu:

Firewall-Profil

Unter „Webserver Protection“ -> „Firewall-Profile“ legen wir ein neues Firewall-Profil extra für unsere NextCloud an. Die folgenden Filterregeln müssen dabei übergangen werden, damit die Kommunikation einwandfrei funktioniert:

981243
960024
942460
960901
950108
950109
960335
981204
950010
959151
950907
973302
973326
973347
973335
973300
973334
973338
981231
981318
950901
981173
981245
960904
981205

Die Einstellungen zu Antiviren-Scans können nach belieben und jeweiligen Anforderungen angepasst werden. Wegen möglichen Verzögerungen sollte das Timeout bzw. die maximale Dateigröße jedoch möglichst gering gehalten werden. Ein direkter Virenscan der Datenverzeichnisse kann auch Serverseitig losgelöst erfolgen.

Virtueller Webserver

Im letzten Schritt muss nun mit allen zuvor angelegten Regeln und Objekten ein neuer virtueller Webserver hinzugefügt werden.

Dies ist wieder unter „Webserver Protection“ -> „Web Application Firewall“ -> „virtueller Webserver“ möglich.

Als Schnittstelle wird die öffentliche WAN-Adresse gewählt.

HTTPS ist obligatorisch und der Domänenname ergibt sich i.d.R. aus dem zuvor erstellten oder angeforderten Zertifikat.

Als „Firewall-Profil“ muss letztlich noch das soeben neu angelegte Firewall-Profil ausgewählt werden.