Comment bloquer les adresses IP au niveau du serveur Apache HTTP
La plupart des pare-feu d’applications web (WAF) peuvent contenir des listes bloquées d’adresses IP. Cependant, si vous exécutez Apache HTTP Server et souhaitez bloquer immédiatement les adresses IP, suivez les étapes de l’article pour créer une liste d’accès ou utiliser la fonction Require
d’Apache.
Description description
Environnement
Adobe Experience Manager (AEM)
Problème
Lorsque votre site subit une attaque par déni de service (DoS), du spam ou est piraté, comment bloquez-vous les adresses IP au niveau du serveur HTTP Apache (AEM Dispatcher) ?
Résolution resolution
La plupart des pare-feu d’applications web (WAF), tels que la sécurité mod, peuvent contenir des listes bloquées d’adresses IP.
Cependant, si vous exécutez Apache HTTP Server et souhaitez bloquer immédiatement les adresses IP, procédez comme suit :
-
Créez un fichier nommé
block-offending-ips.conf
sur votre serveur. -
Ouvrez le fichier dans un éditeur et ajoutez une directive d’emplacement qui empêche toutes les adresses IP offensantes d’accéder aux URL que vous souhaitez bloquer. Il existe deux options pour le contenu du fichier ci-dessous :
-
Si la requête est en proxy (via CDN, équilibreur de charge, etc.) et que l’adresse IP de l’utilisateur distant se trouve uniquement dans un en-tête tel que
X-Forwarded-For
, cette configuration peut être utilisée. Notez que cette configuration ne s’applique pas siremoteip_module
est configuré.code language-none <LocationMatch "/.*"> Order Allow,Deny Allow from all SetEnvif X-Forwarded-For "123\.123\.123\.123" DenyAccess #Repeat the "SetEnvlf X-Forwarded-For ..." for each IP you want to block Deny from env=DenyAccess </LocationMatch>
-
Si l’utilisateur distant accède directement à Apache ou que vous utilisez remoteip_module (voir
[
1]
) pour l’extraire et le définir dans Apache, vous pouvez alors utiliser directement la fonction Require demod_authz_core
(Apache 2.4) :code language-none <LocationMatch "/.*"> <RequireAll> Require all granted Require not ip 123.123.123.123 #Repeat the "Require not ip ..." for each IP you want to block </RequireAll> ></LocationMatch><
[ 1]
code language-none # Extract true client IP from header added by load balancer/CDN <IfModule remoteip_module> # valid for ELB or ELB+CloudFront RemoteIPHeader X-Forwarded-For </IfModule>
-
-
Déposez le fichier
block-offending-ips.conf
dans le dossier/etc/conf.d
du serveur Web Apache. -
Redémarrez le serveur Apache HTTP.