Marché #
Cet article explique comment migrer une iRule F5 BIG-IP utilisée pour limiter la taille des chargements HTTP vers RELIANOID en utilisant l'intégration WAF (pare-feu d'application Web) répondent parfaitement à vos attentes. ModSecurity et OWASP CRS.
La règle iRule d'origine vérifie :
- Méthode HTTP (
POST) Content-Lengthentête
Et bloque les téléchargements de plus de 200 MB avec un HTTP 413 Payload Too Large réponse.
iRule F5 d'origine #
when HTTP_REQUEST { if { [HTTP::method] eq "POST" } { set content_length [HTTP::header "Content-Length"] if { $content_length ne "" && $content_length > 200000000 } { # Rejeter les requêtes supérieures à 200 Mo HTTP::respond 413 content "La taille du chargement dépasse la limite." event disable } } }
RELIANOID Approche migratoire #
In RELIANOID, cette fonctionnalité peut être implémentée à l'aide de :
- Module WAF / IPDS
- Règles ModSecurity
- Intégration OWASP CRS
Cette approche fournit :
- application centralisée de la sécurité
- Amélioration de la journalisation et de la visibilité
- Maintenance simplifiée
- Inspection native des requêtes HTTP
Déploiement via un ensemble de règles manuelles #
RELIANOID Exemple de configuration WAF #
Sous le chemin /usr/local/relianoid/config/ipds/waf/sets/ Créez un fichier de configuration contenant :
## début de la configuration SecRuleEngine sur 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" ## fin de la configuration SecRule REQUEST_METHOD "POST" \ "id:910001,\ phase:1,\ t:none,\ chain,\ deny,\ status:413,\ msg:'La taille du fichier téléchargé dépasse la limite.',\ log" SecRule REQUEST_HEADERS:Content-Length "@gt 200000000"
Comment fonctionne la règle #
La règle applique la logique suivante :
REQUEST_METHOD "POST": Inspecte uniquement les requêtes POST
REQUEST_HEADERS:Content-Length: lit la taille du téléchargement
@gt 200000000Vérifie si la taille dépasse 200 Mo
deny,status:413: Rejette la demande
msg:'Upload size exceeds limit.': Génère un message de journal d'audit
Correspondance des comportements équivalents entre les iRules F5 et 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
Déploiement via interface Web #
Cette configuration peut également être déployée directement via le RELIANOID Interface utilisateur Web.
Chemin de configuration de l'interface Web #
Accédez à IPDS > WAF > Règles
Ensuite Créer un ensemble de règles WAF avec une règle comportant 2 conditions comme celle illustrée ci-dessous.

Validation #
Test avec CURL #
Exemple de demande :
curl -k -X POST -H "Content-Length: 250000000" https://LB_VIP/upload -v
résultat attendu #
La réponse devrait être :
HTTP/1.1 413 Charge utile trop volumineuse
Et la requête devrait être bloquée avant d'atteindre le serveur.
Validation des journaux #
Vérifiez les journaux WAF pour :
La taille du fichier à télécharger dépasse la limite.
Remarques importantes #
Dépendance à la longueur du contenu #
Cette règle dépend de l'envoi par le client d'une valeur valide Content-Length En-tête. Si les chargements utilisent un encodage par transfert segmenté ou des chargements en continu, des protections supplémentaires peuvent être nécessaires.
Restreindre uniquement certaines URL #
Cette règle peut être combinée avec la validation d'URI.
Exemple :
SecRule REQUEST_URI "@beginsWith /upload"
Dépannage #
Règle non déclenchée #
Vérifier:
- Le WAF est activé sur la ferme
- La règle est correctement attachée.
- La méthode de requête est POST.
- L'en-tête Content-Length est présent.
Les chargements atteignent toujours le serveur. #
Causes possibles:
- WAF non appliqué à la ferme appropriée
- problème de syntaxe des règles
- Le chargement utilise un encodage par blocs
Faux positifs #
Certaines applications peuvent légitimement nécessiter des téléchargements volumineux.
Recommandation:
- Créer des exceptions spécifiques à l'application
- Ajustez les seuils avec précaution.
Pratiques d'excellence #
- Utilisez les limites de téléchargement spécifiques à l'application
- Combiner avec une limitation de débit lorsque cela est possible
- Surveillez régulièrement les journaux WAF
- Évitez les seuils de téléchargement inutilement élevés.
- Valider le comportement de téléchargement après le déploiement
Résumé #
Les iRules F5 utilisées pour limiter la taille des chargements peuvent être migrées vers RELIANOID utilisation de règles WAF/ModSecurity natives intégrées à OWASP CRS.
Cette approche fournit :
- Application centralisée des politiques
- Amélioration de la journalisation et de la visibilité
- Évolutivité plus facile
- Complexité de script réduite
- Inspection des demandes fondée sur des normes