Nginx Proxy Manager - Konfigurationsproblem

Hallo zusammen,

ich habe meinen NginxProxyManager nicht über HA installiert sondern als Ubuntu-VM auf meiner Synology Diskstation. Die Konfiguration ist folgende:

Fritzbox (192.168.178.1) mit ext. fester IP-Adresse und DHCP-Server
NginxProxy (192.168.178.2) wie gesagt als VM auf Synology
HomeAssistant-Server: 192.168.178.3
DNS-Server (192.168.178.4) als Dienst auf Synology-Diskstation

Für meine Subdomain ha.meinedomain.de habe ich einen A-Record-Eintrag gesetzt, im DNS-Server auf der Syno existiert ein Eintrag für ha.meinedomain.de.

Mein Nginx-Proxy-Eintrag schaut wie folgt aus:
Domain Name: ha.meinedomain.de
Sheme: http
Forward IP: 192.168.178.3
Forword Port: 8123
Block Common Exploits: JA
SSL: ja, Force SSL ja, HTTP/2 Support ja, HSTS Enabled ja

Surfe ich nun meine Subdomain von extern an, lande ich wunschgemäß mit SSL-Verschlüsselung auf meiner HomeAssistant-Instanz. Alles gut :o)

Komme ich nun von intern über (W)LAN, lässt sich die Subdomain per ping korrekt auf die IP-Adresse auflösen. Der DNS Server arbeitet scheinbar korrekt. Die Home Assistant Instanz ist aber nicht erreichbar und lädt nicht. Surfe ich die IP-Adresse an, öffnet sich HA Instanz.

Habe ich hier einen Denkfehler oder wo kann das Problem liegen ?

LG Markus

Hast du in HA in der config einen Eintrag für den Reverse Proxy gemacht?

Nein, der Eintrag war tatsächlich nicht gesetzt, habe ich aber gerade nachgeholt, jedoch ohne Erfolg (nach einem Neustart).

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.178.2      # Add the IP address of the proxy server
    - 255.255.255.0/24  # You may also provide the subnet mask

Das scheint aber auch kein reines HA-Problem zu sein, da auch meine anderen Einträge im nginx-Proxy von intern nicht über den DNS Namen erreichbar sind. Ping auf den Namen bei den anderen Adressen funktioniert allerdings.

Wie greifst du denn auf zu? Bzw was ist genau das Problem?

Nutze das Addon Nginx Proxy Manager und komme extern wie intern drauf.

Hi,
von extern ist, wie gesagt, alles in Ordnung, greife ich von intern über den DNS-Namen drauf zu bekomme ich:
Screenshot 2023-11-23 212843

Gehe ich über die interne IP-Adresse wird HA korrekt geladen.

Ah ok, verstehe. Denke das wird ein DNS/Routing Problem sein. Da kann ich dir leider nicht helfen.

Verwendest du einen DNS Proxy ? Dort müßtest du einen local DNS Eintrag für die Subdomain auf die lokale IP vom NPM setzen. Bei Adguard oder Pi-hole geht das, das weiß ich.

Nein, den habe ich nicht im Einsatz, nur den DNS Server welcher auf der Synology Diskstation läuft. Hier mal seine Konfiguration, vielleicht siehst Du ja einen Fehler:



auf welche IP Adresse zeigt dieser Eintrag im LAN? Vermutlich auf 192.168.178.x, oder? M.E. sollte es die gleiche IP Adresse wie im WAN sein, d.h. den Eintrag im lokalen DNS Server solltest wegnehmen.

Aus dem WLAN:

Ping wird ausgeführt für ha.xxxxxx.eu [192.168.178.3] mit 32 Bytes Daten:
Antwort von 192.168.178.3: Bytes=32 Zeit=5ms TTL=64
Antwort von 192.168.178.3: Bytes=32 Zeit=5ms TTL=64
Antwort von 192.168.178.3: Bytes=32 Zeit=5ms TTL=64
Antwort von 192.168.178.3: Bytes=32 Zeit=4ms TTL=64

Und der nginx Eintrag schaut so aus:

vermutlich darf ha.xxxxxx.eu im (W)LAN nicht auf [192.168.178.3] afulösen, sondern auf die gleiche Adresse wie im WAN / extern, also auf deine “fixe WAN IP Adresse”.

Versuch mal deine externe Domain (FQDN) in der Fritzbox beim DNS Rebind Schutz einzutragen.

Das hatte ich schon versucht, aber leider ohne Erfolg :frowning:

Nachtrag:
Ich habe mir für den NginxProxyManager zusätzlich noch GoAccess installiert. Da viel mir erstmal dass meine Konstellation ja gar nicht funktionieren kann. Der NPM wird ja nur bei extern angefragt und nicht bei intern.

Ich/der User kommt von Extern → Portfreigabe auf der Fritzbox auf den NginxProxyManager. Hier bekommt er die Information das es über die IP-/Port zur gewünschten Adresse geht. Das ist ja auch das, was bis jetzt immer funktioniert.

Komme ich von intern und rufe den DNS Namen auf, wird der DNS Server befragt und leitet zur entsprechenden IP weiter. Vom SSL-Protokoll bzw. von der entsprechenden Portangabe weiß der DNS Server doch gar nichts.

Bekommt man das überhaupt anders hin?

LG
Markus

:crayon:by HarryP: Zusammenführung Doppelpost

Nochmals: intern wie extern muss auf die gleich IP Adresse aufgelöst werden, nämlich auf die WAN Adresse.

Oh sorry, da hatte ich Dich falsch verstanden. Ich habe jetzt einmal den int. DNS-Server rausgenommen und nutze wieder die Fritzbox als DNS-Server. Ein Ping löst die den Namen korrekt auf die ext. IP-Adresse auf.

Auch das habe ich jetzt wieder gemacht (da nun vorher die Fehlermeldung mit dem DNS Rebind Schutz kam.)

Nun wird meine Anfrage von intern an die Anmeldeseite der Fritzbox weitergeleitet anstatt und nicht auf den NginxProxy.

Fehler gefunden: Websockets im NPM für den Hosteintrag aktiviert und schon läuft die Sache :o)

Im Screenshot oben war der Eintrag aber eh aktiviert.

Wie sieht die endgültige Konfiguration denn nun aus. Ich habe das gleiche Problem, extern funktioniert es, von intern lande ich auf der Fritzbox-Anmeldeseite. Websockets im NPM für den Hosteintrag sind aktiviert.

Wie trägt man bei einer dynamischen Adresse denn die WAN ein?

Ich würde intern besser auf die NPM-IP auflösen.