- Panoramica
- iRule F5 originale
- RELIANOID Approccio alla migrazione
- Consigliato RELIANOID Architettura
- Configurazione delle regole WAF
- Come funziona la regola
- Configurazione del file della blacklist
- Configura la regola tramite interfaccia web
- Nota operativa importante
- Convalida e test
- Risultato atteso
- Miglioramento opzionale: restituzione del codice HTTP 410
- Troubleshooting
- Best Practices
- Sintesi
Panoramica #
Questo articolo spiega come migrare un iRule F5 BIG-IP utilizzato per bloccare le richieste in base a X-Forwarded-For Intestazione HTTP in RELIANOID utilizzando l'integrato WAF/IPDS (Sistema di prevenzione e rilevamento delle intrusioni) Basato su ModSecurity/compatibile con il set di regole OWASP.
L'iRule originale ispeziona il X-Forwarded-For intestazione e restituisce HTTP 410 Gone quando viene trovata una corrispondenza in un elenco di indirizzi IP.
iRule F5 originale #
quando HTTP_REQUEST { se { [HTTP::header values "X-Forwarded-For"] contiene "31.192.108.123" || [HTTP::header values "X-Forwarded-For"] contiene "65.103.109.21" || [HTTP::header values "X-Forwarded-For"] contiene "193.90.12.87" || [HTTP::header values "X-Forwarded-For"] contiene "208.100.0.117" || [HTTP::header values "X-Forwarded-For"] contiene "100.113.150.102" || [HTTP::header values "X-Forwarded-For"] contiene "176.10.99.200" || [HTTP::header values "X-Forwarded-For"] contiene "163.172.143.114" || [HTTP::header values "X-Forwarded-For"] contiene "163.172.209.46" || [HTTP::header values "X-Forwarded-For"] contiene "188.138.9.49" || [HTTP::header values "X-Forwarded-For"] contiene "217.23.13.129" || [HTTP::header values "X-Forwarded-For"] contiene "162.247.72.27" || [HTTP::header values "X-Forwarded-For"] contiene "194.67.208.57" || [HTTP::header values "X-Forwarded-For"] contiene "41.216.186.114" } { HTTP::respond 410 } }
RELIANOID Approccio alla migrazione #
In RELIANOIDQuesta logica può essere implementata utilizzando:
- Modulo WAF/IPDS
- Regole personalizzate di ModSecurity/OWASP
- File di corrispondenza IP esterno
Questo approccio è più scalabile e più facile da gestire rispetto all'inserimento di più confronti IP all'interno di uno script.
Consigliato RELIANOID Architettura #
La migrazione utilizza:
- Ispezione dell'intestazione HTTP X-Forwarded-For
- File esterno di blacklist contenente indirizzi IP
- Corrispondenza IP dinamica tramite operatori del set di regole ModSecurity/OWASP
vantaggi:
- Gestione della proprietà intellettuale semplificata
- Lista nera centralizzata
- Non è necessario modificare le regole per ogni cambio di indirizzo IP.
- Migliore scalabilità
Configurazione delle regole WAF #
La seguente regola ModSecurity/OWASP può essere configurata in modalità Raw all'interno del modulo WAF/IPDS.
SecRule REQUEST_HEADERS:X-Forwarded-For "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data" "\ id:1001,\ msg:'Corrispondenza personalizzata',\ fase:1,\ nega,\ nolog"
Come funziona la regola #
Questa regola esegue le seguenti azioni:
REQUEST_HEADERS:X-Forwarded-For: Legge l'intestazione HTTP X-Forwarded-For
@ipMatchFromFile: Confronta il valore dell'intestazione con un file esterno
xff_blacklist.txtContiene l'elenco degli indirizzi IP bloccati
phase:1: Eseguito durante l'elaborazione dell'intestazione della richiesta
deny: Blocca le richieste corrispondenti
nolog: Disabilita la registrazione per le richieste corrispondenti
Configurazione del file della blacklist #
Crea il file della blacklist:
/usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data
Contenuti di esempio:
31.192.108.123 65.103.109.21 193.90.12.87 208.100.0.117 100.113.150.102 176.10.99.200 163.172.143.114 163.172.209.46 188.138.9.49 217.23.13.129 162.247.72.27 194.67.208.57 41.216.186.114
Configura la regola tramite interfaccia web #
Creare l'elenco dei dati IP #
Creare un nuovo file di dati WAF nella sezione IPDS > WAF > File incluso il contenuto dell'elenco IP:

Crea la condizione della regola #
Crea un nuovo set di regole WAF nella sezione IPDS > WAF > Set di regole inclusa la condizione IP della partita:

Abilita la regola nella fattoria #
Abilita il set di regole e assegnalo alle aziende agricole desiderate.

Nota operativa importante #
Qualsiasi modifica al file della blacklist richiede:
- Fermare la regola WAF
- Ricominciamo con la regola WAF
Questa operazione ricarica la regola e applica l'elenco IP aggiornato. Ciò avrà effetto solo sulle regole WAF ispezionate nei farm interessati, senza influire sul traffico effettivo che transita attraverso il bilanciatore di carico.
Convalida e test #
Il seguente comando può essere utilizzato per convalidare il comportamento della regola:
curl -k -H "X-Forwarded-For: IP_ADDRESS" https://LB_VIP -v
Esempio:
curl -k -H "X-Forwarded-For: 31.192.108.123" https://192.168.1.100 -v
Risultato atteso #
Quando l'indirizzo IP corrisponde alla blacklist:
- La richiesta è stata rifiutata dal WAF.
- Viene restituita una risposta di errore HTTP
Miglioramento opzionale: restituzione del codice HTTP 410 #
La regola iRule F5 originale restituisce esplicitamente:
HTTP 410 Gone
Per impostazione predefinita, le azioni di negazione dei set di regole di ModSecurity/OWASP possono restituire HTTP 403 Forbidden.
Se è richiesta un'esatta parità comportamentale, la regola può essere migliorata per restituire 410.
Esempio:
SecRule REQUEST_HEADERS:X-Forwarded-For "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/xff_blacklist.txt" "\ id:1001,\ msg:'Custom Match',\ phase:1,\ deny,\ status:410,\ nolog"
Troubleshooting #
Regola non attivata #
Verificare:
- WAF/IPDS è abilitato sulla farm
- La regola è stata caricata correttamente
- L'intestazione è presente nella richiesta
- Regola riavviata dopo le modifiche al file
Richieste non bloccate #
Dai un'occhiata:
- Formattazione IP all'interno del file
- Nessuno spazio aggiuntivo o carattere nascosto
- Permessi file corretti
Intestazione mancante #
Alcuni proxy a monte potrebbero non inviare X-Forwarded-For. Convalida con:
curl -k -H "X-Forwarded-For: 1.2.3.4" https://LB_VIP -v
Registrazione necessaria per la risoluzione dei problemi #
Rimuovere temporaneamente:
nolog
Ciò consente la registrazione delle regole di ModSecurity/OWASP a scopo di debug.
Best Practices #
- Gestire centralmente i file della blacklist
- Utilizzare l'automazione per gli aggiornamenti della blacklist.
- Rivedere periodicamente gli indirizzi IP bloccati
- Proteggere i file delle regole WAF con le autorizzazioni appropriate.
- Per una maggiore scalabilità, è preferibile utilizzare file esterni piuttosto che regole codificate in modo rigido.
Sintesi #
Esecuzione di F5 iRules X-Forwarded-For il filtraggio può essere migrato in modo efficiente in RELIANOID utilizzando il modulo WAF/IPDS integrato e le regole di ModSecurity.
Questo approccio fornisce:
- Gestione centralizzata della proprietà intellettuale
- Migliore scalabilità
- Manutenzione più semplice
- Integrazione nativa del WAF
- Complessità di scripting ridotta