[Gelöst] Nextcloud hinter Cloudflare "Interner Serverfehler"

Guten Morgen zusammen :slight_smile:

Ich möchte gerne meine Nextcloud Instanz über einen Cloudflare Tunnel verfügbar machen.

Setup

Die Nextcloud selber liegt auf einer UCS 5 Instanz sub.domain-lan.tld, welch selbige als VM über proxmox 7 läuft.

Der Tunnel zur Clouldflare wird mit einem separaten Container gehalten.

In LAN ist die Nextcloud erreichbar und läuft wie gewünscht.

Problem

Die Anbindung über den Tunnel funktioniert, insoweit dass die Fehlermeldung kam, dass die Seite nicht zu den vertrauenswürdigen zählt und daher geblockt wird.

Zu dem Thema gibt es ja etliche Beiträge im Netz. Also habe ich per univention-app shell nextcloud mich in die Dockerinstanz gesetzt und in der config.php zu den trusted_domainsdie IP-Adresse des Tunnel-Containers eingetragen (222), sowie die FQDN der Cloudflare Domain (couldflare-domain.tld).

<?php
$CONFIG = array (
  'passwordsalt' => '******',
  'secret' => '*****',
  'trusted_domains' =>
  array (
    0 => 'sub.domain-lan.tld',
    1 => 'xxx.xxx.xxx.111',
    2 => 'xxx.xxx.xxx.222',
    3 => 'cloudflare-domain.tld',
  ),
  'datadirectory' => '/var/lib/univention-appcenter/apps/nextcloud/data/nextcloud-data',
  'dbtype' => 'pgsql',
  'version' => '24.0.7.1',
  'overwrite.cli.url' => 'https://sub.domain-lan.tld/nextcloud',
  'dbname' => 'nextcloud',
  'dbhost' => '172.17.42.1:5432',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => '*****',
  'installed' => true,
  'instanceid' => '******',
  'updatechecker' => false,
  'upgrade.disable-web' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.distributed' => '\\OC\\Memcache\\APCu',
  'overwriteprotocol' => 'https',
  'overwritewbroot' => '/nextcloud',
  'htaccess.RewriteBase' => '/nextcloud',
  'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',
  'trusted_proxies' =>
  array (
    0 => '172.17.42.1',
  ),
  'one-click-instance' => true,
  'one-click-instance.user-limit' => 500,
  'one-click-instance.link' => 'https://nextcloud.com/univention/',
);

//  Den E-Mail Abschnitt habe ich hier rausgenommen, da wahrscheinlich nicht relevant


Abschließend die Nextcloud Instanz mit univention-app restart nextcloud neu gestartet (Auch wenn das eigentlich nicht nötig sein sollte, da die php Datei beim Laden der Seite verarbeitet wird?)

Jetzt kommt eine neue Fehlermeldung, welche einen “Internen Serverfehler” beklagt und die IP-Adresse des Cloudflare-Containers angibt. Dazu wird ein Hash(?) angegeben, unter dem ich etwas finden können sollte.

In der Docker-Instanz finde ich in der /var/log/apache2/error.log nur den Fehler Cannot serve directory /var/www/html: No matching DirectoryIndex (none) found, and server-generated directory index forbidden by Options directive,
Ich vermute, dass dies ein anderes Thema zu sein scheint, da die LAN Instanz ohne Fehler läuft. Aber der Vollständigkeit halber gebe ich es lieber hier mit an.

Fragen

  • Wo finde ich das Server-Protokoll, in dem “Hash” die Fehlermeldung steht?
  • Was habe ich falsch gemacht?

Für Rat- und Nackenschläge wäre ich dankbar. :pray:

Nachtrag

Dank des Beitrags im Univention Forum habe ich den Logeintrag gefunden:

Der liegt auf dem UCS Host unter
/var/lib/univention-appcenter/apps/nextcloud/data/nextcloud-data/nextcloud.log

Beim refresh der Seite auf der Cloudflare Domain kommt ein entsprechender Eintrag:

{
  "reqId": "K2nDXV199F5tr4yaUZUJ",
  "level": 3,
  "time": "2023-03-30T09:09:48+00:00",
  "remoteAddr": "xxx.xxx.xxx.111",
  "user": "--",
  "app": "index",
  "method": "GET",
  "url": "/login",
  "message": "The requested uri(/login) cannot be processed by the script '/nextcloud/index.php')",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0",
  "version": "24.0.7.1",
  "exception": {
    "Exception": "Exception",
    "Message": "The requested uri(/login) cannot be processed by the script '/nextcloud/index.php')",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/lib/base.php",
        "line": 968,
        "function": "getRawPathInfo",
        "class": "OC\\AppFramework\\Http\\Request",
        "type": "->"
      },
      {
        "file": "/var/www/html/index.php",
        "line": 36,
        "function": "handleRequest",
        "class": "OC",
        "type": "::"
      }
    ],
    "File": "/var/www/html/lib/private/AppFramework/Http/Request.php",
    "Line": 760,
    "CustomMessage": "--"
  }
}

In der Cloudflare Einstellung für den Tunnel habe ich den Port xxx.xxx.xxx.111:40000 gesetzt, weil sonst das Univention-Portal geladen wurde. Eventuell ist hier der Fehler begraben?

Gelöst

Dank des Logeintrags bin ich dem Fehler auf die Spur gekommen:

Anscheinend erwartet der Router den Linkaufbau dominan.tld/nextcloud/.

Da ich den Tunnel auf das Rootverzeichnis zeigen ließ, passte die URI nicht überein.

Lösung

Die Tunnelkonfiguration auf Cloudflare wird als Pfad nextcloud gesetzt.

grafik

Fertig :partying_face:

So einfach kann das Leben sein :slight_smile:

Hallo @daniel-koertvelyessy

Ichh überlege mir auch, meine Nextcloud via Cloudflare-Tunnel erreichbar zu machen und am Router alle Ports zu schliessen.

Aber: Ich habe einige kritische Posts und Beiträge in verschiedenen Foren und auf YouTube gelesen/gesehen, welche besagen, dass Cloudflare nicht nur den Traffic messen, sondern auch analysieren, speichern und jedes Dokument das über den Tunnel geht - lesen kann.

Wie siehst Du das?

Hey @EbuNext ,

ich habe bislang keine Posts und Beiträge gelesen/gefunden (habe aber auch nicht aktiv danach gesucht).

Dass CF wohl die Möglichkeit hätte, auf die Daten im Tunnel zuzugreifen, kann ich nicht beurteilen. Dass unsere Userdaten aufgezeichnet und vermarktet werden, kann ich mir aber sehr gut vorstellen, sehe das aber eher unkritisch.

Es wird wahrscheinlich auf die Abwägung hinauslaufen: Ist es wahrscheinlich, dass CF die Daten im Tunnel ausließt und 3. zugänglich macht? Oder ist es wahrscheinlicher, dass ich im OpenVPN / SSH eine ungeschickte conf habe und ALLE auf das komplette Netzwerk zugreifen können?

Ich bin kein Infrastruktur-Spezialist, sondern Anwender. Aus meiner (laienhafter?) Sicht ist das Risiko, dass über CF ein Datenleck entsteht geringer, als meine VPN conf, welche ich über verschiedene UT Videos zusammenkopiert habe, ohne zu wissen, was ich da eigentlich gemacht habe.

Die Lösung mit CF und Nextcloud läuft sauber, die Anbindung an den Fileserver über die NextClould läuft bislang ebenfalls ohne Fehler.

LG, Daniel

Vielen Dank @daniel-koertvelyessy für Deinen Zeilen.

Ich sehe das ähnlich wie wie Du und will hier auch keine Panik verbreiten. Aktiv danach gesucht habe ich auch nicht. Wäre gar nicht darauf gekommen :wink: Ein YouTuber, der eine Anleitung zur Einrichtung des Tunnels hochgeladen hat, hat in einem darauffolgenden Video den Tunnel kritisch betrachtet.

Letztendlich ist es eine Entscheidung die jeder für sich - auch mit Blick auf die Daten die er in der Nextcloud ablegt - treffen muss.

Wenn man in den Weiten des Internets aktiv etwas sucht und die entsprechenden Begriffe nutzt wird man wohl auch negatives/kritisches über einen Apfel finden.

Ich habe den CF-Tunnel gestern in Betrieb genommen und kann Dir beipflichten. Es läuft wirklich gut.

Beste Grüsse