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 le fichier Require fonction .

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

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 offensantes 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é.

      code language-none
      <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 la définir dans Apache, vous pouvez utiliser mod_authz_core's Require fonctionnalité directement (Apache 2.4) :

      code language-none
      <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]

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

  4. Redémarrez le serveur Apache HTTP.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f