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 をすぐにブロックする場合は、次の手順に従います。
-
という名前のファイルを作成します。
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 "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
の 必須 直接機能(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
。対象:/etc/conf.d
apache web サーバーのフォルダー。 -
Apache HTTP サーバーを再起動します。