nginx reverse proxy vraag

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 5250
Lid geworden op: 10 maa 2010, 12:30
Uitgedeelde bedankjes: 64 keer
Bedankt: 526 keer
Recent bedankt: 12 keer

Wat probeer ik: vanaf mijn pc een url aanroepen op de raspberry die vervolgens de request proxy'd naar (in dit geval) een bbox.
Wat is de bedoeling: dat ik op mijn pc, via de proxy, de login pagina van de bbox krijg.

Opbouw url: http://raspberry/?cpe=IPVANMODEM
Reden: IPVANMODEM is de upstream voor de proxy, en is dynamisch zodat ik ook andere gui's kan proxy'en

Wat heb ik:

Code: Selecteer alles

  proxy_cache_path /tmp/nginx levels=1:2 keys_zone=CACHE1:10m inactive=24h max_size=1g;
server {
        listen 80 default_server;
        resolver 8.8.8.8;
        root /var/www/html;
        index index.html;
        server_name proxypi;
     location / {
        proxy_cache CACHE1;
        proxy_intercept_errors on;
        recursive_error_pages on;
        error_page 301 302 307 = @handle_redirect;
        set $up $arg_cpe;            
        proxy_redirect    off;    
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $host;
        proxy_pass http://$up$uri;


   }
    location @handle_redirect {
        proxy_cache CACHE1;
        proxy_intercept_errors on;
        recursive_error_pages on;
        error_page 301 302 307 = @handle_redirect;
        set $saved_redirect_location '$upstream_http_location';
       proxy_pass $saved_redirect_location;
    }
}
Wat is het probleem:

ik kan een statische pagina wel inladen (bv een css file), maar als de eindbestemming een redirect stuurt (dus bv naar zijn login pagina),
dan krijg ik de fout no host in upstream "/login.lp"

iemand toevallig een nginx expert? :)
beukernoot
Starter
Starter
Berichten: 1
Lid geworden op: 09 dec 2020, 12:36

Als ik jou was zou ik dit niet doen!


De interface van je modem/router exposen naar de WAN side is niet bepaald de aangeraden manier.

Ik zou eerder een Wireguard setup doen, eventueel OpenVPN, en jezelf zo over toegang tot je lokaal netwerk verschaffen!

Dan kan je gewoon over naar je lokaal gateway IP surfen vanop afstand en er wat mee prutsen wanneer nodig. Een andere manier die best fijn is; XOA of eerder, XCP-NG plus XOCE opzetten op een kleine server en er een virtuele windows installatie op zetten!

Zo kan je met een kleine proxy configuratie zoals je nu hebt, overal ter wereld "xoa.yourdomain.tld" laden, je aanmelden met 2FA, en vanop afstand een windows machine gebruiken, vanop afstand, vanop bijvoorbeeld een ipad of smartphone.

Deze windows installatie zal dan rechtstreeks deel uitmaken van je lokaal netwerk en zo kan je dus altijd aan alles binnen je lokaal netwerk zonder ook maar te moeten denken aan configuraties schrijven voor een proxy die je sowiesi beter in een docker container gebruikt!


Hopelijk is dit advies niet wat te overdreven :D Het is allemaal gratis software!

mvg,

Beukers
Paperclip
Starter
Starter
Berichten: 5
Lid geworden op: 06 jan 2021, 07:58

Jouw Host header staat dubbel, dat zal het probleem zijn
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 5250
Lid geworden op: 10 maa 2010, 12:30
Uitgedeelde bedankjes: 64 keer
Bedankt: 526 keer
Recent bedankt: 12 keer

beukernoot schreef:Als ik jou was zou ik dit niet doen!
De interface van je modem/router exposen naar de WAN side is niet bepaald de aangeraden manier.
ik zeg toch nergens dat ik hem naar de wan openzet?
Splitter schreef:Reden: IPVANMODEM is de upstream voor de proxy, en is dynamisch zodat ik ook andere gui's kan proxy'en
het idee is een soort man in the middle te maken om via vpn aan verschillende devices te kunnen, waarbij ze ook gewoon random toegevoegd kunnen worden in de dhcp pool.
reden dat het reverse proxy'd moet zijn is omdat ik het schaalbaar wil houden, zodat het bij bv vrienden gedropt kan worden, ik een vpn kan leggen naar de raspberry, in zijn eigen vpn netwerk, en zo vervolgens de devices kan beheren waar nodig.
Paperclip schreef:Jouw Host header staat dubbel, dat zal het probleem zijn
ik zie het, hij staat echter 2x gewoon als hetzelfde.
is helaas ook niet de oplossing (zal er wss ingeslopen zijn tijdens de x reeks aan aanpasingen en testen)
Gebruikersavatar
Sasuke
userbase crew
userbase crew
Berichten: 5526
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 238 keer
Bedankt: 467 keer
Recent bedankt: 6 keer

Ik ben niet mee met het Voordeel/nut van je opstelling ? Als het IP van de backends wijzigt, moet je toch steeds je nginx aanpassen ? Of zitten die vrienden allemaal met hetzelfde subnet en gateway ip’s ?
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 5250
Lid geworden op: 10 maa 2010, 12:30
Uitgedeelde bedankjes: 64 keer
Bedankt: 526 keer
Recent bedankt: 12 keer

de raspberry's, die via vpn tunnel met 1 centrale pi verbonden zijn, hebben natuurlijk altijd een gekend ip.
het is echter het einddevice zelf, dat je zou willen bereiken, waarvan het ip dynamisch moet doorgegeven kunnen worden zodanig dat je 1 of 10 toestellen kan bereiken zonder ooit de config of opstelling te wijzigen.


het idee is eigenlijk als volgt (keep in mind: schaalbaar, portable, en relatief idiot proof zijn doelstellingen):

-> 1 centrale locatie waar de vpn tunnels samekomen (neem bv een raspberry bij mij in zijn eigen vlan, en pritunl als software om de tunnels te beheren)
-> 1 raspberry bij kennis A en 1tje bij kennis B, beide telenet met een home gateway en dus intern hetzelfde subnet
-> de vpn's elkaar natuurlijk niet zomaar mogen kunnen bereiken (dus enkel resources op eigen netwerk: dus van kennis tot eigen raspberry)
-> bij de ene staat bv een voip telefoon en een camerasysteem, bij de andere bijvoorbeeld een maakt-niet-uit-wat (kan ff niets verzinnen) met een webinterface


de bedoeling is dan dat:
-> ik op een pc binnen mijn eigen netwerk kan vpn'en naar de raspberry die hier staat (met een eigen tunnel erheen)
-> vervolgens kan surfen naar http://raspberry
-> daar een overview pagina heb, met daar dan een overzicht van de toestellen in de eindnetwerken (tussen de raspberry's verstuurd via een simpele nmap)
-> op die pagina gewoon kan klikken op een link a la "http://raspberry/?cpe=IPVANTOESTEL"
-> mijn raspberry gaat dan vervolgens, via de raspberry aan de andere kant, surfen naar IPVANTOESTEL, en die gegevens terugsturen.

(ja, er is 1 stap niet helemaal mee uitgelegd hier, want je zit eigenlijk met een dubbele proxy, maar ik ben al blij als deel 1 volledig werkt)
Gebruikersavatar
Sasuke
userbase crew
userbase crew
Berichten: 5526
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 238 keer
Bedankt: 467 keer
Recent bedankt: 6 keer

Ok, ik zie wat je wil bekomen. Lijkt me wel nogal omslachtig, maar eens het werkt inderdaad eenvoudig qua maintenance. In principe als je je nmap output kan vertalen, via script, naar je nginx proxy config en die statuspagina is het dynamisch ook en maakt het remote subnet niet meer uit.

Ik zou het wel eerder met SSH tunnels doen, maar ok, vpn en nginx kan ook :-) ik zou geen openvpn gebruiken wel.

Zal eens zien of ik dat kan testen met nginx.
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Plaats reactie

Terug naar “Development”