Reverse Proxy Adressen nur per LAN erreichbar machen

  • Moin zusammen,

    vielleicht könnt ihr mir ja den ein oder anderen Tipp geben.
    Ich habe bei mir zuhause unter Docker den nginx-proxy-manager laufen um die Reverse Proxy Adressen zu erstellen und die SSL-Zertifikate erstellen zu lassen, soweit so gut (funktioniert echt bestens)

    Nun habe ich aber auch Anwendungen, welche ich auch gerne mit einer Adresse wie bspw. portainer.xxxxx.xxx.de aufrufen möchte, jedoch nicht will das diese Adresse auch über den WAN Port, also das Internet erreichbar ist, sondern ausschließlich im Heimnetz (LAN + WLAN). Fällt euch hierzu eine Möglichkeit ein es entweder mit dem Proxy Manager zu machen oder auch über andere Wege?

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • https://docs.nginx.com/nginx/admin-gu…ss-proxied-tcp/

    Du kannst den Zugriff via Proxy config auf deine internen Netze beschränken.

    Ob du dies direkt über dieses Gui machen kannst, keine Ahnung, das Ding bietet zumindest "advanced configuration" an, mit irgendwelchen custom config files (laut deren Doku). Ich nutze nginx nur "nackt" mit config files und keinem Gui. Aber bei meinem Link siehst du, wie dies mit nginx funktioniert und gemacht wird.


    Edit: Der Cname etc. musst du natürlich wie bei den externen Dingen erstellen. Nginx lässt dann halt nur dein (internes) Netz durch :)

  • Danke dir für den Tipp.

    Durch die Suche nach dem entsprechenden Stichworten bin ich hier drauf gestoßen https://github.com/jc21/nginx-proxy-manager/issues/356 und es kann manchmal einfacher sein als man denkt....theoretisch.

    Grundsätzlich funktioniert es mit der Access Liste wunderbar, jedoch wird aktuell nur meine WAN-IP im Docker erkannt und nicht die LAN-IP.
    Gebe ich die WAN-IP von der Fritzbox frei, können alle LAN-Geräte zugreifen, alle WAN-Geräte landen auf 403.
    Dies funktioniert jedoch nur solange sich die IP-Adresse nicht ändert.

    Vielleicht noch ne Idee wie ich die internen IP-Adressen an den Container weiterreichen kann?

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • Ich glaube nicht, dass das nur mit einem Reverse Proxy geht, denn die Anfragen an den Proxy gehen ja in den meisten Fällen übers WAN. Hast du bei dir einen lokalen DNS Server laufen? Ohne diesen wird es meines Erachtens nach nicht gehen, denn die Namensauflösung muss ja auch lokal erfolgen.

  • Als DNS "Server" ist bei mir nur die Fritzbox da.

    Mal schauen, wollte ggf. eh mal pihole o.ä. Testen und soweit ich weiß haben die DNS Server mit integriert.

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • Aber was soll das denn auflösen? Deine Beispiele verstehe ich ehrlich gesagt nicht, kannst du die nochmal mit etwas aussagekräftigeren beschreiben? Abgesehen davon sollte man .local besser nicht verwenden, da es von anderen Diensten wie mDNS und ZeroConf genutzt wird. Ist im Heimnetzwerk vielleicht nicht so tragisch, aber zumindest sollte man das im Hinterkopf behalten.

  • Ja, ist richtig, vllt hab ich die Frage falsch verstanden, natürlich bedarf es eines dns servers der blib.local bekannt macht bzw auflöst.

  • Ah ok, dann passt es natürlich. Also sieht es ohne DNS Server eher schlecht aus, aber mit einem piHole sollte da was zu machen sein. Ansonsten hab ich es so gelöst, dass ich Heimdall benutze und dort alle meine Dienste verlinkt habe, somit kann ich leicht darauf zugreifen und brauche keine Adressen, die ich lokal nutzen kann.

  • Ja das wäre auch noch ne Alternative.
    Sowas wie Heimdall oder Organizr hab ich auch noch auf der "will ich mir mal anschauen Liste" stehen.

    Hach, Docker ist schon was schönes.

    Solange nur ich die ganze Dienste nutze/verwalte habe ich auch keine Probleme mit den Ports, aber Frau und Kind haben se [ag]

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • Grundsätzlich funktioniert es mit der Access Liste wunderbar, jedoch wird aktuell nur meine WAN-IP im Docker erkannt und nicht die LAN-IP.


    Kannst du mir dies ausführlicher beschreiben?
    Wenn deine Fritzbox interne Ips vergibt (sprich dein PC hat z.b. 192.168.1.2), dann sollte es z.b.

    allow 192.168.1.0/24
    deny all

    Als Access sein.
    Erstes erlaubt dein internes Netz zuzugreifen.
    Zweiteres verbietet es dem Rest.


    Hier PR #360 hast du sonst ein paar Beispielsscreenshots. Die Example List ist z.b. genau was du haben willst.

    Ob du da noch was mit der Fritzbox beachten musst, weiss ich persönlich nicht, nutze keine und DHCP/DNS macht mein Pi-Hole.

  • Schon korrekt deine Ausführung mit dem Netzbereich zum freigeben.

    Wenn ich jetzt aus'm LAN heraus jedoch bspw. Nextcloud.xxxxx.ddnss.de Aufrufe erkennt der proxy Manager nicht die LAN IP, sondern die WAN IP, somit greift die Freigabe vom LAN Bereich leider nicht.

    Zu piHole:
    Ich hatte den vor ca. nem 1-1, 5 Jahren schon einmal kurzzeitig laufen und mind. Als DHCP Server kann man den laufen lassen, als DNS kann man ihn definitiv laufen lassen, denn darüber handhabt er ja seine ganzen überwachungen etc.

    DHCP kann er aus dem Grund, wenn man bspw. einen Router vom Anbieter hat (Kabel Netz), kann man dort keine eigenen DNS Server eintragen und somit leider auch bspw. kein pihole.
    Somit muss man in dem Szenario den DHCP Server vom Router deaktivieren und ihn im pihole aktivieren. Alternativ kann man natürlich auch alles auf Standard lassen und an allen Clients den pihole manuell als DNS Server eintragen.

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • Solange nur ich die ganze Dienste nutze/verwalte habe ich auch keine Probleme mit den Ports, aber Frau und Kind haben se [ag]


    Was du machen könntest, wäre den Reverse Proxy so einzustellen, dass der Port durch einen Ordner ersetzt wird. Zum Beispiel so: http://192.168.x.x/portainer/. Ist zwar jetzt auch nicht schön, aber zumindest einfacher zu merken, wenn man in der Materie nicht drin steckt.

    Leider kenne ich den Proxy Manager nicht, ich mache bei mir alles mit dem SWAG Container von linuxserver.io. Da reicht es, die Basiskonfiguration zu nehmen.

  • Ja, ich habe völlig ignoriert, dass wir ja von nem Docker Container sprechen :D

    Habe kurz zur Fritzbox gegoogled, scheint wohl von Haus aus nicht zu gehen (ohne tiefer in die Innereien zuzugreifen)

    Du hast somit folgende Möglichkeiten:

    Host network Option verwenden (hat Vor und Nachteile, grösster Nachteil, du kannst die restlichen Container nicht mehr via hostnamen ansprechen, müsstest also jeweils die Konfig zu IPs ändern, falls du es mit hostnamen gemacht hast. Port 80/443 muss benutzbar sein etc)
    https://docs.docker.com/network/host/

    - Bin ich persönlich kein Fan, ich nutze lieber hostnamen, somit bleibt die Konfig immer gleich, egal wohin ich meine Dockerumgebung umziehe.

    Dein Hostnamen manuell in die Host Datei deines PCs eintragen

    - Nachteil, da du dies für jeden Client machen musst, wird schnell kompliziert, wenn es zu Phones/Tablets etc kommt. Musst du bei jeder Neuinstallation manuel wieder machen.

    Einen eigenen DNS Server.

    - Wie du richtig siehst, Pihole wäre da z.b. eine Option. Da findest du bestimmt gute, detailierte Anleitungen, wie du dies in Verbindung mit einer Fritzbox machst. (learning by doing, iwann suchst du beim Routerkauf nach solchen Kriterien aus, ob DNS eintragbar etc. :D)


    tl;dr Schaff dir ein Pi-Hole an. Wenn du deine Proxy Manager Konfig ohne testen willst, eintragen in die Host Datei (reboot nicht vergessen bei Windows)
    Um alles optisch schön zu verwalten setze ich Organizr ein.


    Edit: Was kingbuzzzo vorschlägt bringt nix, da die Anfrage trotzdem von dem bride network von Docker kommt.

  • Ich bin mir jetzt nicht ganz sicher, aber wäre das Problem beim Host Modus nicht genauso vorhanden? Auch wenn der Container eine IP aus dem Netzwerk hat, gehen die Proxy Anfragen ja trotzdem hier erstmal durchs WAN. Alles was am Proxy ankommt hat somit die externe IP Adresse und es kann weiterhin nicht sinnvoll gefiltert werden.

    Die Host Datei würde ja auch nur funktionieren, wenn die Docker im Host Modus laufen oder?

    tl;dr ist aber auch bei mir: Schaff dir einen Pi-Hole an :D

  • Ich bin mir jetzt nicht ganz sicher, aber wäre das Problem beim Host Modus nicht genauso vorhanden? Auch wenn der Container eine IP aus dem Netzwerk hat, gehen die Proxy Anfragen ja trotzdem hier erstmal durchs WAN. Alles was am Proxy ankommt hat somit die externe IP Adresse und es kann weiterhin nicht sinnvoll gefiltert werden.

    Die Host Datei würde ja auch nur funktionieren, wenn die Docker im Host Modus laufen oder?

    tl;dr ist aber auch bei mir: Schaff dir einen Pi-Hole an :D


    Host Modus nutzt zwar das Hostnetzwerk, ist aber ein guter Einwand, die zugreifende IP wäre dann wohl die Fritzbox. (spät Nachts an sowas rumdenken :D )

    Nein, Host Datei müsste soweit funktionieren, weil du die DNS Auflösung ja lokal auf dem Client machst und somit auf die lokale IP zugreifst. Aber jetzt wo du fragst, wie das Cert in so einem Fall reagiert, müsste ich ausprobieren, Kopf zu müde grad :D

    tl;dr ja, die Lösungen sind alle "Basteln" Pihole ftw.

  • Das Problem mit der Host Datei wären ja die Ports. Meines Wissens nach kann man keine Ports in die Hosts Datei eintragen (hat auch bei mir auf macOS nicht geklappt).

    würdest du ja mit protocol angabe (https) umschiffen.
    Kollege meint mit Traefik (sowas wie Swag und der hier benutzte Container) sollte es gehen, wir tüfteln gerade rum, da ein tcp package kommt auch im Docker Container mit der korrekten IP an. (Der Test container nimmt nicht die Source IP, sondern "faked" it und übernimmt den HTTP Request.) Bloss Nginx wirft n Error aus, weils nicht aus dem bridged Network kann.


    Edit: Benny, kannst du den Docker Container neu generieren? Schau https://github.com/nginx-proxy/nginx-proxy/issues/133 hier den untersten Post. Ich kanns leider nicht testen, da meine Dockerversion bloss bis 3.7 geht.

  • Ah ich hatte vermutlich einen Denkfehler. Ich bin von Subdomains ausgegangen, damit würde es meines Erachtens schwierig werden. Wenn man aber die Folder Variante nimmt, klappt es in der Tat einwandfrei. Problematisch sind natürlich die Host Dateien auf Mobilgeräten.

    Edit: Der Github Link dürfte auch nicht helfen, denn Benny sieht ja die richtige Remote IP, genau das ist ja mehr oder weniger sogar das Problem das Problem. Das Problem ist doch einfach, dass wenn du keinen DNS Server hast, der dir die Subdomains in lokale IP Adressen auflöst, der Weg immer Remote übers WAN geht und dann greifen die lokalen IP Beschränkungen nicht. Ich wüsste nicht, wie da rum kommen kannst.

  • Ich schau mir das mal bei Gelegenheit an.

    Das mit dem Real IP Header musste ich bspw. in meinem Bitwarden Container eintragen, da dieser sonst immer nur die IP vom docker Netzwerk in die Log Dateien eingetragen hatte und somit mein fail2ban nicht greifen konnte.

    Denke in Summe werde ich mit nem eigenen DNS Server am besten laufen.

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!