Apache HTTP 서버 레벨에서 IP 주소를 차단하는 방법

대부분의 웹 애플리케이션 방화벽(WAF)은 IP 주소를 차단 목록 할 수 있습니다. 그러나 Apache HTTP 서버를 실행하고 있고 IP를 즉시 차단하려는 경우, 문서의 단계에 따라 액세스 목록을 만들거나 Apache의 Require 기능을 사용하십시오.

설명 description

환경

AEM(Adobe Experience Manager)

문제

사이트에서 서비스 거부(DoS) 공격, 스팸 또는 해킹이 발생하는 경우 Apache HTTP Server(AEM Dispatcher) 수준에서 IP 주소를 어떻게 차단합니까?

해결 방법 resolution

mod 보안과 같은 대부분의 웹 애플리케이션 방화벽(WAF)은 IP 주소를 차단 목록 할 수 있습니다.

그러나 Apache HTTP 서버를 실행하고 있고 IP를 즉시 차단하려는 경우, 다음 단계를 수행하십시오.

  1. 서버에 이름이 block-offending-ips.conf인 파일을 만듭니다.

  2. 편집기에서 파일을 열고 차단하려는 URL에 대한 모든 잘못된 IP의 액세스를 차단하는 Location 지시문을 추가합니다.  아래 파일의 내용에는 두 가지 옵션이 있습니다.

    1. 요청이 프록시화되는 경우(CDN, 로드 밸런서 등을 통해) 원격 사용자의 IP는 X-Forwarded-For과(와) 같은 헤더에만 있으므로 이 구성을 사용할 수 있습니다.  remoteip_module이(가) 구성된 경우에는 이 구성이 적용되지 않습니다.

      code language-none
      <LocationMatch "/.*">
      Order Allow,Deny
      Allow from all
      SetEnvif X-Forwarded-For "123\.123\.123\.123" DenyAccess
      #Repeat the "SetEnvlf X-Forwarded-For ..." for each IP you want to block
      Deny from env=DenyAccess
      </LocationMatch>
      
    2. 또는 원격 사용자가 Apache에 직접 액세스하거나 remoteip_module( [ 1] 참조)을 사용하여 Apache 내에서 추출 및 설정한 경우 mod_authz_coreRequire 기능을 직접 사용할 수 있습니다(Apache 2.4).

      code language-none
      <LocationMatch "/.*">
      <RequireAll>
      Require all granted
      Require not ip 123.123.123.123
      #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. Apache 웹 서버의 /etc/conf.d 폴더에 block-offending-ips.conf 파일을 놓습니다.

  4. Apache HTTP 서버를 다시 시작합니다.

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