Cómo bloquear direcciones IP en el nivel de servidor HTTP de Apache

La mayoría de los firewalls de aplicaciones web (WAF) pueden contener listas de bloqueados de direcciones IP. Sin embargo, si está ejecutando el servidor HTTP de Apache y desea bloquear direcciones IP inmediatamente, siga los pasos del artículo para crear una lista de acceso o utilice la de Apache Require función.

Descripción description

Entorno

Adobe Experience Manager (AEM)

Problema

AEM Cuando su sitio sufre un ataque de denegación de servicio (DoS), correo no deseado o le hackean, ¿cómo bloquea las direcciones IP en el nivel de Apache HTTP Server (Dispatcher)? (Servidor HTTP de Apache) (Dispatcher)

Resolución resolution

Solución

La mayoría de los firewalls de aplicaciones web (WAF), como Mod Security, pueden generar listas de bloqueados de direcciones IP.

Sin embargo, si está ejecutando el servidor HTTP de Apache y desea bloquear direcciones IP inmediatamente, siga estos pasos:

  1. Cree un archivo llamado block-offending-ips.conf en el servidor.

  2. Abra el archivo en un editor y agregue una directiva de ubicación que impida que todas las direcciones IP ofensivas tengan acceso a las direcciones URL que desee bloquear.  A continuación, hay dos opciones para el contenido del archivo:

    1. Si la solicitud se procesa como proxy (a través de CDN, Equilibrador de carga, etc.) y la IP del usuario remoto solo está en un encabezado como X-Forwarded-For a continuación, se puede utilizar esta configuración.  Tenga en cuenta que esta configuración no se aplica si remoteip_module está configurado.

      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. Alternativamente, si el usuario remoto está accediendo directamente a Apache o está utilizando remoteip_module (consulte [ 1] ) para extraerlo y configurarlo en Apache, puede utilizar mod_authz_corede Requerir función directamente (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. Suelte el archivo block-offending-ips.conf in /etc/conf.d del servidor web Apache.

  4. Reinicie el servidor HTTP de Apache.

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