Apache HTTP Server レベルで IP アドレスをブロックする方法
ほとんどの Web アプリケーションファイアウォール (WAF) は、IP アドレスのブロックリストを可能にします。 ただし、Apache HTTP サーバーを実行していて、IP をすぐにブロックする場合は、記事の手順に従ってアクセスリストを作成するか、Apache の Require
機能。
説明 description
環境
Adobe Experience Manager(AEM)
問題
サイトで DoS(DoS) 攻撃、スパム、またはハッキングが発生している場合、Apache HTTP Server(AEM Dispatcher) レベルで IP アドレスをブロックする方法を教えてください。
解決策 resolution
ソリューション
mod セキュリティなど、ほとんどの Web アプリケーションファイアウォール (WAF) は、IP アドレスのブロックリストを可能にします。
ただし、Apache HTTP サーバーを実行していて、IP をすぐにブロックする場合は、次の手順に従います。
-
という名前のファイルを作成します。
block-offending-ips.conf
をサーバー上に置き換えます。 -
ファイルをエディターで開き、ブロックする URL に対して、問題のある IP がアクセスするのをすべてブロックする Location ディレクティブを追加します。 以下のファイルのコンテンツには、2 つのオプションがあります。
-
リクエストがプロキシ化された場合(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>
-
または、リモートユーザーが Apache に直接アクセスしている場合や、 remoteip_module を使用している場合 (
[
1]
) を使用して抽出し、Apache 内で設定します。その場合は、mod_authz_core
's 必須 機能を直接 (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>
-
-
ファイルをドロップします。
block-offending-ips.conf
in/etc/conf.d
Apache Web サーバーのフォルダー。 -
Apache HTTP サーバーを再起動します。