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

A maioria dos firewalls de aplicações web (WAF) pode conter listas de bloqueios de endereços IP. No entanto, se você estiver executando o Apache HTTP Server e quiser bloquear os IPs imediatamente, siga as etapas do artigo para criar uma lista de acesso ou usar o recurso Require do Apache.

Descrição description

Ambiente

Adobe Experience Manager (AEM)

Problema

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

Resolução resolution

Solução

A maioria dos firewalls de aplicações web (WAF), como segurança mod, pode conter 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 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 você 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 estiver somente em um Cabeçalho como X-Forwarded-For, essa configuração poderá ser usada.  Observe que essa configuração não se aplica se o remoteip_module estiver 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. 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, será possível usar o recurso Require de mod_authz_core diretamente (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. Solte o arquivo block-offending-ips.conf na pasta /etc/conf.d do Apache Web Server.

  4. Reinicie o Apache HTTP Server.

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