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

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 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 si 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. 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 de mod_authz_core (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éposez le fichier block-offending-ips.conf dans le dossier /etc/conf.d du serveur Web Apache.

  4. Redémarrez le serveur Apache HTTP.

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