- Oversigt
- Original F5 iRule
- RELIANOID Migrationstilgang
- Anbefales RELIANOID arkitektur
- WAF-regelkonfiguration
- Sådan fungerer reglen
- Konfiguration af sortlistefiler
- Konfigurer reglen via webUI
- Vigtig operationel bemærkning
- Validering og test
- forventet resultat
- Valgfri forbedring: Returnering af HTTP 410
- Fejlfinding
- Best Practices
- Resumé
Oversigt #
Denne artikel forklarer, hvordan man migrerer en F5 BIG-IP iRule, der bruges til at blokere anmodninger baseret på X-Forwarded-For HTTP-header ind i RELIANOID ved hjælp af den integrerede WAF/IPDS (system til forebyggelse og detektion af indtrængen) Drevet af ModSecurity/OWASP regelsæt kompatibel.
Den originale iRule inspicerer X-Forwarded-For header og returnerer HTTP 410 Gone når der findes et match i en liste over IP-adresser.
Original F5 iRule #
når HTTP_REQUEST { hvis { [HTTP::header-værdier "X-Forwarded-For"] indeholder "31.192.108.123" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "65.103.109.21" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "193.90.12.87" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "208.100.0.117" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "100.113.150.102" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "176.10.99.200" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "163.172.143.114" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "163.172.209.46" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "188.138.9.49" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "217.23.13.129" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "162.247.72.27" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "194.67.208.57" || [HTTP::header-værdier "X-Forwarded-For"] indeholder "41.216.186.114" } { HTTP::respond 410 } }
RELIANOID Migrationstilgang #
In RELIANOID, kan denne logik implementeres ved hjælp af:
- WAF/IPDS-modul
- Brugerdefinerede regler for ModSecurity/OWASP
- Ekstern IP-matchfil
Denne tilgang er mere skalerbar og nemmere at vedligeholde end at integrere flere IP-sammenligninger i et script.
Anbefales RELIANOID arkitektur #
Migreringen bruger:
- Inspektion af X-Forwarded-For HTTP-headeren
- Ekstern sortlistefil med IP-adresser
- Dynamisk IP-matchning ved hjælp af ModSecurity/OWASP-regelsætoperatorer
fordele:
- Nemmere IP-administration
- Centraliseret sortliste
- Ingen grund til at redigere regler for hver IP-ændring
- Bedre skalerbarhed
WAF-regelkonfiguration #
Følgende ModSecurity/OWASP-regel kan konfigureres i Raw-tilstand inde i WAF/IPDS-modulet.
SecRule REQUEST_HEADERS:X-Videresendt-Til "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data" "\id:1001,\msg:'Brugerdefineret match',\phase:1,\deny,\nolog"
Sådan fungerer reglen #
Denne regel udfører følgende handlinger:
REQUEST_HEADERS:X-Forwarded-ForLæser X-Forwarded-For HTTP-headeren
@ipMatchFromFileSammenligner headerværdien med en ekstern fil
xff_blacklist.txtIndeholder listen over blokerede IP-adresser
phase:1Udføres under behandling af anmodningsheaderen
denyBlokerer matchende anmodninger
nologDeaktiverer logføring for matchede anmodninger
Konfiguration af sortlistefiler #
Opret sortlistefilen:
/usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data
Eksempelindhold:
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
Konfigurer reglen via webUI #
Opret IP-datalisten #
Opret en ny WAF-datafil i sektionen IPDS > WAF > Filer inklusive indholdet af IP-listen:

Opret regelbetingelsen #
Opret et nyt WAF-regelsæt i sektionen IPDS > WAF > Regelsæt inklusive match-IP-betingelsen:

Aktivér reglen i farmen #
Aktivér regelsættet og tildel det til de nødvendige gårde.

Vigtig operationel bemærkning #
Enhver ændring af blacklist-filen kræver:
- Stop af WAF-reglen
- Starter WAF-reglen igen
Dette genindlæser reglen og anvender den opdaterede IP-liste. Dette påvirker kun de WAF-regler, der inspiceres i de berørte farms, og påvirker ikke den faktiske trafik, der går gennem load balancer.
Validering og test #
Følgende kommando kan bruges til at validere regelens funktionsmåde:
curl -k -H "X-Videresendt-Til: IP_ADRESSE" https://LB_VIP -v
Eksempel:
curl -k -H "X-Videresendt-Til: 31.192.108.123" https://192.168.1.100 -v
forventet resultat #
Når IP-adressen matcher sortlisten:
- Anmodning afvist af WAF
- HTTP-fejlsvar returneres
Valgfri forbedring: Returnering af HTTP 410 #
Den originale F5 iRule returnerer eksplicit:
HTTP 410 væk
Som standard kan ModSecurity/OWASP-regelsæt, der afviser handlinger, returnere HTTP 403 Forbidden.
Hvis der kræves præcis adfærdsparitet, kan reglen forbedres til at returnere 410.
Eksempel:
SecRule REQUEST_HEADERS:X-Videresendt-Til "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/xff_blacklist.txt" "\id:1001,\msg:'Brugerdefineret match',\fase:1,\deny,\status:410,\nolog"
Fejlfinding #
Regel udløses ikke #
Verificere:
- WAF/IPDS er aktiveret på farmen
- Reglen er indlæst korrekt
- Headeren findes i anmodningen
- Regel genstartet efter filændringer
Anmodninger ikke blokeret #
Kontrollere:
- IP-formatering i filen
- Ingen ekstra mellemrum eller skjulte tegn
- Korrekte filtilladelser
Overskrift mangler #
Nogle upstream-proxyer sender muligvis ikke X-Forwarded-ForValider med:
curl -k -H "X-Videresendt-Til: 1.2.3.4" https://LB_VIP -v
Logføring nødvendig til fejlfinding #
Fjern midlertidigt:
nolog
Dette tillader logføring af ModSecurity/OWASP-regelsæt til fejlfindingsformål.
Best Practices #
- Vedligehold sortlistefiler centralt
- Brug automatisering til opdateringer af sortlister
- Gennemgå blokerede IP-adresser regelmæssigt
- Beskyt WAF-regelfiler med de korrekte tilladelser
- Foretræk eksterne filer frem for hardcodede regler af skalerbarhed
Resumé #
F5 iRules udfører X-Forwarded-For filtrering kan effektivt migreres til RELIANOID ved hjælp af det integrerede WAF/IPDS-modul og ModSecurity-regler.
Denne tilgang giver:
- Centraliseret IP-administration
- Bedre skalerbarhed
- Nemmere vedligeholdelse
- Native WAF-integration
- Reduceret kompleksitet af scripting