Truenas (Nextcloud) -> Pfsense -> Cloudflare 522 (timeout)
-
503 heißt beim Proxy dass das Backend nicht da ist, das ist dann was lokales und nichts was die Internetverbindung betrifft. Sollte leicht zu prüfen und beheben sein.
-
@viragomann said in Truenas (Nextcloud) -> Pfsense -> Cloudflare 522 (timeout):
Heißt das, die Nextcloud hat noch niemals funktioniert, ist völlig jungfräulich und du packst gleich dyn. DNS, Cloudflare und HAproxy davor? Und ich nehme an, du hast so etwas auch noch nicht allzu oft gemacht?
Genau. Ich bin gerade von einem Synology NAS auf Truenas umgestiegen. Leider ist das hinzufügen von Containern ins VPN (imho) ziemlich umständlich. Zusätzlich kommt es häufiger zu Verbindungsabbrüchen. Also wollte ich nun, da ich von einer Fritz!Box auf PFSense umgestiegen bin, meine Domain nutzen.
Nun läuft nur noch das zweite Offsite Backup über VPN.Mittlerweile kann ich auch mitteilen, dass alles funktioniert :)
Der 503 Fehler lag tatsächlich an Nextcloud. HAProxy musste als trusted Proxy eingetragen und https forciert werden. Macht man das nicht, bricht Nextcloud die Verbindung ab.Das ist mir aufgefallen, als ich testweise das Backend von Nextcloud auf Home-Assistant geändert habe und es plötzlich (mehr oder weniger) funktionierte.
Nun würde ich gerne noch einen Eintrag im DNS Resolver eintragen, um den Datenfluss nicht durch das Internet zu leiten, wenn ich im Lokalen LAN bin. Wie macht man das am besten? Normalerweise hätte ich einfach die lokale IP im Resolver überschrieben, allerdings kann ich dort keinen Port angegeben. Dank HaProxy wird Port 1337 ja auf 443 umgeleitet, im Resolver ist das nicht möglich.
Muss ich hier eventuell die interne HaProxy IP nutzen? -
@tsag said in Truenas (Nextcloud) -> Pfsense -> Cloudflare 522 (timeout):
Nun würde ich gerne noch einen Eintrag im DNS Resolver eintragen
Ich würde mir das in deinem Fall, wo das über HAproxy läuft, ersparen.
Du wirst doch keine Lust haben, im Browser immer den Port 1337 mitzugeben?Ohne DNS Override lösen deine internen Geräte die Nextcloud Domain auf deine WAN-IP auf. Dahin versuchen sie die Verbindung. Darauf lauscht der HAproxy und leitet die Verbindung zur Nextcloud, wie er es sonst auch tut.
Was fehlt?Du musst nur den Zugriff auf die WAN-IP von intern erlauben, falls du Public IPs irgendwie beschränkt hast oder alles auf "This Firewall" blockierst.
Edit:
Ah ja, mir ist eben eingefallen, dass du da Cloudflare eingebunden hast. Da kommt es drauf an, was Cloudflare für dich macht. Wenn es nur DNS ist, kein Problem. Wenn du allerdings deren Proxy verwendest, würde der Traffic von intern über Cloudflare und zurück laufen, was doch sinnfrei wäre. -
@viragomann said in Truenas (Nextcloud) -> Pfsense -> Cloudflare 522 (timeout):
Ich würde mir das in deinem Fall, wo das über HAproxy läuft, ersparen.
Du wirst doch keine Lust haben, im Browser immer den Port 1337 mitzugeben?Warum? Muss er doch nicht.
Ich würde wie folgt vorgehen:
- DNS Resolver den Host Eintrag der nextcloud auf die lokale IP der pfSense überschreiben
- Frontend, das du für WAN konfiguriert hast editieren
- Bei external address mit Pfeil runter eine zusätzliche IP/Port Kombi hinzufügen
- Die LAN Addresse + Port 443 mitgeben
- Dann solltest du WAN:1337 und LAN:443 quasi drinstehen haben
- Natürlich ggf. VORHER: WebUI der Sense muss dann logisch von 443 runter und der Redirect ausgemacht werden!!
- Voilà dein Proxy sollte jetzt extern auf <wan>:1337 und intern auf <lan>:443 hören
- Testen
Dann gehen Aufrufe egal von wo immer über den Proxy (was relevant sein kann wenn es sonst Probleme wegen Zertifikat, HTTP vs HTTPS etc. gibt o.ä.)
Wenn du aber intern auf der NC eh auch ein gültiges Zertifikat laufen hast/hättest, dann könntest du auch die Aufrufe von deiner Domain auf die entsprechende/n IP/s einfach per Port Forward auf dem LAN abfangen und auf die Nextcloud Kiste umleiten ohne Proxy. Ist aber die Frage ob das in deinem Setup mehr Sinn macht als über Proxy oder nicht. Wollte es aber nicht unerwähnt lassen :)
Cheers
-
@jegr
Und wofür das Ganze?Wenn der Nextcloud Hostname ohnehin auf die WAN IP auflöst, ist das alles überflüssig.
Dem HAproxy ist es dann gleichgültig, ob die Anfrage aus dem Internet oder aus dem LAN oder von sonst wo daher kommt. Alles, was an IP und Port geht, an welchen er lauscht und nicht vorher schon von der Firewall geblockt oder umgeleitet wird, wird im Frontend verarbeitet.Mehr Konfigurationszeilen halte ich auch nicht wirklich für schöner.
Aber dazu gibt es vielleicht unterschiedliche Ansichten. Natürlich könnte man auch ein zusätzliches Frontend dafür einrichten, wenn man das mag. -
@viragomann said in Truenas (Nextcloud) -> Pfsense -> Cloudflare 522 (timeout):
Dem HAproxy ist es dann gleichgültig, ob die Anfrage aus dem Internet oder aus dem LAN oder von sonst wo daher kommt. Alles, was an IP und Port geht, an welchen er lauscht und nicht vorher schon von der Firewall geblockt oder umgeleitet wird, wird im Frontend verarbeitet.
Gibt es dann aber nicht das "NAT-Nadelöhr", wenn man von einer privaten IP auf die öffentliche WAN-Adresse zugreift oder umgeht der ha-proxy das irgendwie?
-
@bob-dig said in Truenas (Nextcloud) -> Pfsense -> Cloudflare 522 (timeout):
Gibt es dann aber nicht das "NAT-Nadelöhr"
Ein Nadelöhr im Zusammenhang mit NAT kenne ich nicht. Was meinst du?
Problem mit NAT ist typischerweise, dass die Regel am WAN definiert ist und sich nicht auf Paket auswirkt, die an einem anderen Interface reinkommen.
Um das abzudecken gibt es dann NAT-Reflection.Zusammen mit HAproxy wird aber NAT nicht verwendet. Die Weiterleitung an die jeweilige interne IP macht dann ja der Proxy.
Wenn der Revers-Proxy also auf WAN-IP:443 lauscht, darf (am WAN) keine NAT-Regel für dieses Ziel aktiv sein. Dies würde den Proxy umgehen, weil NAT-Regeln erst angewendet werden.
Ist aber praktisch zum Testen. Regel einfach aktivieren oder deaktivieren.Auf die pfSense kannst du mit jeder ihr zugewiesenen IPs zugreifen. Das gilt genereall auch für andere Systeme, doch bei einem Router / Gateway kommt dazu, dass alle Pakete an IPs außerhalb des Subnetzes auch dahin geschickt werden und dieser damit alles abbekommt.
Daher ergibt sich auch die Gefahr, dass die WebGUI aus Gäste-Netzen erreichbar ist, wenn man any public IPs erlaubt aber keine Block-Regel anlegt. -
@viragomann
Hey, Ich wollte das nochmal aufgreifen, da mir aufgefallen ist, dass auch lokal anscheinend der ganze Traffic übers Netz geleitet wird.Wenn ich bspw. meinen Nextcloud Client auf dem Rechner mit meiner Domain angebe -> cloud.mydomain.de wird der Traffic dann wohl auch Übers PC -> Pfsense -> Internet -> Cloudflare -> Pfsense -> Server geleitet, oder?
Gibt es eine Möglichkeit, dass PFSense/HAProxy das Lokal löst?
Ich könnte es zwar über den LAN DNS Server über den Hostname erreichen, allerdings kann dieser keine Ports auflösen. Mein Nextcloud läuft bspw. auf 192.168.1.2:1337, was in HAProxy auch eingetragen ist, sodass ich direkt über meine Domain (ohne Port) darauf zugreifen kann. Beim Hostname muss ich immer den Port mit angeben. -
@tsag
Kein DNS Server kann Ports auflösen, natürlich auch nicht die pfSense.Wenn die Umsetzung auf den Port des Webservers HAproxy macht, dann richte auf deinem internen DNS einen Override ein, der zum Proxy zeigt.
-
@tsag said in Truenas (Nextcloud) -> Pfsense -> Cloudflare 522 (timeout):
Gibt es eine Möglichkeit, dass PFSense/HAProxy das Lokal löst?
Ich könnte es zwar über den LAN DNS Server über den Hostname erreichen, allerdings kann dieser keine Ports auflösen. Mein Nextcloud läuft bspw. auf 192.168.1.2:1337, was in HAProxy auch eingetragen ist, sodass ich direkt über meine Domain (ohne Port) darauf zugreifen kann. Beim Hostname muss ich immer den Port mit angeben.Verstehe das Problem nicht ganz. Warum sollte dein interner Traffic extern über Cloudflare laufen (müssen)?
Trag doch einfach als IP in DNS der Sense die IP des HAproxys ein - der schickt das doch dann auf :1337 weiter ohne dass du mit Ports rumbasteln musst genauso wie von extern auch?