Apache HTTP サーバーレベルで IP アドレスをブロックする方法
Apache HTTP サーバーレベルで IP アドレスをブロックする方法を説明します。 ブロックする IP を含む.conf ファイルを Apache web サーバーの/etc/conf.d フォルダーに作成します。
説明 description
環境
Adobe Experience Manager
問題/症状
当社のサイトでサービス拒否攻撃、スパム、ハッキングが発生しています。 Apache HTTP Server (AEM Dispatcher)レベルで IP アドレスをブロックする方法
解決策 resolution
Mod セキュリティなどのほとんどの Web Application Firewall (WAF)は、IP アドレスをブロックリストできます。 ただし、Apache HTTP Server を実行中に IP のをブロックする場合は、次の手順に従います(AEM as a Cloud Serviceでは適用されません)
-
サーバーに
block-offending-ips.conf
という名前のファイルを作成します。 -
ファイルをエディターで開き、問題のあるすべての IP がブロックする場所ディレクティブを追加して、ブロックしたい URL にアクセスできないようにします。 ファイルの内容に関する以下の 2 つのオプションがあります。
A. リクエストが(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
B.または、リモートユーザーが Apache に直接アクセスしている場合、または remoteip_module (以下の
[
1]
を参照)を使用して Apache 内で抽出および設定している場合は、mod_authz_core の Require 機能を直接使用できます(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]
remoteip_modulecode language-none # Extract true client IP from header added by load balancer/CDN IfModule remotetip module # valid for ELB or ELB+CloudFront RemoteIPHeader X-Forwarded-For IfModule
-
Apache web サーバーの/etc/conf.d フォルダーに block-offending-ips.conf ファイルをドロップします。
-
Apache HTTP サーバーを再起動します。