2022-09-09更新の、バージョン5.0.7で不具合が修正されました。ご利用中の方はバージョンアップをしてください。
「All In One WP Security & Firewall」は、WordPressの人気のセキュリティプラグインです。
機能が豊富で私も長年愛用していたのですが、最新バージョンに更新するとログインができなくなる不具合が発生しています。
この不具合は以下の条件で発生するようです。
- バージョンが5.0.0以上(2022-09-01リリース)
- ログイン関連の設定を有効にしている
この記事を書いている時点でバージョン5.0.4ですが、私が管理していて、このプラグインを使用しているサイト(20サイト前後)では、残念ながらいずれも改善されていないため情報を公開します。
なお、この屋号サイトでもインストールしていたのですが被害をまぬがれました。「自動更新を有効にするのを忘れていた」というくだらないミスのせいです。とほほほほ。
不具合の状況
ログイン関連の機能の何が原因となっているかは特定できませんが、「総当たり攻撃>ログインページの名称変更」を行っているサイトでは100%、404ページへリダイレクトされます。
以下のサーバーにインストールしているWordPressで確認しました。この2つでダメだったら、たぶん日本の一般的なレンタルサーバーはもれなく起きると思いますが…
- エックスサーバー(X10 / X20)
- さくらのレンタルサーバー(スタンダード・プレミアム)
解決方法
開発元推薦の方法
開発でも不具合解消のため奔走されているようで、フォーラムでは以下のように記載されていました。
We are debugging the issue.
In between, You can implement the quick solution to overcome the issue: In the AIOS 5.0.4 release, we have given a feature that you can disable the brute force login prevention by adding the below code line in the wp-config.php file:
https://wordpress.org/support/topic/brute-force-attack-prevention-wrong-redirection/
define( 'AIOS_DISABLE_COOKIE_BRUTE_FORCE_PREVENTION', true );
訳すと、「wp-config.php」に以下の一行(グローバル変数)を追加すると、ログイン関連の機能を無効化できるとのことです。
define( 'AIOS_DISABLE_COOKIE_BRUTE_FORCE_PREVENTION', true );
…が、私の環境ではこれではログインできるようにはなりませんでした。
強制的に停止する
WP-CLI(後述)が何なのかわからない、もしくは設置できない場合、プラグインを強制的に停止するしかありません。以下の手順となりますが、慎重に行ってください。
1).htaccess(サイトルート、およびWordPressのルートにあるもの)をエディタで開く
2)以下の記述を探し、中に書いてある定義をすべてコメントアウト(各行頭に半角シャープを2個以上書く)
# BEGIN All In One WP Security
・・・
# END All In One WP Security
※削除ではなく、念のためコメントアウトで残しておいてください。半角シャープを2個以上書くのは、「BEGIN All In One WP Security」のコメントアウトと区別するためです。
3)以下の記述があれば、中に書いてある定義をすべてコメントアウト(各行頭に半角シャープを2個以上書く)
# Begin AIOWPSEC Firewall
・・・
# End AIOWPSEC Firewall
4)サイトルートに以下のファイルがあれば、ファイル名の後ろに適当な英数字を追加して無効化
aios-bootstrap.php
5)WordPressのプラグインを管理しているディレクトリへ移動し、「all-in-one-wp-security-and-firewall」というディレクトリを探す
一般的なWordPressの構成であれば、以下のパスにあるはずです。
/(WordPressのパス)/wp-content/plugins/all-in-one-wp-security-and-firewall
6)ディレクトリ名の後ろに適当な英数字を追加して無効化
7)本来のWordPressのログインページから再度ログイン
一般的なWordPressの構成であれば、以下が本来のログインURLです。
/(WordPressのパス)/wp-login.php
8)プラグインページへ移動し、「プラグインが見つからず無効化された」旨のアラートが表示されることを確認する
これで、ログインはできるようになります。しかしAll In One WP Security & Firewallの機能はすべて無効化されてしまっています。コメントやフォームを使用するサイトを運営している場合は、他のセキュリティプラグインへの乗り換えを検討してください。また、All In One WP Security & Firewallの設定はデータベースに残っているはずなので、新しいセキュリティプラグインと干渉する可能性は考えておかなくてはなりません。バックアップを取ってから作業してください。
WP-CLIで停止する
シェルコマンドでWordPressを操作する「WP-CLI」でコマンドを打ってサーバーから無効化・更新停止をする手もあります。ログインの手順を踏まないので確実です。
上級者向けでWordPressを破壊しかねず、設置に非常に手間がかかるため、ここでは説明しません。なお、さくらのレンタルサーバーでは最初からWP-CLIがインストールされているということを今知ったので試してきます…
いやほんとまじでどうしよう
現場からは以上です。管理しているクライアントには取り急ぎ連絡しましたし、すぐ更新したいサイト以外はもう少し様子を見ますが、無効化以外には手段がない状況です。
もっと確実で推薦される手段は、WordPress・データベースとも8月31日の状態に復元するというものです。復元後すぐにAll In One WP Security & Firewallの更新を停止します。管理画面に入ると更新が始まってしまうことがあるので、可能ならWP-CLIで管理画面を起動せずに停止するのがいいです。ですが、かなり手数がかかりますし、なかなかできる対応ではない、そもそもWordPressを採用しているサイトはそんなに運用コストを想定していないというのが実情です。