Como bloquear endereços IP no nível do Apache HTTP Server?

Última atualização em 2023-04-28

Descrição

Ambiente
Adobe Experience Manager

Problema
Quando seu site está enfrentando um ataque de negação de serviço (DoS), spam ou está sendo hackeado, como você bloqueia endereços IP no nível do Apache HTTP Server (Dispatcher AEM)?

Resolução

Solução
A maioria dos firewalls de aplicações web (WAF), como segurança mod, pode listas de bloqueios de endereços IP.
No entanto, se você estiver executando o Apache HTTP Server e quiser bloquear IPs imediatamente, siga estas etapas:

  1. Crie um arquivo com o nome block-offending-ips.conf no seu servidor.

  2. Abra o arquivo em um editor e adicione uma diretiva de localização que impeça todos os IPs ofensivos de acessar os URLs que deseja bloquear.  Há duas opções para o conteúdo do arquivo abaixo:

    1. Se a solicitação for enviada por proxy (via CDN, balanceador de carga etc.) e o IP do usuário remoto está somente em um Cabeçalho como X-Forwarded-For essa configuração pode ser usada.  Observe que essa configuração não se aplica se a variável remoteip_module está configurado.  

      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. Como alternativa, se o usuário remoto estiver acessando diretamente o Apache ou se você estiver usando remoteip_module (consulte 1) para extrair e configurá-lo no Apache, você poderá usar mod_authz_core's Exigir recurso diretamente (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. Solte o arquivo block-offending-ips.conf em /etc/conf.d pasta do servidor Web Apache.

  4. Reinicie o Apache HTTP Server.

Nesta página