Apache HTTP サーバーレベルで IP アドレスをブロックする方法

ほとんどの Web アプリケーションファイアウォール(WAF)では、IP アドレスをブロックリストできます。 ただし、Apache HTTP Server を実行していて、すぐに IP をブロックする場合は、記事の手順に従ってアクセスリストを作成するか、Apache の Require 機能を使用します。

説明 description

環境

Adobe Experience Manager(AEM)

問題

サイトでサービス拒否(DoS)攻撃、スパム、ハッキングなどが発生した場合、Apache HTTP Server (AEM Dispatcher)レベルで IP アドレスをブロックするにはどうすればよいですか?

解決策 resolution

ソリューション

Mod セキュリティなどのほとんどの Web Application Firewall (WAF)は、IP アドレスをブロックリストできます。

ただし、Apache HTTP Server を実行していて、IP をすぐにブロックする場合は、次の手順に従います。

  1. サーバー上に block-offending-ips.conf という名前のファイルを作成します。

  2. ファイルをエディターで開き、問題のあるすべての IP がブロックされる場所ディレクティブを追加して、ブロックしたい URL にアクセスできるようにします。  ファイルの内容については、次の 2 つのオプションがあります。

    1. (CDN やロードバランサーなどを介して)リクエストがプロキシ化される場合 また、リモートユーザーの IP は X-Forwarded-For のようなヘッダー内にのみ存在するため、この設定を使用できます。  remoteip_module が設定されている場合、この設定は適用されないことに注意してください。

      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. また、リモートユーザーが Apache に直接アクセスしている場合や、remoteip_module ([ 1] を参照)を使用して Apache 内で抽出および設定している場合は、mod_authz_core必須 機能を直接使用できます(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. ファイル block-offending-ips.conf を Apache web サーバー /etc/conf.d フォルダーにドロップします。

  4. Apache HTTP サーバーを再起動します。

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