Forwarded For è lo standard di fatto per identificare l'indirizzo IP di origine di un client che si connette a un server web attraverso bilanciatori di carico Layer 7 e server proxy.
Uscita inoltrata
Opzione
|
Descrizione
|
Spento
|
ADC non modifica l'intestazione Forwarded-For.
|
Aggiungi indirizzo e porta
|
Questa scelta aggiungerà l'indirizzo IP e la porta del dispositivo o del client collegato all'ADC all'intestazione Forwarded-For.
|
Aggiungi indirizzo
|
Questa scelta aggiungerà l'indirizzo IP del dispositivo o del client collegato all'ADC all'intestazione Forwarded-For.
|
Sostituire l'indirizzo e la porta
|
Questa scelta sostituirà il valore dell'intestazione Forwarded-For con l'indirizzo IP e la porta del dispositivo o del client collegato all'ADC.
|
Sostituire l'indirizzo
|
Questa scelta sostituirà il valore dell'intestazione Forwarded-For con l'indirizzo IP del dispositivo o del client collegato all'ADC.
|
Intestazione Forwarded-For
Questo campo consente di specificare il nome dato all'intestazione Forwarded-For. In genere è "X-Forwarded-For", ma può essere modificato per alcuni ambienti.
Registrazione avanzata per IIS - Registrazione personalizzata
È possibile ottenere le informazioni X-Forwarded-For installando l'applicazione IIS Advanced logging 64-bit. Una volta scaricata, creare un campo di registrazione personalizzato chiamato X-Forwarded-For con le impostazioni riportate di seguito.
Selezionare Default dall'elenco Tipo di origine dall'elenco Categoria, selezionare Intestazione richiesta nella casella Nome origine e digitare X-Forwarded-For.
HTTP://www.iis.net/learn/extensions/advanced-logging-module/advanced-logging-for-iis-custom-logging
Modifiche al file HTTPd.conf di Apache
È necessario apportare diverse modifiche al formato predefinito per registrare l'indirizzo IP del client X-Forwarded-For o l'indirizzo IP effettivo del client se l'intestazione X-Forwarded-For non esiste.
Le modifiche sono riportate di seguito:
Tipo
|
Valore
|
LogFormat:
|
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinato
|
LogFormat:
|
"%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy SetEnvIf X- Forwarded-For "^.*\..*\..*\..*" forwarded
|
CustomLog:
|
"logs/access_log" combinato env=!forwarded
|
CustomLog:
|
"logs/access_log" proxy env=forwarded
|
Questo formato sfrutta il supporto integrato di Apache per il logging condizionale basato su variabili ambientali.
La riga 1 è la stringa formattata del log combinato standard di default.
La riga 2 sostituisce il campo %h (host remoto) con i valori estratti dall'intestazione X-Forwarded-For e imposta il nome di questo modello di file di log su "proxy".
La riga 3 è un'impostazione per la variabile d'ambiente "forwarded" che contiene un'espressione regolare libera che corrisponde a un indirizzo IP, il che va bene in questo caso poiché ci interessa di più se un indirizzo IP esiste nell'intestazione X-Forwarded-For.
Inoltre, la riga 3 potrebbe essere letta come: "Se esiste un valore X-Forwarded-For, usarlo".
Le righe 4 e 5 indicano ad Apache quale modello di log utilizzare. Se esiste un valore X-Forwarded-For, utilizzare lo schema "proxy", altrimenti utilizzare lo schema "combinato" per la richiesta. Per motivi di leggibilità, le righe 4 e 5 non sfruttano la funzione di log rotate (piped) di Apache, ma si presume che quasi tutti la utilizzino.
Queste modifiche comporteranno la registrazione di un indirizzo IP per ogni richiesta.