この記事では私がWordfenceの設定をいじっていて突如WordPressにログインできなくなったときの原因と、その解決方法について説明します。
あなたの大事なブログを守るため、特にブログの収益化を目指す上では過剰なくらいのセキュリティにしておきたいものですよね。
そんな要望を叶えるべく、よく利用されているのが優秀なセキュリティ系プラグインであるWordfenceやreCAPTCHAなどのプラグインです。
しかしWordPressのプラグインというのはしばしば干渉してしまうことがあるため、適切なプラグインの選別や、設定の吟味が不可欠なのです。
私は、今回のタイトルである2FA(2段階認証)とreCAPTCHAが干渉してWordPressにログインできなくなるという問題に直面して顔が青ざめるような事態となりました。
しかし海外フォーラム等を参考にして作業を進めた結果、無事原因と解決方法がわかりましたのでこの記事で共有します。
Wordfence Securityの2FA(2段階認証)設定方法と起きた問題
Wordfenceとは、無料のままでも非常に多機能で優秀なWordPressのセキュリティ系プラグインです。
今回は、数ある機能の中でも問題となった2FA(2段階認証)設定方法の手順を追いながら、その問題について説明します。
Wordfenceでの2FA(2段階認証)設定方法
自サイトのWordPressにログイン後、画面左下の”Wordfence”にカーソルを合わせ、”Login Security”をクリックします。
“Enable 2FA for these roles”の項目で、2段階認証を有効化したい権限グループにチェックを入れて、”SAVE”ボタンをクリックします。
権限グループの種別
Administrator | 管理者 |
Editor | 編集者 |
Author | 投稿者 |
Contributor | 寄稿者 |
Subscriber | 購読者 |
となります。
WordPress管理画面の左側の”ユーザー”にカーソルを合わせ、”あなたのプロフィール”をクリックします。
下の画像のようなプロフィール設定画面が表示されますので、画面下の方にスクロールします。
Wordfence Login Security という項目があり、ここで2段階認証が現在有効なのか無効なのかが確認できます。有効化するために”Activate 2FA”ボタンをクリックします。
画面左側の”1. Scan Code or Enter Key”という項目内に、大きなQRコードが表示されますので、スマートフォンで2段階認証用の下記アプリ等を使ってQRコードを読み込みます。
Google Authenticator(Google 認証システム)
Authy 2-Factor Authentication
まだアプリをインストールしていない場合は、AndroidではGoogle Playで、iPhoneではApp Storeでアプリ名を検索してインストールしてください。
個人的には”Authy”が利便性が高くおすすめですが、英語が読める人向けです。
PCに戻り、Wordfenceの画面右側にある”DOWNLOAD”ボタンを必ずクリックして、リカバリーコードを絶対に忘れず、他人に見られない場所に保存しておきます。
スマートフォンの2段階認証アプリでQRコードを読み込んだら、アプリ内で数字が表示されますので、それをPCのWordfence画面右下の小さなフォームに入力して、”ACTIVATE”ボタンを押します。
※ただし、今回起きた問題ではリカバリーコードですら何の役にも立ちませんでした😱
“ACTIVATE”ボタンを押すと、リカバリーコードをダウンロードしておくようて改めて忠告してくれます。
リカバリーコードのダウンロード忘れたままACTIVATEしてしまった場合は、このタイミングで必ずダウンロードしておきましょう。
ここまでで、Wordfenceでの2段階認証の設定自体は完了です。
ちゃんと2段階認証を使ってログインできるか、いったんログアウトして試してみましょう。
WordPressのいつのものログイン画面にアクセスします。
すると、2FA Codeというフォームが表示されるので、ここにスマートフォンの2段階認証アプリで表示される数字を入力します。ここが、新たに追加された2段階認証ログイン用のページです。
“Remember for 30 days”というチェックボックスにチェックを入れると、そのデバイスでログインする場合に必要になる2段階認証が30日ごとになります。
reCAPTCHA関係のプラグインを導入していない場合は、ここでめでたく管理画面にログインできて、検証終了になると思います。お疲れさまです!
2FA(2段階認証)設定後に起きた問題
しかし、
reCAPTCHA関係のプラグインを導入している場合は、次の恐ろしい画面が表示されるはずです。
この画面を見たときは血の気が引きました。
自分たちが運営しているのは、まだまだ駆け出しの弱小ブログですが、毎日コツコツと執筆やカスタマイズを重ねてきた大事なブログです。
それがこの一瞬でログインできなくなったのですから、めちゃくちゃ焦りました。
この後、自分のIDやパスワード、2段階認証アプリに表示された番号を100%間違いないことを確認してリトライしましたが、見事3回とも間違えと判定されてしまい自分のブログから締め出されログインできなくなってしまいました。
なんと、このときは先程用意していたリカバリーコードすら受け付けてもらえなかったのです。
reCAPTCHA導入済み環境でWordfenceの2FA(2段階認証)設定後、WordPressにログインできなくなった場合の解決法方法
ここからがこの記事の本題です。
Wordfenceの2FA(2段階認証)を無効化してWordPressにログインする方法
reCAPTHA導入済み環境でWordfenceの2段階認証をこれまでの手順で進めてしまった場合は、恐らくこのままWordPressにログインすることはもう不可能ですので、直接サーバーのファイルを編集して対処します。
ColorfulBox(カラフルボックス)のサーバーを契約している場合は、ブラウザから自分の契約しているサーバーにログインし”cPanel”を開いたあと、”ファイルマネージャー”をクリックします。
※FileZillaのようなFTP系ソフトを普段から使用している場合は、それでもかまいません。
ファイルマネージャーを開いたあとは、下記のディレクトリを開きます。
public_html/自サイトのドメイン/wp-content/plugins
ファイルマネージャーの右画面に”wordfence”のフォルダがありますので、右クリックをして”Rename”をクリックします。
“wordfence”フォルダの名前を変更できる状態になりますので”xwordfence”等、元の名前とは別の名前に変更します。
“wordfence”フォルダの名前を変更した瞬間から、WordPressではWordfenceの機能を一切遂行できなくなります。
つまり、この時点で2段階認証が無効化されると同時に、Wordfence本来のセキュリティ機能もすべて無効化された状態となりますので、この操作をした後は迅速に次の手順に進んでください。
2段階認証が無効化された状態となっていますので、通常どおりWordPressにログインします。
これまでの手順を正しく踏んでいれば、ここで再びログインできるようになっているはずです。ひとまずは安心できましたね。
ログインが完了したら、再びサーバーのファイルマネージャーに戻り、変更したフォルダの名前を、元の名前に戻します。
(上記手順の例どおりであれば”xwordfence”から”wordfence”に戻します。)
フォルダ名が元に戻った瞬間から、Wordfence本来のセキュリティ機能が復活します。
WordPressの管理画面内でブラウザを更新すると、Wordfenceのメニューが再び表示されることが確認できます。
当然、2段階認証も再び復活していますので、このままWordPressからログアウトしてはいけません。次の手順に進んでください。
※2段階認証が恐ろしくなってしまった場合は、この状態からWordfenceの設定を変更して2段階認証を無効化し、reCAPTCHAを有効なままにするという選択肢もあります。
reCAPTCHAと2FA(2段階認証)を共存させる方法
色々調べてみた結果、どうやらreCAPTCHAと2FA(2段階認証)の両方がWordPressのログインページにある場合に、今回のような問題が起きてしまうようです。
(もしかしたらreCAPTCHA v3だけの問題で、v2は大丈夫かもしれません?)
Wordfenceのサポートフォーラムでも、現状はどちらかをオフにするしか解決策の回答が見当たりませんでした。
そんなわけで、ログインページのreCAPTCHAを無効化して2段階認証を有効化することで今回の問題を解決したいと思います。なぜ2段階認証の方を生かそうと思ったのかは後述します。
reCAPTCHAのプラグインは”Advanced no Captcha & Invisible captcha“がインストールされている環境を元に説明します。
※現在プラグイン名は「CAPTCHA 4WP」に変更されています。
WordPress管理画面左下の”設定”にカーソルを合わせ、”Advanced no Captcha & Invisible captcha”をクリックします。
※Wordfence自体にもreCAPTCHAの機能が搭載されていますが、今回の問題同様の理由で干渉すると思われるので使用はおすすめしません。
設定画面に入ったら”Login Form”のチェックボックスをオフにして、画面下までスクロールしたら左下にある”変更を保存”ボタンを必ずクリックします。
※ここの保存は忘れやすいので注意してください。
その他の場所についてはチェックボックスオンのままでも問題ありません。
たったこれだけで、Wordfenceの2FA(2段階認証)が正常にログインページで動作するようになります。
設定箇所に不備がないことを確認したら、再びWordPressからログアウトして再度ログインしてみてください。
WordPressのログインページではreCAPTCHAと2FA(2段階認証)のどちらを優先すべきか
現状、WordPressのログインページではreCAPTCHAと2FA(2段階認証)は共存できないと考えられる以上、最善のセキュリティを得るためにはどちらか優秀な方を選択して残す必要があります。
YSYK個人の私見としてはWordPressのログインページにおいては、2FA(2段階認証)を残すべきだと考えています。
というのもreCAPTCHAは人間とボットを区別して排除してくれる優れた機能ですが、Wordfenceのセキュリティ機能ではブルートフォースアタック(総当たり攻撃)への対策も用意されており、ログイン試行回数の制限もあることから適当なIDやパスワードへの耐性はある程度確立されています。
であれば対策すべきは万が一、正式なIDやパスワードが何らかの問題により漏洩するなどした際の最後の砦としての2FA(2段階認証)だと考えました。
2段階認証を導入していれば、2段階認証に使用した現実のデバイスである自分のスマートフォンを紛失したり、盗難されたりしない限りは原則、ログインページから不正にログインするということはできないからです。
おわりに
reCAPTCHAと2FA(2段階認証)の導入を薦める日本のブログサイトは多いですが、今回のような致命的な状況に陥った際の日本語の情報はほとんど見当たらなかったので、今回の記事が誰かの助けになれば嬉しいです。
こういう問題は海外フォーラムや英語での検索をすると、すんなり解決策が見つかったりするのでなおさら自分の英語力も鍛えていきたいなと思いました。
セキュリティはとても大事ですが、自分のブログが壊れてしまっては本末転倒ですので皆さん今一度落ち着いて作業することを心がけましょう。
コメント
こちらの記事に救っていただきました!
初心者ながら、やっとの思いで Invisible reCaptcha for WordPress と Authy を導入したところログインできなくなっていました。。
(Google reCAPTCHAの登録ですら、新しい登録方法を見つけるのが大変で……。)
どうしようかと途方にくれていましたが、ご説明のとおりに作業したところ、おかげさまで無事にログインできるようになりました。
感謝です!
ありがとうございました^^
コメントありがとうございます!
この記事がお役に立てたようで何よりです。
reChaptcha v3とWordfence 2FAを共存させているのですが、今のところ問題は起きていません。”YSYK”さんのサイトに問題が起きたあと改善されたのか・・・
それとも問い合わせフォームのプラグインによって差があるのか・・・(僕はSnow Monkey Forms)を使っています。
問題が発生したタイミングは2FAインストール直後でしょうか?
この記事を作成したのが2020年のはじめなので明確な記憶はありませんが、新しい機能を導入するときは動作チェックを随時していたと思うので、私は2FAの設定直後にこの問題に直面しているはずです。
Wordfenceの更新履歴をざっと見直してみても直接的に”reCAPTCHAと2FAの干渉問題を修正した”という記載は見当たらなかったので、reCAPTCHA側の仕組み自体が改善されたのかもしれません(未検証なので詳細は不明です)
どちらの機能も有効化した状態でWordPress自体のログイン・ログアウトに問題がないのであれば、そのまま使っていても良さそうですね。
関係あるかはわかりませんが、現状このサイトの問い合わせフォームはContact Form 7を使っています。
ありがとうございます!
今後何か問題が起こるようならコメントさせていただきます。