WordPress のログイン画面は、サイトの中でいちばん狙われやすい場所です。SiteGuard WP Plugin でログイン URL の変更や画像認証を入れていても、パスワードそのものが漏れてしまえば、そこから先は止められません。
そこで今回、自分の WordPress に2段階認証を追加しました。使ったのは「Two-Factor」というプラグインで、すでに入れていた SiteGuard WP Plugin と併用しています。結論から言うと、問題なく併用でき、ログイン画面の守りがかなり固くなりました。この記事では、プラグインの選び方から設定手順、併用するときの注意点、設定画面で迷った項目までをまとめます。
2段階認証のプラグインはどれを選ぶか
WordPress に2段階認証を入れるプラグインはいくつかあります。主な候補は次のとおりです(執筆時点の情報です)。
| プラグイン | 特徴 | 向いているサイト |
|---|---|---|
| Two-Factor | WordPress.org のコントリビューターが開発。無料で軽く、機能はシンプル。認証アプリ(TOTP)・メール・バックアップコードに対応 | 自分ひとり、または少人数で管理するサイト |
| WP 2FA | 設定ウィザードがあり、特定の権限や全ユーザーに2段階認証を必須にできる | 複数ユーザーのサイト、クライアントに納品するサイト |
| Two Factor Authentication | UpdraftPlus チームが開発。権限ごとの設定や WooCommerce のログインフォームにも対応 | EC サイトなど、ログインする人が多いサイト |
| Wordfence Security | ファイアウォールなどを含む総合セキュリティプラグインの一機能として2段階認証がある | セキュリティ対策をまとめて入れたいサイト |
今回は管理者が自分ひとりのサイトなので、いちばんシンプルな Two-Factor を選びました。ログイン画面まわりの対策はすでに SiteGuard WP Plugin で入れているため、総合セキュリティ系のプラグインを重ねる必要もありませんでした。
ひとつ注意したいのは、Two-Factor には「全ユーザーに2段階認証を強制する」機能がないことです。設定はユーザーごとに、それぞれのプロフィール画面で行います。ほかの編集者やクライアントにも必ず使ってもらいたい場合は、強制機能のある WP 2FA のほうが管理しやすいです。
Two-Factor と SiteGuard WP Plugin は併用できるか
基本的には併用できます。2つのプラグインは守っている場所が違うので、組み合わせることで守りが二重になります。
- SiteGuard WP Plugin:ログイン URL の変更、画像認証、ログインロック、ログインアラートなど、攻撃がログイン画面に届く前、またはパスワードを試される段階での防御を担当します。
- Two-Factor:パスワードが正しいと確認されたあとに、2つ目の要素(スマホの認証アプリに出るコードなど)を求めます。
つまり、ログインの流れは「画像認証とパスワード → 2段階目のコード入力」の順になります。仮にパスワードが漏れても、スマホが手元になければログインできません。
ただし、両方の開発元とも、相手のプラグインとの互換性を公式には明言していません(私が調べた範囲では見つかりませんでした)。導入するときは、次の点に注意してください。
ログインページ変更と組み合わせるときは必ず動作確認
SiteGuard でログイン URL を変更している場合、パスワードのあとに出るコード入力画面が正しく表示されるかを確認します。多くの環境では問題ありませんが、リダイレクトの関係で 404 になったり、ログイン画面に戻されたりする可能性はゼロではありません。今回の環境では問題なく動きました。
「フェールワンス」はオフにするのがおすすめ
SiteGuard の「フェールワンス」は、正しいパスワードを入れても1回目はわざと失敗させる機能です。2段階認証と重ねると、ログインのたびの手間がかなり増えます。2段階認証を入れるなら、フェールワンスはオフにしても防御力はほとんど落ちません。
画像認証・ログインロック・アラートはそのままで OK
これらの機能は Two-Factor とぶつからないので、有効のままで問題ありません。なお、SiteGuard WP Plugin は 2026年に画像認証まわりの脆弱性が修正されています。併用する前に、SiteGuard も最新版に更新しておきましょう。
Two-Factor の設定手順
Two-Factor には、サイト全体の細かい設定画面はほとんどありません(使わない認証方法をサイト全体で止める程度です)。実際の設定は、ユーザーごとのプロフィール画面で行います。
1. プラグインをインストールする
管理画面の「プラグイン → 新規追加」で「Two-Factor」を検索します。似た名前のプラグインが多いので、作者が「WordPress.org Contributors」になっているものを選んで、インストール・有効化します。
2. プロフィール画面で認証アプリを設定する
「ユーザー → プロフィール」を開き、下のほうにある2要素認証の設定欄までスクロールします。認証アプリ(TOTP)の設定を開くと、QR コードが表示されます。
- Google Authenticator や Microsoft Authenticator、パスワード管理アプリなどの認証アプリで QR コードを読み取ります。
- アプリに表示された6桁のコードを「認証コード」欄に入力し、「検証」を押します。
- 検証が通ると、「認証アプリを有効化」に自動でチェックが入ります。
ここで1つ注意があります。QR コードの近くには「シークレットキー」という英数字の文字列も表示されます。これと QR コードがあれば、誰でも同じ認証コードを作れてしまいます。設定中の画面をスクリーンショットで人に送ったり、マニュアル用に保存したりしないでください。うっかり写してしまった場合は、検証する前にページを再読み込みすれば、新しいキーに変わります。
3. リカバリーコードを作って保管する
同じ画面の「リカバリコード(バックアップコード)」で、コードを生成します。表示されたコードはダウンロードするか、パスワード管理アプリに保存しておきます。詳しくは次の章で説明します。
4. メインの方法を選んで保存する
有効にした方法のうち、メイン(Primary)にするものを選びます。通常は認証アプリをメインにします。最後にページ下部の「プロフィールを更新」を押して保存します。
5. ログアウトする前に、別のウィンドウでログインを確認する
いちばん大事な手順です。今のログイン状態は残したまま、シークレットウィンドウを開き、SiteGuard で変更したログイン URL からログインしてみます。パスワードを入れたあとにコード入力画面が出て、管理画面に入れれば完了です。
もしうまくいかず締め出されてしまった場合は、FTP やサーバーのファイルマネージャーで wp-content/plugins/two-factor のフォルダ名を変更すると、プラグインが無効になり、通常どおりログインできます。作業前にこの方法をメモしておくと安心です。
リカバリーコードとは何か
設定中に「リカバリーコードって何?」と迷ったので、まとめておきます。
リカバリーコード(バックアップコード)は、認証アプリが使えなくなったときのための「予備の鍵」です。スマホを紛失した、機種変更でアプリのデータが消えた、故障した、といった場合は、いつもの6桁のコードが手に入りません。そんなときに、コードの代わりにリカバリーコードを1つ入力すればログインできます。
- 1つのコードは1回しか使えません。使ったコードは無効になるので、残りが少なくなったら作り直します。
- 作り直すと、古いコードは全部無効になります。保存してあるものも差し替えてください。
- スマホとは別の場所に保管します。スマホの中にしか保存していないと、スマホをなくしたときに一緒に使えなくなります。パスワード管理アプリや、印刷して手元に置く方法がおすすめです。
- 他人には見せないでください。パスワードと一緒に知られると、2段階認証を突破されてしまいます。
「メールを有効化」はオンにするべきか
プロフィール画面には「メールを有効化」という項目もあります。これは、ログイン時の確認コードをメールで受け取る方法です。有効にすると、パスワードを入れたあとに、プロフィールに登録したメールアドレスへコードが届きます。認証アプリがなくても使える手軽な方法ですが、次の弱点があります。
- 安全性がやや低い:メールアカウントが乗っ取られると、コードも一緒に盗まれます。
- 届かないことがある:WordPress のメールはサーバーから送られるため、迷惑メールに入ったり、遅れたり、届かなかったりします。届かなければログインできません。
認証アプリをメインにしているなら、メールは「オフのまま」にするのがいちばんシンプルです。認証アプリとリカバリーコードがあれば十分です。予備として有効にする場合は、一度自分宛てにコードがきちんと届くかを試しておき、届きにくければ WP Mail SMTP のような SMTP 送信プラグインで送信を安定させます。どちらの場合も、メイン(Primary)がメールになっていないかだけは確認しておきましょう。
設定後に確認しておきたいこと
ほかのユーザーにも設定してもらう
Two-Factor はユーザーごとの設定です。管理者や編集者がほかにもいる場合は、それぞれ自分のプロフィールで設定してもらう必要があります。自分だけ設定しても、ほかのユーザーのパスワードが弱ければ、そこが入口になってしまいます。
外部ツールとの連携は「アプリケーションパスワード」で
2段階認証を有効にしたユーザーは、外部ツールやアプリから REST API・XML-RPC 経由で、通常のパスワードを使って接続できなくなります。連携が必要な場合は、プロフィール画面で「アプリケーションパスワード」を発行して使います。
なお、私の環境ではプロフィール画面の上に「アプリケーションパスワードが使えない」という赤いメッセージが出ていました。これはサイトに Basic 認証をかけているためで、2段階認証の設定には影響しません。
ログイン画面以外の守りも忘れずに
2段階認証で守れるのは、あくまでログインです。WordPress 本体・プラグインの更新や、使っていないプラグインの削除、サーバーのコントロールパネル自体の2段階認証などは、引き続き必要です。サイトの構成によっては、公開側を静的 HTML にして攻撃される入口を減らす方法もあります(WordPressを静的HTML化して本番公開するまで)。
まとめ
- Two-Factor と SiteGuard WP Plugin は併用できる。SiteGuard がログイン画面の手前、Two-Factor がパスワードのあとを守る
- 併用するなら、SiteGuard の「フェールワンス」はオフにすると手間が減る。画像認証・ログインロック・アラートはそのままで OK
- 設定はプロフィール画面で。シークレットキーが写った画面は人に見せない
- リカバリーコードは必ず作り、スマホとは別の場所に保管する
- メール認証はオフのままか、予備としてだけ使う。メインは認証アプリにする
- ログアウトする前に、別のウィンドウでログインできるかを確認する。締め出されたら
two-factorのフォルダ名を変える
設定自体は10分ほどで終わり、普段のログインもスマホのコードを1回入れるだけです。手間のわりに効果が大きい対策なので、SiteGuard WP Plugin を使っている方は、ぜひ組み合わせてみてください。
WordPress の更新やセキュリティ対策をまとめて任せたい方には、保守サービスも行っています(「WP+PHPおまかせ保守」を始めました)。
