NGINX, reverse proxy e HTTP_X_FORWARDED_FOR

io sono andato di split dns.
da fuori, l’url risolve con i dns pubblici e, nel mio caso, ottiene l’ip di cloudflare
da dentro, risolve con i miei dns e ottiene l’ip del reverse proxy

in questo modo, chi arriva da fuori si presenta a valle del proxy con 2 header:

  • CF-Connecting-IP con l’ip di origine
  • X-Forwarded-For con l’ip di cloudflare

chi arriva da dentro invece ha solo X-Forwarded-For con l’ip interno

gli ip di cloudflare sono pochi e noti, quindi puoi farti tutte le regole che vuoi

da quando?

Guarda che io lo so perfettamente.
E sono concorde con te.

Purtroppo le persone che seguono questa parte qua dentro sono…eccessivamente conservative?
Sto lavorando per andare anche a scardinare questa mentalità ma è un processo lungo e molto faticoso, specialmente a livello mentale.

Faccio domanda: vi interesserebbe se aprissi dei topic a tema su questi argomenti per fare brainstorming sulle possibili soluzioni ?

1 Like

Ok, capisco.

Però forse in questo caso non userei X-Forwarded-For che per quanto non ufficiale teoricamente ha una sua semantica.

Metti un header custom tuo: X-organization-incoming-IP e ragiona su quello.

this ^

con NGINX se ricordo bene dovrebbe essere semplice capire se la richiesta arriva da una particolare subnet e sfrutti questo check per popolare un header custom

edit: ecco c’è il modulo nginx Module ngx_http_geo_module

Ma magari ci fossero piu’ topic tecnici su TECH zone :asd:

1 Like

Bello questo modulo però dovrei scoprire se la versione di nginx in produzione lo supporta.

E SI, ho visto le date di release. E no non sarei stupito se non lo supportasse

Andata. Appena ho tempo scriverò ulteriormente

mannali affanculo conservativi un cazzo hanno rotto le palle che non si muovono dalla loro comfort zone… l’informatica si evolve se non cambi rimani fregato.

come diceva @tennents lo split DNS è la cosa più moderna e pulita che puoi fare per la tua necessità.

unica cosa che devi fare attenzione è il certificato TLS cioè un wildcard aziendale
oppure cert interno + pubblicazione (dipende dal modello che usate bho)

e di stare attenti a fare NAT loopback cioè rendirizzamenti che escono in pubblico e rientrano verso interno…

di ancora meglio puoi fare:

Interno:
client verso reverse proxy interno verso mediawiki

o

Esterno:
client esterni verso WAF/reverse proxy verso mediawiki

non usate hostname interno diverso che è un bagno di sangue poi

This * 100

Sai quando non c’è peggior sordo…