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 アプリケーションファイアウォール(WAF)は、IP アドレスをブロックリストできます。
ただし、Apache HTTP Server を実行していて、IP をすぐにブロックする場合は、次の手順に従います。
-
サーバー上に
block-offending-ips.confという名前のファイルを作成します。 -
ファイルをエディターで開き、問題のあるすべての IP がブロックされる場所ディレクティブを追加して、ブロックしたい URL にアクセスできるようにします。 ファイルの内容については、次の 2 つのオプションがあります。
-
(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> -
また、リモートユーザーが Apache に直接アクセスしている場合や、remoteip_module (
[1]を参照)を使用して Apache 内で抽出および設定している場合は、mod_authz_coreの 必須 機能を直接使用できます(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>
-
-
ファイル
block-offending-ips.confを Apache web サーバー/etc/conf.dフォルダーにドロップします。 -
Apache HTTP サーバーを再起動します。