Nextcloud hinter pfSense mit haproxy keine Anmeldung im Browser möglich



  • Hallo,
    Problem: ich kann mich nicht von aussen an meiner Nextcloud im Browser anmelden, per App funktioniert es.

    Zustand: ich habe eine recht frische Nextcloud 16 Installation auf einem debian 10 mit apache2 installiert. Eine Subdomain meines ext. DNS Server verweist auf meine IP, habe mir dafür ein letsencrypt Zertifikat für den Apache2 für die NC Installation geholt, intern nutze ich Split DNS um mich an NC anzumelden. Soweit so gut, die Nutzung im eigenen Netz intern funktioniert wunderbar.

    Wenn ich nun in der pfSense (2.4.4p3) eine Port 443 Weiterleitung zu meiner NC Installation einrichte funktioniert auch alles von extern, sslabs Server Test sagt A, NC Sicherheitstest sagt A+, App und Browseranmeldung funktioniert, gut so.

    Wenn ich nun aber die Port 443 Weiterleitung rausnehme, haproxy mit SSL offloading (Frontend Type https/https offloading) und dem LE Zertifikat in der pfSense einrichte (ähnlich https://sysadms.de/2018/10/pfsense-haproxy-als-reverse-proxy/ und automatischer Verlängerung der LE Zertifikate auf der NC Installation und der pfSense) komme ich von außen zwar auf die Anmeldeseite, sslabs Server Test zeigt immer noch A, NC Sicherheitstest zeigt immer noch A+ aber ich kann mich nicht an der NC Installation von außen per Browser anmelden. Sobald ich Name und Passwort eingebe leeren sich die Felder und die Anmeldung steht da wie zuvor. Die Anmeldung per Android App funktioniert noch. Das Ziel sollte ein shared Frontend sein welches sich mehrere Dienste teilen. Die Nutzung des haproxy mit SSL offloading für die anderen Webseiten im shared Frontend ('einfache' Webserver) funktioniert. Wenn ich die anderen Webseiten aus dem shared Frontend und auch die anderen Backends rausnehme funktioniert die NC Seite auch nicht besser. Das Problem der Anmeldung bleibt bestehen.

    Hat jemand eine Idee dazu? Wo liegt mein Denkfehler?



  • @bon-go
    Hast du in deiner Nextcloud config.php den HA-Proxy mit angegeben? Versuche das mal mit dem untenstehenden kompletten Block.

      'overwrite.cli.url' => 'https://cloud.example.com',
      'overwriteprotocol' => 'https',
      'trusted_proxies' =>
      array (
        0 => 'IP-Adresse HA-Proxy',
      ),
    


  • Danke, super Tip, habe ich eben gemacht, hat nichts gebracht.


  • LAYER 8 Moderator

    @bon-go said in Nextcloud hinter pfSense mit haproxy keine Anmeldung im Browser möglich:

    Sobald ich Name und Passwort eingebe leeren sich die Felder und die Anmeldung steht da wie zuvor. Die Anmeldung per Android App funktioniert noch. Das Ziel sollte ein shared Frontend sein welches sich mehrere Dienste teilen. Die Nutzung des haproxy mit SSL offloading für die anderen Webseiten im shared Frontend ('einfache' Webserver) funktioniert.

    Da liegt der Fehler in der Nextcloud. Was genau die Variable ist, kann ich leider nicht sagen, aber wir haben HAproxy Konfigurationen schon vor mehrere Own/Nextclouds gepackt und die laufen auch ;) Wenn es da nach dem Anmelden einen Fehler gibt, am Besten in die Logs schauen, ich vermute, dass da irgendwo die Konfig intern entweder einen Header braucht/sucht oder irgendwas wie das Protokoll oder die URL nicht ganz passen. Müsste man aber mit dem Apache/Nginx der Nextcloud mal analysieren was da fehlt/klemmt.



  • Hallo @bon-go,

    versuche mal die Zeile "http-response set-header X-Content-Type-Options nosniff" im HTTPS Frontend unter "Advanced pass thru" zu entfernen. Scheinbar hat Nextcloud ein Problem mit diesem Setting.

    @JeGr hast du bei deinen Installationen X-Content-Type Options gesetzt?

    Viele Grüße



  • @bepo
    Die X-Content-Type-Options sollten sowieso nicht im HA-Proxy aktiviert werden, da sie schon in der .htaccess von der Nextcloud Installation gesetzt sind. (vorausgesetzt das entsprechende Modul ist geladen)

      <IfModule mod_env.c>
        # Add security and privacy related headers
        Header set X-Content-Type-Options "nosniff"
        Header set X-XSS-Protection "1; mode=block"
        Header set X-Robots-Tag "none"
        Header set X-Download-Options "noopen"
        Header set X-Permitted-Cross-Domain-Policies "none"
        Header set Referrer-Policy "no-referrer"
        SetEnv modHeadersAvailable true
      </IfModule>
    


  • @nonick darüber kann man wohl sicher diskutieren. Hier geht es ja aber gerade darum, das Problem zu lösen.
    @bon-go lass uns Wissen, ob das geholfen hat 😄


  • LAYER 8 Moderator

    Ich musste bislang die drei Male, bei denen ich das bei Kunden vor Ort konfiguriert habe, am HAproxy nichts ändern/hinzufügen, das NextCloud Setup hat da per se schon sauber gepasst. Daher gehe ich stark davon aus, dass es daran hakt und irgendwas noch nicht ganz/sauber eingerichtet ist.



  • Hallo,

    evtl hast du das Problem inzwischen schon gelöst. Aber falls nicht und für alle die bei einer Suche darauf stoßen: Nicht selten ist die Ursache der Browser-Cache. Daher einfach mal den Cache des Browsers löschen und Browser neu starten und dann nochmal versuchen. Klingt banal, wird aber oft vergessen.

    Ximix


Log in to reply