WordPressを学ぶ

WordPress投稿が403エラーで更新できない

更新日:

Mixhostレンタルサーバー 403エラーで投稿更新不可

Mixhostレンタルサーバーで、WordPressの特定の投稿(1ページのみ)を更新しようとすると403エラーが発生して更新できない状況が発生しました。

このページは、上記WordPressの投稿更新時の403エラー対応を備忘録として記載しています。

WAFセキュリティにより403エラー表示で投稿が更新できない。
WAFセキュリティにより403エラー表示で投稿が更新できない。

mixhost ヘルプ&サポート情報の確認

Mixhostのヘルプ&サポートページを403エラーで検索すると以下のような項目がありました。

原因不明の403エラーが発生した場合の対処方法

403エラーは表示しようとしているページまたは、ディレクトリのアクセス権限が不適切な場合に表示されるエラーとなります。
以下の事についてご確認頂けますでしょうか。

上記2つに問題が見当たらない場合、WAFによりアクセスが遮断され、エラーが発生している場合がございます。
WAFを無効化する事で問題を解決できる場合がございますので、一度お試し下さい。

WAF/ModSecurityの有効/無効を切り替える方法

引用元
原因不明の403エラーが発生した場合の対処方法

パーミッションの設定が適切で.htaccessが問題ないことを確認した後に、

最終的に、上記方法でModSecurityの有効を403エラーとなる投稿更新時に無効に切り替えることで、更新できるようになりました。

WAFの仕組み
出典 WebセキュリティのEGセキュアソリューションズ
https://siteguard.jp-secure.com/blog/wordpress-security

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エラーが表示されたことしか確認できませんでした。

エラーログ
Latest web server error log messages

imunify360(マルウェア スキャナー)ログの確認

「悪意ありImunify によってマルウェアが検出されました」メッセージが表示されているが履歴表示は無く、詳しい情報は得られませんでした。

また、「事前防御PHPベースの攻撃を防ぐ」項目の設定変更はガードがかかりユーザーでは出来ない仕様になっていました。

imunify360事前防御設定
事前防御設定

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)を追加することができるようです。

【参考】Oracle 保護ルールのチューニング

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)を設定したいページより参照できます。

-WordPressを学ぶ

Copyright© WordPressの始め方 , 2024 All Rights Reserved.