Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 17771|Risposta: 1

[Web] nginx ottiene il vero indirizzo IP dell'utente

[Copiato link]
Pubblicato su 19/05/2018 11:38:55 | | | |
Alcune delle nostre interfacce prevedono modifiche alle informazioni utente, e queste interfacce permettono solo alla parte di accesso di adattarci, quindi abbiamo una whitelist IP su nginx.

È dotato dell'IP di uscita della parte di accesso.

Ecco i log del nostro accesso nginx.



nginx prende il nostro $remote_addr come vero IP, ma in realtà $http_X_Forwarded_For è l'IP reale dell'utente, $remote_addr è semplicemente l'indirizzo di rete privato del nostro f5 (utente -->f5 --> nginx), facendo sì che nginx prenda il nome sbagliato e l'utente che regola l'interfaccia è sempre 403.

Soluzione:

Nel modulo http plus


set_real_ip_from 10.10.10.122; Dì a nginx di prendere il valore di RealIP da lì
real_ip_header X-Real-IP; Il nome della variabile che memorizza il valore RealIP

Potere!

Qui iniziamo il rapporto nginx dopo aver aggiunto:

nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26




Quindi aggiungiamo il modulo realip e ricompiliamo nginx


1、cd /usr/local/nginx-1.6.3
2、./configura --prefisso=/usr/cmcc/nginx --con-http_stub_status_module --con-http_ssl_module --con-http_realip_module
3. Realizzare & Installare

Consigli:
1. set_real_ip_from si riferisce all'IP reale dell'utente ottenuto da cui il pre-proxy fidato

2. real_ip_header si riferisce all'IP utente della precedente trasmissione proxy da cui è stata ottenuta la parte HTTP del messaggio ricevuto

3. real_ip_recursive Se escludere ricorsivamente fino a ottenere l'IP utente (il predefinito è disattivato)

Per prima cosa, real_ip_header specificare un nome di intestazione http, che è X-Real-IP di default.

(1) Se c'è 1 IP, verificherà se l'IP del mittente si trova nella lista IP affidabile specificata dal set_real_ip_from. Se è affidabile, penserà che il valore IP in questo X-Real-IP sia il valore IP reale dell'utente indicato dal precedente agente, quindi assegnerà questo valore alla propria variabile $remote_addr; Se non è fidato, non verrà elaborato e $remote_addr resta l'indirizzo IP del mittente.

(2) Se X-Real-Ip ha più valori IP, ad esempio, il proxy precedente è impostato così: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

Quello che ottieni è una stringa di IP, quindi il valore di real_ip_recursive è cruciale in questo momento. nginx confronterà gli IP nella set_real_ip_from trust list da destra a sinistra nella lista IP. Se il real_ip_recursive è spento, quando si scopre che l'IP più a destra è affidabile, si pensa che il successivo IP (il secondo a destra) sia il vero IP dell'utente. Se il real_ip_recursive è attivo, verrà confrontato da destra a sinistra finché non trova un IP non affidabile. Poi copia anche il valore IP su $remote_addr.

Risorse:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html





Precedente:Le mappe dei siti discuz vengono generate automaticamente
Prossimo:Usa il bilanciamento del carico Alibaba Cloud per bloccare l'accesso IP ai siti web
Pubblicato su 18/06/2018 14:57:50 |
Guarda, nginx ottiene la vera IP
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com