pfSense mit HAProxy und FritzBox mit IPv6
-
Hallo Gemeinde,
ich habe eine pfSense auf einem Hyper-V laufen, bei dem ich das HAProxy Modul nutze. Da ich nur eine IPv4 Adresse von meinem Provider bekomme habe ich das bekannte Problem das die Ports 80 und 443 nur einmal zur Verfügung stehen. Bei IPv6 natürlich nicht.
Als erstes muss ich meine selbst gehostete Nextcloud Instanz durchreichen. Das funktioniert auch soweit. Die Webseite ist von außen erreichbar. Sprich die Kette:
WAN -> FritzBox -> PfSense - Nextcloud Backend funktioniert grundsätzlich. Nicht jedoch die Android / iOS App! Und das auch nur wenn der Weg anscheinend über IPv6 geht. Sobald ich in einem IPv4 only WLAN bin, klappt die Verbindung über IPv4 und der App. Sicher bin ich mir da aber nicht.
Ich tippe auf ein IPv6 DNS Problem. Es läuft ein PiHole inklusive Unbound im Netzwerk. Die externe Adresse der Nextcloud ist auf dem PiHole unter Local DNS / DNS Records mit einem IPv4 und IPv6 eingetragen. Das sollte nicht das Problem sein. Die pfSense hat den DNS Eintrag des PiHoles, IPv4 und IPv6.
Hat jemand so einen Fall schon mal gehabt?
Danke. -
@eyespeak said in pfSense mit HAProxy und FritzBox mit IPv6:
Hat jemand so einen Fall schon mal gehabt?
Das kann man so nicht sagen, da ich das Problem noch nicht ganz verstehe. Die Beschreibung, was du wie wo warum im DNS hast ist etwas wirr.
Die Frage ist mehr: Hast du die Nextcloud extern auch per IPv6 erreichbar gemacht (WAN seitig) und läuft das überhaupt sauber? Wenn nicht, ist das recht klar, warum sich das Ganze dann so verhält.
Cheers
\jens -
@jegr Was genau ist Unklar?
Ja, die Nextcloud erreiche ich ohne die pfSense von außen ganz normal über IPv4 und IPv6.
-
@eyespeak said in pfSense mit HAProxy und FritzBox mit IPv6:
Ja, die Nextcloud erreiche ich ohne die pfSense von außen ganz normal über IPv4 und IPv6.
Wie kommst du OHNE pfSense denn dann von außen auf die Nextcloud? Kann ich mir gerade kein Bild von machen, wie das Netzdesign aussehen sollte, das hört sich irgendwie schief an. Bei IPv6 würde ich das ja noch glauben, weil alle IP6 routbar sind, aber IP4? Ohne Routing Instanz davor? Kannst du da mal irgendwie nen Plan von malen/posten, was da wie wo verstrippt ist (auch virtuell) und was dann genau nicht funktioniert? :)
-
@jegr na in dem ich die pfSense mit dem HAProxy einfach mal raus lasse.
WAN -> FritzBox -> Nextcloud Backend. Fertig.
Sobald ich
WAN -> FritzBox -> pfSense mit HAProxy -> Nextcloud Backend mache. Komme ich zwar per Browser hin, jedoch nicht mit der App. Im Mobilfunk habe ich aktuell eine native IPv4 und eine IPv6 Adresse. Kurioserweise sehe ich die Zugriffe auch im Log der pfSense, die Nextcloud App möchte aber nicht.
Ziemlich Kurios.
-
@eyespeak Das wird dann wahrscheinlich eher was in Richtung Setup der Nextcloud sein. In dem Sinne, dass mit HAProxy davor entweder irgendein Header nicht durchgereicht wird den du noch konfigurieren musst, oder irgendein Setting benötigt wird. Habe ich so aber noch nicht gesehen.
Wir haben da bei ein paar Firmen schon die Nextcloud hinter nen HAproxy gepackt, das hat da problemlos hingehauen, aber wie gesagt, liegt ggf. im Detail am Setup was noch benötigt wird.
Eventuell liegts auch am Ansprechen der *DAV Sachen via Proxy, da steht ja in der Doku selbst auch nen entsprechender Absatz dazu was Thema Reverse Proxy angeht. U.a. das well-known/caldav oder /carddav redirection Zeugs:
-
@jegr Puh ja, das sieht wohl so aus.
Habe jetzt einige Sachen ausprobiert. Klappt noch nicht. Muss man da was am NGINX auch noch machen?
https://www.laub-home.de/wiki/Nextcloud_hinter_einem_Reverse_Proxy#Service_Discovery_CalDAV_.2F_CardDAVHat jemand hier eine pfSense mit HAProxy und Nextcloud am laufen und könnte berichten?
-
@eyespeak Ich würde jetzt vermuten die Overwrite Werte setzen, HTTPS im Proxy machen (TLS interception) und direkt in HAProxy schon alles auf HTTPS umschreiben lassen. Dann noch die Card/Caldav redirects direkt im Frontend oder Backend umsetzen und dann mal sehen obs lüppt :)
-
@jegr Ist das denn alles notwendig wenn man quasi gar kein Reverse Proxy macht, sondern 1:1 durchreicht.
Also das SSL Offloading findet weiterhin am Backendserver statt.Ich frage mich warum die Nextcloud App einfach nicht laufen möchte.
-
@eyespeak Was heißt alles 1:1 durchreicht? Wie ist das Frontend denn konfiguriert?
-
-
@eyespeak Das ist dann ja NUR das 443er Frontend - ist dann schön und gut dass das durchgereicht wird, aber die Umleitung HTTP/HTTPS passiert ja auf nem Frontend auf Port 80, nicht wenn wir schon SSL reden. Oder hört das Frontend auf 80 UND 443? Dann könnte man trotzdem in den Regeln einbauen, dass man alles was !HTTPS reinkommt direkt auf HTTPS redirected. Aber nun... man könnte es eben auch einfach ausprobieren, ob es mit SSL termination besser funktioniert.
-
@jegr Port 80 steht auf:
-
Hat noch jemand Ideen dazu?
-
@eyespeak
Die Nextcloud App benötigt einige spezielle Einstellungen am Server. Ich könnte mir auch gut vorstellen, dass das nicht richtig über HAproxy kommt.Ein anderer Ansatz vielleicht: Ist der HAproxy davor wirklich nötig?
Meine Nextcloud läuft bspw. auf einem Apache Webserver. Auf diesem laufen noch 3 Proxy-Instanzen, die bestimmte Hostheader auf andere Webserver weiterleiten, natürlich nicht transparent.
Ist super-easy zu konfigurieren und für meine Zwecke reicht es völlig. Ähnlich funktioniert das IMHO auch auf Nginx. -
@viragomann Naja, der einzige Einsatzzweck ist für mich eine Trennung der Ports 80 und 443 für verschiedene Subdomains. Mit IPv6 only wäre es ja kein Problem. Ich habe bisher noch nicht herausgefunden was genau ich an der Nextcloud config ändern muss, damit diese Header durch gehen.
Was hast du denn beim Apache eingestellt? Bei mir läuft ein Nginx.
-
@eyespeak
Du wirst natürlich nach einer Umsetzungsmöglichkeit für Nginx suchen müssen. Ich habe mal eine solche gesehen und sie sieht ganz ähnlich aus.Ich habe bei Apache die Module proxy und proxy_http installiert.
Die Konfig für meinen Photovoltaik Wechselrichter sieht dann so aus:# Photovoltaik Proxy <VirtualHost *:80> ServerName pv-meine.domain.eu ProxyPass / http://10.50.10.6/ retry=1 timeout=50 ProxyPassReverse / http://10.50.10.6/ </VirtualHost>
Auf ProxyPass folgt das virtuelle Verzeichnis des VHosts (/), das auf den Proxy geleitet werden soll und dahinter die Ziel-Adresse. Hier kann auch ein spezieller Port mitgegeben werden. retry und timeout sind optional. Mein Wechselrichter schaltet aber nachts ab und ist damit nicht mehr erreichbar, daher sind diese Angaben hier ganz sinnvoll.
TLS Offloading mache ich nicht, sollte aber auf gleiche Weise funktionieren, nur dass dem VHost noch eine Zertifikatskette zugewiesen werden muss.
Nutzt du zufällig Collabora Online oder ein anderes Plugin in Dokker in Nextcloud?
Das wird nämlich auch über ein Proxy ungebunden. Die Konfiguration dafür habe ich mir im Netz gesucht. Diese hat mich für die Einrichtung der weiteren Proxys inspiriert.
Und eben genau in diesem Zusammenhang bin ich auf Nginx-Konfigurationen gestoßen.Wenn du aber nach einer Lösung für HAproxy suchst, könntest du bei der Nextcloud Community eher Erfolg haben als hier.