Puncte:0

Modul de acces NGINX și DNS intern: Cum să permiteți numai clienți locali

drapel cn

Am căutat prin serverfault, dar nu am găsit un răspuns la asta. Poate că pur și simplu nu știu cuvântul cheie potrivit sau este o neînțelegere conceptuală. Orice ajutor ar fi apreciat!

Situatia:

  1. Serviciile mele locale rulează în spatele unui proxy invers NGINX
  2. Eu folosesc a LAN DNS pe router (Draytek) pentru a rezolva cererile locale către *.example.com direct pe serverul meu local (192.168.1.2).

Chiar dacă nu există conexiune la internet, domeniile vor fi rezolvate pe serverul local și toate serviciile sunt accesibile. De aceea folosesc DNS-ul LAN. Până acum, bine.

Acum vreau să permit doar clienților locali să acceseze anumite servicii utilizând Modulul de acces NGINX cu:

permite 192.168.1.0/24;
nega totul;

Dar NGINX vede doar IP-ul public al routerului în loc de IP-ul clientului (192.168.1.100) și astfel fiecare cerere este refuzată:

[...] acces interzis de regulă, client: 123.123.123.123, server: service.example.de, cerere: [...]"

Intrebarea mea este:

Cum pot distinge între clienții locali și de la distanță pe NGINX în acest scenariu?

Link către diagrama rețelei


vidarlo avatar
drapel ar
Nu folosiți NAT. DNS *nu* rescrie niciun IP.
Puncte:0
drapel ru

Mai întâi o ipoteză/condiție, care este să verificați dacă routerul dvs. adaugă X-Redirecţionat-Pentru antet sau ceva asemănător (păstrează urmele IP-ului clientului real)

Ar trebui să rezolvați mai întâi IP-ul clientului ngx_http_realip_module

Exemplul de configurație oferit acolo:

set_real_ip_de la 192.168.1.0/24;
set_real_ip_de la 192.168.2.1;
set_real_ip_from 2001:0db8::/32;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

Prin aceasta, IP-ul folosit pentru verificările de acces ar trebui să fie cel corect (client real).

Un avertisment este că, cu o astfel de configurație, încercările de a adăuga routerul la antetul X-Forwarded-For nu pot fi făcute. automat cu proxy_add_x_forwarded_for, deoarece IP-ul adăugat prin intermediul va fi modificat de directiva anterioară. S-a discutat acel caz specific la debordarea stivei

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.