Mixhostレンタルサーバー 403エラーで投稿更新不可
Mixhostレンタルサーバーで、WordPressの特定の投稿(1ページのみ)を更新しようとすると403エラーが発生して更新できない状況が発生しました。
このページは、上記WordPressの投稿更新時の403エラー対応を備忘録として記載しています。
mixhost ヘルプ&サポート情報の確認
Mixhostのヘルプ&サポートページを403エラーで検索すると以下のような項目がありました。
原因不明の403エラーが発生した場合の対処方法
403エラーは表示しようとしているページまたは、ディレクトリのアクセス権限が不適切な場合に表示されるエラーとなります。
以下の事についてご確認頂けますでしょうか。
- パーミッションの設定が適切か確認する
- .htaccessの設定を編集した場合には、元に戻す
上記2つに問題が見当たらない場合、WAFによりアクセスが遮断され、エラーが発生している場合がございます。
引用元
WAFを無効化する事で問題を解決できる場合がございますので、一度お試し下さい。
原因不明の403エラーが発生した場合の対処方法
パーミッションの設定が適切で.htaccessが問題ないことを確認した後に、
最終的に、上記方法でModSecurityの有効を403エラーとなる投稿更新時に無効に切り替えることで、更新できるようになりました。
WAFエラー原因調査
WAF(Web Application Firewall)のセキュリティが影響して特定の投稿(1ページのみ)でエラーとなっている原因を下記の通り調査しました。
エラーメッセージLatest web server error log messagesの確認
2023-01-** 08:50:**.**** [INFO] [1821534] [T0] [**.**.**.***:29783:HTTP2-7#APVH_ドメイン名:443] File not found [/home/ffbitosb/public_html/ドメイン名/403.shtml]
cPanelのエラーメッセージからは、403エラー発生日時とアクセスした端末および403エラーが表示されたことしか確認できませんでした。
imunify360(マルウェア スキャナー)ログの確認
「悪意ありImunify によってマルウェアが検出されました」メッセージが表示されているが履歴表示は無く、詳しい情報は得られませんでした。
また、「事前防御PHPベースの攻撃を防ぐ」項目の設定変更はガードがかかりユーザーでは出来ない仕様になっていました。
ModSecurity監査ログを調査
ModSecurity監査ログは、/var/log/httpd/modsec_audit.logです。
Mixhostレンタルサーバーでは、ユーザーに解放されるディレクトリは/home/ffbitosb以下のため上記ファイルは確認できないためインジェクション攻撃の種類は確認できません。
ModSecurityによる誤検知調査
How to fix 403 Forbidden Error in WordPress caused by ModSecurityサイト情報によると、WordPress の投稿やコメント操作の際に誤検知の可能性があり、その場合の対処としてModSecurity 構成に除外の特定ルール(SecRuleRemoveById 除外するルールID)を追加することができるようです。
Mixhostサポートへ問い合わせと回答
質問1
サポート側でModSecurity監査ログhttpd/modsec_audit.logのデータ取得はできますか?
(SiteguardプラグインWAF機能利用時のシグネチャ名またはシグネチャIDを確認したい。)
また、利用者側でログ収集・確認する方法はありますか?
Mixhostサポート回答
→弊社側にてmodsec_audit.logを閲覧することは可能でございますが、root権を用いる必要があるログをお客様側で確認および収集することはできないものとなります。
またそれらのログ内容の提供も出来かねるものとなります。
質問2
MixhostレンタルサーバーにJP-Secure製WAF SiteGuard Server Editionは導入されていていますか?
(SiteguardプラグインWAF チューニングの説明ページに WebサーバーにJP-Secure製WAF SiteGuard Server Editionが導入されていて、正常なアクセスがWAFによって遮断されてしまう場合に、それを回避するルールを作成することができます。という説明があります。)
Mixhostサポート回答
→SouftaculousのWordPress内のプラグインよりJP-Secure提供の「WAF SiteGuard Server Edition」を追加およびご利用いただくことが可能でございます。
質問3とお願い
Mixhostでは、SiteguardプラグインWAF機能を利用しての回避ルール作成は可能ですか?
可能な場合は設定方法を教えてください。
Mixhostサポート回答
→大変恐縮ですが、弊社側でプラグイン等を含むサポートおよびチューニング等は出来かねますためご了承ください。
質問1と質問3の回答より、以下確認いたします。
WAFによる遮断要因となったシグネチャがユーザー側で確認できないことから、Mixhostではユーザー側でシグネチャを元にしたWAF除外ルール設定はできない。
Mixhostサポート回答
→上記のご認識でお間違いありません。
そのため、各ユーザー様にてWAF/ModSecurityに関する機能については既にご対応いただいております、cPaneからの同機能の有効化・無効化までとなります。
SiteGuardプラグインWAFチューニングサポートの使用調査
SiteGuardプラグインのWAFチューニングサポートは、プラグイン内で以下の様に説明されています。
WebサーバーにJP-Secure製のWAF ( SiteGuard Lite ) が導入されている場合に、WordPress内での誤検知(正常なアクセスなのに、403エラーが発生する等)を回避するためのルールを作成する機能です。
WAFは、Webサーバーに対する外部からの攻撃を防ぎますが、WordPressの機能や、プラグインの機能によっては、WAFが攻撃でないのに攻撃と判断して、その機能をブロックする場合があります。除外ルールを作成することで、特定の機能での誤検知を防ぎつつ、全体としてのWAFの防御機能を活かすことができます。
正常なアクセスの遮断を回避するルール作成は、WAFチューニングサポートサイトに記載されています。
MixhostでのWAFエラー対処
Mixhost では、ModSecurity監査ログを利用してのWAF除外ルール設定をすることが出来ません。
よって、誤検知によると考えられるWAFエラーが発生しているページ書き込み時に、WAF機能全体を未使用にして書き込む方法しか対応する術はないようです。
【参考】ロリポップのWAFの設定方法
ロリポップレンタルサーバーでの検知ログの参照方法とWAFの設定変更方法は、ロリポップWAFの設定ページより参照できます。
WAFエラー検知ログを参照できますが、WAFの有効化設定はドメイン単位です。
【参考】SAKURA internetのWAF設定
SAKURA internetのWAFの設定は、Webアプリケーションファイアウォール(WAF)を設定したいページより参照できます。