pete55
Goto Top

Zugriff auf Nextcloud aus dem LAN und Internet

Hallo Zusammen,

hab mal wieder einen Knoten im Kopf, hier mein Netzwerkaufbau:

dmz

Nextcloud soll sowohl aus dem LAN als auch aus dem Internet erreichbar sein.
Dazu habe ich in der OPNsense ein Port Forward für die Ports 80 & 443 eingerichtet, damit erreiche ich die Nextcloud unter
'meinedomain.de/nextcloud' .
Aus dem LAN erreiche ich die Nextcloud über
'meinserver.meinedomain.de/nextcloud' ,
da ich dies so als Override in Unbound DNS der OPNsense eingetragen habe.

Nun möchte ich meine Nextcloud sowohl aus dem Internet als auch aus dem LAN unter der gleichen Domain 'meinedomain.de/nextcloud' erreichen können, wobei der Aufruf aus dem LAN nur intern und nicht extern übers Internet geleitet werden soll.

Wie stelle ich das am besten an?

VG Pete

Content-Key: 1633294699

Url: https://administrator.de/contentid/1633294699

Printed on: April 27, 2024 at 07:04 o'clock

Member: StefanKittel
StefanKittel Dec 18, 2021 at 10:15:10 (UTC)
Goto Top
Hallo,

das ganze nennt sich split DNS.
Du muss Deinem DNS-Server "nur" sagen, dass "meinedomain.de" unter 192.168.2.x erreichbar ist.
Dadurch allerdings kannst Du auf alles mit dieser Domäne nicht mehr zugreifen was außerhalb ist.

Tipp. Erstelle einen Hostnamen wie "nextcloud.meinedomain.de".
Dann gibt es diesen Nachteil nicht mehr.

Wir ganz häufig bei Firmen mit z.B. einem Exchange-Server verwendet.

Stefan
Member: Spirit-of-Eli
Spirit-of-Eli Dec 18, 2021 updated at 11:38:11 (UTC)
Goto Top
Moin,

<del>schalte mal für das Portforwarding "Pure NAT" ein. Das geht wahrscheinlich auch in der Regel dazu. Sollte bei der Osense identisch zur PfSense sein. </del>

Sorry, habe die Fritzbüchse übersehen. Dann geht nur erstgenannte Variante.

Gruß Spirit
Member: incisor2k
incisor2k Dec 18, 2021 at 12:04:18 (UTC)
Goto Top
Habe das exakt so am laufen. Noch einfacher wirds, wenn du den HAProxy einsetzt, der kann sich dann gleich um die Zertifikate kümmern.
Top Tutorial dazu hier:

https://schulnetzkonzept.de
Member: Pete55
Pete55 Dec 18, 2021 at 12:59:27 (UTC)
Goto Top
Zitat von @StefanKittel:

Hallo,

das ganze nennt sich split DNS.

Du muss Deinem DNS-Server "nur" sagen, dass "meinedomain.de" unter 192.168.2.x erreichbar ist.
Dadurch allerdings kannst Du auf alles mit dieser Domäne nicht mehr zugreifen was außerhalb ist.

Tipp. Erstelle einen Hostnamen wie "nextcloud.meinedomain.de".
Dann gibt es diesen Nachteil nicht mehr.


Genau so habe ich es versucht und habe dazu unter Unbound DNS -> Overrides folgenden Eintrag gemacht:
nextcloud.mydomain.de mit der lokalen IP des Servers auf dem Nextcloud läuft.
Damit Nextcloud auch von extern erreichbar ist, habe ich einen A-Record ( ich nutze desec.io) gesetzt:
nextcloud.mydomain.de mit der WAN IP der OPNsense und mittels Port Forward die Ports 80 & 443 auf den lokalen Nextcloud Server weitergeleitet.

Das Problem ist, sobald ich für den Zugriff von außen den A-Record anlege, erreiche ich vom LAN meine Nextcloud nicht mehr ("Seiten-Ladefehler"), und ich verstehe nicht warum?

Nach meinem Verständnis davon wird bei einem Aufruf der URL nextcloud.mydomain.de der DNS Server von desec.io nach der IP befragt und damit an den WAN Port meiner OPNsense weitergeleitet, welche dann die Anfrage aufgrund des Port Forward an den Nextcloud Server durchgeleitet wird.
Bei einem Aufruf von nextcloud.mydomain.de aus dem LAN wird die IP von dem Unbound DNS der OPNsense aufgelöst und sollte damit die Anfrage intern an den Nextcloud Server weiterleiten, aber da hängst dann wie oben beschrieben?

Wir ganz häufig bei Firmen mit z.B. einem Exchange-Server verwendet.

Stefan
Member: aqui
aqui Dec 18, 2021 updated at 13:20:46 (UTC)
Goto Top
Typisches NAT Hairpin (NAT Reflection) Problem wenn du von intern via DNS der öffentlichen IP gehst.
OPNSense routing
https://en.wikipedia.org/wiki/Network_address_translation#NAT_loopback
Musst du entsprechend im NAT Router anpassen.
Member: incisor2k
incisor2k Dec 18, 2021 at 13:15:51 (UTC)
Goto Top
Was für eine IP bekommst du denn, wenn du deine domain mal anpingst?!
Member: Pete55
Pete55 Dec 18, 2021 at 13:17:30 (UTC)
Goto Top
Zitat von @incisor2k:

Habe das exakt so am laufen. Noch einfacher wirds, wenn du den HAProxy einsetzt, der kann sich dann gleich um die Zertifikate kümmern.
Top Tutorial dazu hier:

https://schulnetzkonzept.de

Dies war meine ursprüngliche Idee, allein schon wegen des Handlings der Let's Encrypt Zertifikate.
Aber HAProxy ist für mich völliges Neuland und um ehrlich zu sein, ich habe schon mehrere Tage gebraucht nur um rauszufinden was HAProxy eigentlich ist und das auch nur in groben oberflächlichen Zügen.
Die ganzen Howtos die ich dazu gefunden habe, auch das og., beschreiben was man wo einstellen soll, aber damit habe ich es bei mir nicht umgesetzt bekommen und warum was so konfiguriert wird, also die technischen Zusammenhänge werden leider nirgendwo so erläutert dass es ein HAProxy Anfänger verstehen kann. Ich würde es gerne verstehen, aber ich finde irgendwie keinen Zugang zu dem Thema.

VG
Member: aqui
aqui Dec 18, 2021 updated at 13:22:01 (UTC)
Goto Top
Was für eine IP bekommst du denn, wenn du deine domain mal anpingst?!
Sollte ja immer die öffentliche IP am WAN Port der FritzBüx sein.
Es sei denn er biegt den internen Proxy DNS der OPNsense so um das der ihm von intern die interne IP auf die Domain liefert. face-wink
Member: incisor2k
incisor2k Dec 18, 2021 at 13:23:47 (UTC)
Goto Top
und ich dachte, genau das hätte er gemacht?!
Member: Pete55
Pete55 Dec 18, 2021 at 13:26:58 (UTC)
Goto Top
Zitat von @incisor2k:

Was für eine IP bekommst du denn, wenn du deine domain mal anpingst?!

Wenn ich aus dem LAN nextcloud.mydomain.de anpinge, dann bekomme ich eine Antwort und die lokale IP des Nextcloud Servers wird auch richtig aufgelöst.
Wenn ich aus dem Internet nextcloud.mydomain.de anpinge, dann bekomme ich keine Antwort weil OPNsense ICMP auf dem WAN Port nicht beantwortet, aber die öffentliche IP wird richtig aufgelöst.
Sieht soweit in Ordnung aus?
Member: Pete55
Pete55 Dec 18, 2021 updated at 13:41:48 (UTC)
Goto Top
Zitat von @aqui:

Was für eine IP bekommst du denn, wenn du deine domain mal anpingst?!
Sollte ja immer die öffentliche IP am WAN Port der FritzBüx sein.
Nee, die öffentliche IP der OPNsense sollte doch zurückgegeben werden, nach meinem Verständnis ist das so:
Der LAN Port der Fritzbox an der die OPNsense hängt ist als sog. Exposed Host konfiguriert und am WAN Port der OPNsense ist die öffentliche IP gesetzt. D.h. Anfragen an meine öffentliche IP werden von der Fritze direkt an die OPNsense weitergeleitet, die Fritze funktioniert in diesem Fall nur wie ein Modem. Deshalb wird bei einem ping auf die domain die öffentliche IP der OPNsense zurückgegeben.
Es sei denn er biegt den internen Proxy DNS der OPNsense so um das der ihm von intern die interne IP auf die Domain liefert. face-wink
Ja, wie oben beschrieben, wird via Overrides unter Unbound DNS die Domain für interne Aufrufe intern weitergeleitet.
Member: incisor2k
incisor2k Dec 18, 2021 at 13:45:15 (UTC)
Goto Top
Also wenn dein interner DNS brav die Domain in die lokale IP umsetzt ists ja schon mal die halbe Miete.
Was ich nicht verstehe ist, was ein öffentlicher A Eintrag dann mit deinem internen Client zu tun haben will.
Wenn du den A Eintrag setzt, kannst du dann von extern auf NC zugreifen?
Member: Pete55
Pete55 Dec 18, 2021 at 15:45:37 (UTC)
Goto Top
Zitat von @incisor2k:

Also wenn dein interner DNS brav die Domain in die lokale IP umsetzt ists ja schon mal die halbe Miete.
Was ich nicht verstehe ist, was ein öffentlicher A Eintrag dann mit deinem internen Client zu tun haben will.
Ja, das ist der Punkt den ich auch nicht verstehe.
Wenn du den A Eintrag setzt, kannst du dann von extern auf NC zugreifen?
Ja, der Zugriff von außen klappt damit.

Habe eine weitere Beobachtung machen können:
In Ermangelung eines Mobilfunknetzes vor Ort, nutze ich ein VPN (NordVPN) um den Zugriff von außen zu testen, dabei konnte ich wiederholt folgendes beobachten. Wenn ich aus dem LAN nextcloud.mydomain.de/nextcloud aufrufe funktioniert die interne Verbindung. Danach stelle ich eine VPN Verbindung her und rufe von 'extern' die domain nextcloud.mydomain.de/nextcloud auf, das funktioniert ebenfalls. Wenn ich dann aber die VPN Verbindung trenne, funktioniert der Zugriff von 'intern' nicht mehr - vielleicht liegt da der Hase im Pfeffer?
Member: Pete55
Solution Pete55 Dec 18, 2021 at 18:40:30 (UTC)
Goto Top
Ich hab das Problem gefunden.
Nachdem ich verschiedene Browser, Rechner, Tablets usw. ausprobiert hatte, war klar das es an meinem Browser liegen mußte. Bei meinem Firefox war 'DNS über HTTPS' aktiviert, nach dem ich es deaktiviert hatte funktionierte die Verbindung extern wie intern, so wie es von Anfang an hätte sein sollen - was ein Ärger face-sad

Vielen Dank für Eure Hilfestellung!

VG Pete
Member: incisor2k
incisor2k Dec 18, 2021 at 18:57:11 (UTC)
Goto Top
Ja prima, so kommt man auch auf die Lösung face-wink

Als gelöst markieren nicht vergessen.