Panoramica #
Questo articolo spiega come migrare un iRule F5 BIG-IP utilizzato per limitare le dimensioni dei caricamenti HTTP in RELIANOID utilizzando l'integrato WAF (firewall per applicazioni Web) offerto da ModSecurity e OWASP CRS.
La regola iRule originale analizza:
- Metodo HTTP (
POST) Content-Lengthtestata
E blocca i caricamenti più grandi di 200 MB con un HTTP 413 Payload Too Large risposta.
iRule F5 originale #
quando HTTP_REQUEST { se { [HTTP::method] eq "POST" } { imposta content_length [HTTP::header "Content-Length"] se { $content_length ne "" && $content_length > 200000000 } { # Rifiuta le richieste superiori a 200 MB HTTP::respond 413 content "La dimensione del caricamento supera il limite." event disable } } }
RELIANOID Approccio alla migrazione #
In RELIANOID, questa funzionalità può essere implementata utilizzando:
- Modulo WAF/IPDS
- Regole di ModSecurity
- Integrazione OWASP CRS
Questo approccio fornisce:
- Applicazione centralizzata delle norme di sicurezza
- Migliore registrazione e visibilità
- Manutenzione più semplice
- Ispezione delle richieste NativeHT
Distribuzione tramite set di regole manuali #
RELIANOID Esempio di configurazione WAF #
Sotto il sentiero /usr/local/relianoid/config/ipds/waf/sets/ crea un file di configurazione con il seguente contenuto:
## inizio conf SecRuleEngine su SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:1" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:2" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:3" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:4" ## fine conf SecRule REQUEST_METHOD "POST" \ "id:910001,\ fase:1,\ t:none,\ catena,\ nega,\ stato:413,\ msg:'La dimensione del caricamento supera il limite.',\ log" SecRule REQUEST_HEADERS:Content-Length "@gt 200000000"
Come funziona la regola #
La regola esegue la seguente logica:
REQUEST_METHOD "POST": Esamina solo le richieste POST
REQUEST_HEADERS:Content-Length: Legge la dimensione del caricamento
@gt 200000000: Verifica se la dimensione supera i 200 MB
deny,status:413: Rifiuta la richiesta
msg:'Upload size exceeds limit.': Genera un messaggio nel registro di controllo
Mappatura del comportamento equivalente da F5 iRule a RELIANOID WAF #
HTTP::method: REQUEST_METHOD
HTTP::header "Content-Length": REQUEST_HEADERS:Content-Length
HTTP::respond 413: deny,status:413
event disable: Immediate WAF deny
Distribuzione tramite interfaccia web #
Questa configurazione può essere distribuita anche direttamente tramite RELIANOID WebUI.
Percorso di configurazione dell'interfaccia Web #
Accedere a IPDS > WAF > Regole
Poi Crea Un set di regole WAF con una regola con 2 condizioni come mostrato di seguito.

Convalida #
Prova con CURL #
Esempio di richiesta:
curl -k -X POST -H "Content-Length: 250000000" https://LB_VIP/upload -v
Risultato atteso #
La risposta dovrebbe essere:
HTTP/1.1 413 Payload Too Large
La richiesta dovrebbe essere bloccata prima di raggiungere il backend.
Convalida della registrazione #
Controlla i log del WAF per:
La dimensione del file caricato supera il limite.
Note Importanti #
Dipendenza dalla lunghezza del contenuto #
Questa regola dipende dall'invio da parte del client di un valido Content-Length intestazione. Se i caricamenti utilizzano la codifica di trasferimento a blocchi o i caricamenti in streaming, potrebbero essere necessarie protezioni aggiuntive.
Limita solo URL specifici #
La regola può essere combinata con la convalida dell'URI.
Esempio:
SecRule REQUEST_URI "@beginsWith /upload"
Troubleshooting #
Regola non attivata #
Verificare:
- WAF è abilitato sulla farm
- La regola è allegata correttamente
- Il metodo della richiesta è POST
- L'intestazione Content-Length è presente
I caricamenti raggiungono ancora il backend #
Cause possibili:
- WAF non applicato all'azienda agricola corretta
- Problema di sintassi della regola
- Il caricamento utilizza la codifica a blocchi
Falsi Positivi #
Alcune applicazioni potrebbero legittimamente richiedere caricamenti di grandi dimensioni.
Raccomandazione:
- Creare eccezioni specifiche per l'applicazione
- Regolare attentamente le soglie
Best Practices #
- Utilizzare limiti di caricamento specifici per l'applicazione
- Quando possibile, combinare con la limitazione della velocità.
- Monitorare regolarmente i log del WAF
- Evita soglie di caricamento inutilmente elevate
- Convalidare il comportamento di caricamento dopo la distribuzione
Sintesi #
Le regole F5 iRules utilizzate per limitare le dimensioni dei caricamenti possono essere migrate in RELIANOID Utilizzo di regole WAF/ModSecurity native integrate con OWASP CRS.
Questo approccio fornisce:
- Applicazione centralizzata delle policy
- Migliore registrazione e visibilità
- Scalabilità più semplice
- Complessità di scripting ridotta
- Ispezione su richiesta basata su standard