- Mitglied seit
- 23 Apr 2012
- Beiträge
- 406
- Punkte für Reaktionen
- 2
- Punkte
- 18
Hallo zusammen,
ich möchte gerne die Weboberfläche(n) meiner Fritzbox(en) über einen Nginx-Reverseproxy erreichbar machen, bin dabei aber über ein paar Fallstricke gestolpert. Hat so eine Konstellation zufällig noch jemand im Einsatz?
Erster Fallstrick war, der Reverseproxy lief über HTTPS und hat die Anfrage per HTTP an die Fritzbox weitergeleitet. Damit konnte man allerdings Telefoniegeräte und SIP-Rufnummern nicht mehr bearbeiten (man wurde einfach wieder auf die Startseite umgeleitet). Habe dann rausgefunden dass die Fritzbox da einen Redirect auf eine HTTP-Seite schickt (was der Browser dann nicht mag), anstatt einen Protokollunabhängigen Redirect zu machen. Den habe ich dann im Reverseproxy repariert (siehe Spoiler) und seitdem scheint alles zu laufen.
Die zweite "Falle" auf die ich gerade gestoßen bin (und die weshalb ich hauptsächlich diesen Thread erstellt habe), ist, dass im Ereignislog der Fritzbox dann für jede Anmeldung nur noch die IP-Adresse des Reverse-Proxy drin steht. Eigentlich hatte ich erwartet, dass da die "üblichen" Header wie X-Real-IP oder X-Forwarded-For ausreichen, dass die Fritzbox die korrekte IP (oder zumindest beide, die vom Proxy und die im Header) im Ereignislog anzeigt - das ist offensichtlich nicht der Fall.
Google war auch keine große Hilfe, 99% der Treffer beziehen sich entweder auf die Frage, ob die Fritzbox einen Reverseproxy hat (damit mehrere Clients sich den Port 80/443 teilen können), oder wie man hinter der Fritzbox einen Reverseproxy für andere Dienste, nicht die Fritzbox betreibt.
Hat so eine Konstellation (Fritzbox-UI hinter Nginx) noch jemand im Einsatz und kennt zufällig irgendeinen Trick oder versteckten Parameter, mit der die Fritzbox die richtige IP anzeigt? In einem Einstellungs-Export im Bereich "webui" habe ich bisher nichts gefunden was danach aussieht. Oder muss ich mit der falschen IP-Adresse im Log leben? Wäre jetzt auch nicht sooo dramatisch, ich kann ja auch im Nginx dann loggen wann welche Zugriffe von welcher IP passieren.
ich möchte gerne die Weboberfläche(n) meiner Fritzbox(en) über einen Nginx-Reverseproxy erreichbar machen, bin dabei aber über ein paar Fallstricke gestolpert. Hat so eine Konstellation zufällig noch jemand im Einsatz?
Erster Fallstrick war, der Reverseproxy lief über HTTPS und hat die Anfrage per HTTP an die Fritzbox weitergeleitet. Damit konnte man allerdings Telefoniegeräte und SIP-Rufnummern nicht mehr bearbeiten (man wurde einfach wieder auf die Startseite umgeleitet). Habe dann rausgefunden dass die Fritzbox da einen Redirect auf eine HTTP-Seite schickt (was der Browser dann nicht mag), anstatt einen Protokollunabhängigen Redirect zu machen. Den habe ich dann im Reverseproxy repariert (siehe Spoiler) und seitdem scheint alles zu laufen.
Code:
map $upstream_http_location $m_replaceme {
"" "";
"~^http(.*)$" "https$1";
}
...
proxy_hide_header Location;
add_header Location $m_replaceme;
Die zweite "Falle" auf die ich gerade gestoßen bin (und die weshalb ich hauptsächlich diesen Thread erstellt habe), ist, dass im Ereignislog der Fritzbox dann für jede Anmeldung nur noch die IP-Adresse des Reverse-Proxy drin steht. Eigentlich hatte ich erwartet, dass da die "üblichen" Header wie X-Real-IP oder X-Forwarded-For ausreichen, dass die Fritzbox die korrekte IP (oder zumindest beide, die vom Proxy und die im Header) im Ereignislog anzeigt - das ist offensichtlich nicht der Fall.
Google war auch keine große Hilfe, 99% der Treffer beziehen sich entweder auf die Frage, ob die Fritzbox einen Reverseproxy hat (damit mehrere Clients sich den Port 80/443 teilen können), oder wie man hinter der Fritzbox einen Reverseproxy für andere Dienste, nicht die Fritzbox betreibt.
Hat so eine Konstellation (Fritzbox-UI hinter Nginx) noch jemand im Einsatz und kennt zufällig irgendeinen Trick oder versteckten Parameter, mit der die Fritzbox die richtige IP anzeigt? In einem Einstellungs-Export im Bereich "webui" habe ich bisher nichts gefunden was danach aussieht. Oder muss ich mit der falschen IP-Adresse im Log leben? Wäre jetzt auch nicht sooo dramatisch, ich kann ja auch im Nginx dann loggen wann welche Zugriffe von welcher IP passieren.