WordPressログインセキュリティ
完全強化ガイド
WordPressへの不正ログイン試行は1サイトあたり1日数百〜数千件に達します。ログインURL変更・試行回数制限・CAPTCHA・二要素認証・IP制限を組み合わせた多層防御で、不正ログインを99%以上防止できます。
📋 目次
⚔️ 1. ログインへの攻撃パターンを理解する
適切な対策を選ぶために、まず攻撃者がどのようにWordPressのログインを狙うかを理解しましょう。
主なログイン攻撃の種類
| 攻撃種別 | 仕組み | 効果的な対策 |
|---|---|---|
| ブルートフォース攻撃 | 同一IPから大量のパスワードを試す | 試行回数制限・CAPTCHA・IP制限 |
| 分散型ブルートフォース | 複数のIPから少量ずつパスワードを試す | 2FA・強固なパスワード・WAF |
| クレデンシャルスタッフィング | 他サービスから流出したID/PWを試す | パスワード使い回し禁止・2FA |
| 辞書攻撃 | よく使われるパスワードリストを順番に試す | 強固なパスワード・試行回数制限 |
| XMLRPCへの攻撃 | xmlrpc.phpを使った無制限のログイン試行 | xmlrpc.phpの無効化 |
典型的なブルートフォース攻撃のタイムライン
🔗 2. 【対策1】ログインURLの変更
WordPressのデフォルトログインURL(/wp-admin/・/wp-login.php)は世界中で知られており、攻撃ボットが真っ先に探します。URLを変更するだけで自動攻撃の大半を回避できます。
日本語のCAPTCHA機能付き。ログインURL変更・試行回数制限・管理ページ保護をワンパッケージで提供。国内サーバーでの利用実績が最も多い。
URLの変更のみに特化したシンプルなプラグイン。軽量で他のセキュリティプラグインとの併用も容易。既にWordfenceを使っている場合はこちらが適している。
SiteGuard WP Pluginでのログインページ変更手順
プラグインのインストール
管理画面 → プラグイン → 新規追加 → 「SiteGuard WP Plugin」を検索 → インストール → 有効化
有効化直後にメモを取る
プラグインを有効化すると自動的にログインURLが変更されます。画面に表示される新しいURLを必ずすぐにメモしてください。忘れると自分もログインできなくなります。
ログインページ変更設定を開く
管理画面 → SiteGuard → ログインページ変更 → ランダムな文字列をより覚えやすい文字列に変更(例:login_abc123xyz)
新URLをブックマークに保存
変更後の新URLをブラウザのブックマークに保存し、パスワードマネージャーにも記録してください。
🚫 3. 【対策2】ログイン試行回数の制限
同一IPからの連続したログイン失敗をブロックする設定です。ブルートフォース攻撃対策として最も基本的かつ効果的な手法です。
推奨設定値
| 設定項目 | 推奨値 | 注意事項 |
|---|---|---|
| ロックアウトまでの失敗回数 | 3〜5回 | 厳しすぎると自分もロックされる |
| ロックアウト時間 | 20〜60分 | 短すぎると攻撃再開を許す |
| ロックアウト通知 | メール通知を有効化 | 攻撃を早期検知できる |
| 自分のIPをホワイトリスト | 推奨(固定IPの場合) | 自分がロックされるリスクを解消 |
Limit Login Attempts Reloadedを使った設定
Limit Login Attempts Reloadedをインストール
管理画面 → プラグイン → 新規追加 → 「Limit Login Attempts Reloaded」を検索 → インストール → 有効化
設定画面で推奨値を入力
設定 → Limit Login Attempts → 「許可するリトライ回数」を4、「ロックアウト時間」を30分に設定 → 「GDPR準拠メッセージ」を有効化 → 保存
メール通知を有効化
「ロックアウト後にメールで通知する」を有効にすると、攻撃発生時に管理者にメールが届きます。攻撃の傾向を把握するためにも有効化推奨です。
🤖 4. 【対策3】CAPTCHA(reCAPTCHA)の設定
CAPTCHAはログインフォームに「人間であることの証明」を追加する仕組みです。ボットによる自動ログイン試行を効果的に防ぎます。
CAPTCHAの種類と比較
| 種類 | 仕組み | UX | おすすめ度 |
|---|---|---|---|
| reCAPTCHA v2(チェックボックス) | 「私はロボットではない」チェック | やや手間 | ★★★☆☆ |
| reCAPTCHA v3(スコアベース) | ユーザーの行動を分析・スコア判定 | クリック不要 | ★★★★☆ |
| 日本語CAPTCHA(SiteGuard) | ひらがなを画像で表示・入力確認 | 日本語話者には自然 | ★★★★★(国内サイト) |
| hCaptcha | reCAPTCHAの代替・プライバシー重視 | 普通 | ★★★★☆ |
| Cloudflare Turnstile | 完全非表示・バックグラウンド検証 | 最もスムーズ | ★★★★★ |
Google reCAPTCHA v3の設定手順
Google reCAPTCHA管理コンソールへアクセス
https://www.google.com/recaptcha/adminにアクセスし、Googleアカウントでログイン → 「+」ボタンで新規登録
サイト情報を入力
ラベル:サイト名を入力
reCAPTCHAタイプ:「v3」を選択
ドメイン:あなたのドメインを追加 → 送信
サイトキーとシークレットキーをコピー
表示される「サイトキー」と「シークレットキー」を安全な場所に保存します(次のステップで使用)。
Advanced noCaptcha & invisible Captchaプラグインをインストール
管理画面 → プラグイン → 新規追加 → 「Advanced noCaptcha」を検索 → インストール → 有効化
APIキーを入力して設定
設定 → Advanced noCaptcha → 取得したサイトキーとシークレットキーを入力 → 適用箇所で「ログインページ」を選択 → 保存
📱 5. 【対策4】二要素認証(2FA)の詳細設定
二要素認証は基本対策ページでも紹介しましたが、ここでは権限別の設定や複数ユーザーがいる場合の管理方法も含めて詳しく解説します。
権限別の2FA適用設定
すべてのユーザーに2FAを強制するか、管理者のみに適用するかを選択できます。WooCommerceなど会員制サイトでは顧客全員に2FAを強制すると離脱につながるため注意が必要です。
| ユーザー権限 | 2FA推奨度 | 理由 |
|---|---|---|
| 管理者(Administrator) | ★★★★★ 必須 | 最も高い権限を持つためリスク最大 |
| 編集者(Editor) | ★★★★☆ 強く推奨 | コンテンツ改ざんのリスクあり |
| 投稿者(Author) | ★★★☆☆ 推奨 | 記事投稿・編集権限あり |
| 購読者(Subscriber) | ★☆☆☆☆ 任意 | 権限が低いため優先度は低い |
add_filter( 'wp_is_application_passwords_available', '__return_false' );
🌐 6. 【対策5】IPアドレス制限(上級)
固定IPアドレスを持っている場合、ログインページへのアクセスを特定のIPのみに制限することで、他のすべてのIPからのアクセスをブロックできます。最も強力な防御ですが、外出先やモバイルからのアクセスができなくなる場合があります。
.htaccessによるログインページのIP制限
WordPressルートの.htaccessに以下を追記します(YOUR_IPを自分のIPアドレスに変更):
# wp-login.phpへのアクセスをIPで制限
<Files wp-login.php>
order deny,allow
deny from all
allow from YOUR_IP
# 複数IPを許可する場合は以下に追加
# allow from ANOTHER_IP
</Files>
# wp-adminディレクトリへのアクセスをIPで制限
<Directory /wp-admin>
order deny,allow
deny from all
allow from YOUR_IP
</Directory>
Cloudflareを使ったアクセス制御(推奨)
CloudflareのAccess機能(無料プランでも一部利用可能)を使うと、ログインページへのアクセスをメールアドレス認証などで保護できます。IPが変わっても対応できるため、動的IPユーザーにも適しています。詳細はWAF設定ページで解説しています。
📊 7. ログイン履歴・ログの確認方法
不正アクセスの早期検知のために、ログイン履歴を定期的に確認することが重要です。
Simple History プラグインで確認する
プラグインのインストール
プラグイン → 新規追加 → 「Simple History」を検索 → インストール → 有効化。ダッシュボードにログイン履歴が表示されるようになります。
不審なログインを確認する
ダッシュボード → Simple History で以下を確認:
・見知らぬIPアドレスからのログイン成功
・自分が行っていない設定変更
・深夜帯のログイン
・連続したログイン失敗
🆘 8. ロックアウトしてしまった場合の対処法
セキュリティ設定を誤って自分がログインできなくなった場合の対処法です。
方法1:プラグインをFTPで無効化する
FTPでサーバーに接続
FTPクライアント(FileZilla等)でサーバーに接続し、wp-content/plugins/ディレクトリを開く。
原因のプラグインフォルダをリネーム
ロックアウトの原因と思われるプラグインのフォルダ名を変更(例:siteguard → siteguard_disabled)。WordPressはフォルダが見つからないとプラグインを自動的に無効化します。
ログイン後にフォルダ名を戻す
管理画面にログインできたら、フォルダ名を元に戻してから設定を修正し、再度有効化してください。
方法2:デフォルトのログインURLに直接アクセス
ログインURLを変更している場合でも、/wp-login.phpに直接アクセスすると、多くの場合SiteGuardの保護を迂回してアクセスできます(SiteGuardの設定によります)。