2

Modsecurity と apache を備えた wordpress サイトを持っています。WordPress にアクセスしようとすると、403 Forbidden エラーがスローされます。管理パネルにもフロントエンドにもアクセスできません。ログは次のとおりです。

[Tue Mar 18 08:17:41 2014] [error] [client 122.170.1.216] ModSecurity: Access denied with code 403 (phase 4). Pattern match "^5\\\\d{2}$" at RESPONSE_STATUS. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_50_outbound.conf"] [line "53"] [id "970901"] [rev "2"] [msg "The application is not available"] [data "Matched Data: 500 found within RESPONSE_STATUS: 500"] [severity "ERROR"] [ver "OWASP_CRS/2.2.6"] [maturity "9"] [accuracy "9"] [tag "WASCTC/WASC-13"] [tag "OWASP_TOP_10/A6"] [tag "PCI/6.5.6"] [hostname "www.bullion.ambab.com"] [uri "/research/wp-admin/index.php"] [unique_id "UygBJQoLkgUAABXkL-8AAAAX"]
[Tue Mar 18 08:17:41 2014] [error] [client 122.170.1.216] ModSecurity: Warning. Operator GE matched 4 at TX:outbound_anomaly_score. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_60_correlation.conf"] [line "40"] [id "981205"] [msg "Outbound Anomaly Score Exceeded (score 4): The application is not available"] [hostname "www.bullion.ambab.com"] [uri "/research/wp-admin/index.php"] [unique_id "UygBJQoLkgUAABXkL-8AAAAX"]

これは RuleByID 981205 を無効にすることで解決できます。ワードプレスのソースを変更することでこの問題を解決する方法はありますか?

4

1 に答える 1

0

更新後に変更されたファイルが再び上書きされるため、WordPress のソースを変更することは強くお勧めしません。

mod_securityより良いアプローチは、WordPress システムにさらにいくつかのリクエストを送信できるようにして、ルールを改良することです。

ModSecurity (「modsec」とも呼ばれる) は、さまざまな状況で役立つことが証明されており、サービス拒否 (DoS) 攻撃をもたらす WordPress のブルート フォース攻撃を支援する場合にも当てはまります。このような攻撃を防ぐために多くの WordPress プラグインが存在しますが、カスタム modsec ルールを使用すると、サーバー上のすべての WordPress インストールに対してこのような攻撃を防ぐことができます。Modsec は受信 HTTP リクエストを即座にフィルタリングし、サーバー リソースへの負担を軽減します。

これらのルールは、3 分間でログイン試行が 10 回失敗すると、問題のある IP アドレスへのアクセスを 5 分間ブロックします。これらのルールは、Liquid Web の ServerSecure サービスのカスタム ルールで自動的に更新されています。ServerSecure を使用していないお客様は、これらのルールをカスタム modsec ルールに追加できます。これを行うには、カスタム modsec ユーザー ルールを編集し、以下に示すルールをファイルに追加します。CPanel サーバーの場合、このファイルは次/usr/local/apache/conf/ の場所にある可能性があります。次に例を示します。

SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},initcol:user=%{REMOTE_ADDR},id:5000134
 <Locationmatch "/wp-login.php">
 # Setup brute force detection.
 # React if block flag has been set.
 SecRule user:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
 # Setup Tracking. On a successful login, a 302 redirect is performed, a 200 indicates login failed.
 SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136"
 SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137"
 SecRule ip:bf_counter "@gt 10" "t:none,setvar:user.bf_block=1,expirevar:user.bf_block=300,setvar:ip.bf_counter=0"
 </Locationmatch>
于 2014-03-18T10:05:30.977 に答える