Problème

Notre site subit une attaque par déni de service, du spam ou un piratage. Comment bloquer les adresses IP au niveau du serveur HTTP Apache (AEM Dispatcher) ?

Solution

La plupart des pare-feu applicatifs Web (WAF), tels que la sécurité mod, peuvent bloquer les listes d’adresses IP. Toutefois, si vous utilisez le serveur HTTP Apache et souhaitez bloquer les adresses IP immédiatement, procédez comme suit : 

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

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

    R. Si la requête est basée sur proxy (via CDN, équilibreur de charge, etc.) et que l’IP de l’utilisateur distant n’est que 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é.

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

    B. 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 la fonction Require’s Exiger 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éposez le fichier block-offending-ips.conf dans le dossier /etc/conf.d du serveur Internet Apache.

  4. Redémarrez le serveur Apache HTTP. 

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne