概要
高速なWordPressの実行環境として、KUSANAGIがあります。このKUSANAGIの利用時に、WordPressの管理画面などで表示が崩れたり、403エラーが発生したりすることがありました。
ここでは、この問題を解決する方法を説明します。
環境
- CentOS Stream release 8
- KUSANAGI Version 9.1.11-4.el8
問題について
どのような問題が発生したのか明確にします。私の環境で発生した問題は次のものです。
- 管理画面にログインできない
- 403エラーが発生
- 新規投稿などのページが真っ白で表示される
- 管理画面の一部のページでメニューが正しく表示されないなど表示が崩れる
こちらのエラーが発生するのは時々で、うまくいくときもあります。しかしうまくいかないときもあったりするので、問題の解決まで時間がかかりました。
解決方法
今回の問題は、2つの原因がありました。どちらも、KUSANAGIが提供するセキュリティに関する機能に起因するものです。
ひとつは、同じ人が短期間にたくさんのアクセスをしてサイトの動作を妨害する攻撃を防止する機能です。管理画面では、何度もサーバーにアクセスするので、表示が崩れたり、ページが真っ白になったりするのは、この機能が原因と考えられます。
この機能を停止するには、サーバーにログイン後、次のコマンドを実行します。
# kusanagi ratelimit off profile名
ふたつめは、不審なアクセスを検知してアクセスを遮断するWAFという機能です。ログインがうまくできないのはこちらが原因と思われます。ログイン情報などを送信する際に不審なアクセスと判断され、403エラーが発生したと考えられます。
この機能を停止するには、サーバーにログイン後、次のコマンドを実行します。
# kusanagi waf off
ratelimitの方は、プロファイルごとに機能の有効、無効を切り替えられますが、WAFは、サーバー全体の設定となります。そのため、ratelimitではプロファイルの名前を記述する必要があります。
これらの機能は、セキュリティを高めるためにあるものですので、無効にすることでセキュリティが低下するという別の問題があります。しかし、そもそも満足に利用できないのであれば本末転倒ですので、これについては諦めて無効にしています。もしも、セキュリティを緩めたくない場合は、利用の都度、機能の有効無効を切り替えるという方法があります。
さいごに
KUSANAGIでセキュリティを高める機能が逆に悪さをしてしまっているのが原因でした。ratelimitについては、デフォルトで有効となるものですので、原因を探すのに苦労しました。
レンタルサーバーとは異なり、KUSANAGIはサーバーを操作しなければならないので、このような問題を自力で解決しなければならず、結構面倒に思いました。
同じ問題を抱えている人の参考になれば嬉しいです。