Comment bloquer les adresses IP au niveau du serveur Apache HTTP ?

Description

Environnement
Adobe Experience Manager

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

Solution
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 :

  1. Créez un fichier nommé block-offending-ips.conf sur votre serveur.

  2. Ouvrez le fichier dans un éditeur et ajoutez une directive d’emplacement qui empêche toutes les adresses IP incriminées d’accéder aux URL que vous souhaitez bloquer.  Il existe deux options pour le contenu du fichier ci-dessous :

    1. Si la requête est en proxy (via CDN, équilibreur de charge, etc.) et l’adresse IP de l’utilisateur distant n’est que dans un en-tête tel que X-Forwarded-For cette configuration peut ensuite être utilisée.  Notez que cette configuration ne s’applique pas si la variable remoteip_module est configuré.  

      LocationMatch "/.*"
      Order Allow,Deny
      Allow from all
      SetEnvif X-Forwarded-For "10\.42\.137\.123" DenyAccess
      SetEnvif X-Forwarded-For "122\.6\.218\.101" DenyAccess
      #Repeat the "SetEnvlf X-Forwarded-For ..." for each IP you want to block
      Deny from env=DenyAccess
      /LocationMatch
      
    2. Sinon, si l’utilisateur distant accède directement à Apache ou si vous utilisez remoteip_module (voir 1) pour l’extraire et le définir dans Apache, vous pouvez utiliser mod_authz_core's Require fonctionnalité directement (Apache 2.4) :

      LocationMatch "/.*"
      RequireAll
      Require all granted
      Require not ip 10.42.137.123
      Require not ip 122.6.218.101
      #Repeat the "Require not ip ..." for each IP you want to block
      /RequireAll
      /LocationMatch
      

      1

      # 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
      
  3. Déposer le fichier block-offending-ips.conf in /etc/conf.d du serveur Web Apache.

  4. Redémarrez le serveur Apache HTTP.

Sur cette page