Hushfort

WordPress のログイン URL を変更するには?

執筆:Eureka Studio · 更新日

要点

WordPress のログイン画面は、常に /wp-login.php と /wp-admin にあります。これを変更するには、ログインを隠すプラグインを使います。新しいパスを決めて人目につかない場所に保存し、ログアウトする前にプライベートウィンドウでテストします。以後、古いアドレスは 404 を返します。手作業で行うとコアファイルの名前を変えることになり、更新のたびに壊れてしまいます。

手順

  1. 1手順 1

    現在のログイン画面の場所を確認する

    ブラウザーで yoursite.com/wp-login.php を開きます。標準のインストールでは誰にでもログインフォームが表示されます。だからこそ、ボットはまずここを狙います。

    yoursite.com/wp-login.php にある標準の WordPress ログインフォーム。誰でもアクセスできる
  2. 2手順 2

    ログイン非表示を有効にしてパスを決める

    WordPress で「Hushfort → ログイン非表示」を開きます。「有効化」をオンにし、自分には覚えやすく他人には推測しにくいパス (例: quiet-gate-27) を入力します。「ブロックしたアクセスへの対応」は 404 ページのままにして「変更を保存」を押します。新しいログイン URL が入力欄の下に表示されます。

    wp-admin の Hushfort「ログイン非表示」タブ。「有効化」がオンになり、隠しログインパスに quiet-gate-27 が入力され、設定が保存されている
  3. 3手順 3

    新しい URL を人目につかない場所に保存する

    Hushfort の「概要」では、「アクセスできなくなったら」カードにログイン URL が表示されています。ほかの作業をする前に、今すぐパスワードマネージャーにコピーしてください。この一手間で、締め出しのほとんどを防げます。

    Hushfort「概要」の「アクセスできなくなったら」カード。ログイン URL yoursite.com/quiet-gate-27 と、緊急用の wp-config.php の行が表示されている
  4. 4手順 4

    ログアウトする前にプライベートウィンドウでテストする

    今のタブはログインしたままにしておきます。プライベートウィンドウを開いて新しいパスにアクセスし、通常の WordPress ログインフォームが表示されることを確認します。

    新しいパス yoursite.com/quiet-gate-27 で開いた WordPress ログインフォーム
  5. 5手順 5

    古い入口が閉じたことを確認する

    同じプライベートウィンドウで wp-login.php と wp-admin にアクセスします。どちらも、存在しないアドレスと同じく、テーマの「ページが見つかりません」ページが表示されるはずです。

    yoursite.com/wp-login.php にテーマの「ページが見つかりません」ページが表示されている

なぜ重要なのか

世界中のすべての WordPress サイトは、同じ 2 つのアドレス /wp-login.php と /wp-admin で応答します。ボットはそれを知っています。ログインページを探す必要すらなく、アクセスできるあらゆるサイトにそのままリクエストを送り、パスワードの推測を始めます。

ログインを自分だけが知っているパスに移せば、サイトはその群れから外れます。自動化された推測スクリプトは 404 にぶつかって去っていきます。ログは静かになり、サーバーの負担は減り、残った試行も読み取りやすくなります。

これでできないこと。 ログインを隠すのは「隠す」ための層です。狙われやすい標的を消してくれますが、何かに鍵をかけるわけではありません。WordPress には別の入口があり、最も重要なのが xmlrpc.php です。これは単独でユーザー名とパスワードを受け付けます。XML-RPC の入口が開いたままログインページだけを隠すのは、正門を隠しても横の通用口に鍵をかけていないようなものです。この手順は、いくつかある対策の最初の一つと考えてください:

  • ログインの失敗回数を制限する
  • 管理者に二要素認証のログインを追加する
  • XML-RPC のログインとユーザー名の漏えいを塞ぐ
  • 推測されにくい使い回さないパスワードを使い、WordPress を最新に保つ

よくある間違い

  • テストする前にログアウトする。 新しいパスは、メインのタブでログインしたまま、必ずプライベートウィンドウでテストしてください。何かおかしくても、まだ修正できます。
  • URL を保存しない。 「覚えておけば大丈夫」が、締め出しの最も多い原因です。パスワードマネージャーに入れておきましょう。
  • わかりやすいパスを選ぶ。 /login、/admin、/secure は、ボットが真っ先に試すものです。一般的な単語をそのまま使うのは避けましょう。
  • ほかの入口を忘れる。 XML-RPC のログインが開いたままなら、パスワードの推測がそちらに移るだけです。XML-RPC を安全に無効化する方法をご覧ください。
  • 新しいパスをキャッシュする。 CDN やページキャッシュがログインページを保存すると、フォームが壊れることがあります。wp-login.php と同じように、そのパスをキャッシュの対象外にしてください。

プラグインを使わない方法

WordPress には、ログイン URL を変更する設定がありません。手作業での方法は次のとおりです。

wp-login.php の名前を変える。 wp-login.php を別のファイル名でコピーし、中の参照をすべて書き換える方法を紹介しているガイドもあります。しかしこれは、WordPress を更新した瞬間に壊れます。更新で元のファイルが復元され、コピーは古いまま取り残されるからです。おすすめしません。

サーバーでファイルへのアクセスを制限する。 Apache なら、.htaccess で wp-login.php へのアクセスを自分の IP アドレスだけに制限できます:

<Files wp-login.php>
  Require ip 203.0.113.10
</Files>

常に一つの固定アドレスから作業するなら堅実な方法です。ただし、IP が変わった日に自分が締め出され、対応するルールがない Nginx や LiteSpeed の環境では役に立ちません。wp-admin のリダイレクトも隠せません。

HTTP ベーシック認証を使う。 多くのホスティング会社では、コントロールパネルから wp-login.php にパスワードをかけられます。機能はしますが、全員に 2 つ目のログイン画面が加わり、適用範囲が広すぎるとフロントエンドからの admin-ajax.php の呼び出しが壊れることがあります。

正直にまとめると、手作業の方法は更新で壊れるか、固定 IP に依存するかのどちらかです。リクエストを途中で受け止めるプラグインのほうがシンプルで、更新にも耐えられます。

うまくいかないときは

  • 新しいパスで 404 が表示される。 パスに入力ミスがないか確認し、ページキャッシュと CDN のキャッシュを削除してから、新しいプライベートウィンドウでもう一度試してください。

  • 締め出された。 wp-config.php の “That's all, stop editing!” の行より上に、次の行を追加します:

    define( 'GATEKEEPER_LOGIN_SLUG', 'new-path' );
    

    すぐに yoursite.com/new-path でログインフォームが開きます。

  • wp-config.php にアクセスできない? FTP またはホスティングのファイルマネージャーで、/wp-content/plugins/ から hushfort-security フォルダーを削除します。WordPress はデフォルトのログインに戻ります。

復旧の詳しい手順は、ログイン URL を変更して締め出されたときにまとめています。

Hushfort なら

ログイン非表示は、無料の WordPress セキュリティプラグイン Hushfort Security に含まれています。

Hushfort のログイン非表示レイヤーは、パスを決めるまで何もしません。そのため、有効にしただけでうっかり締め出されることはありません。パスを設定すると:

  • wp-login.php と wp-admin は 404 を返します (お好みで、ホームページや指定した URL へリダイレクトすることもできます)。
  • admin-ajax.php、REST API、WP-Cron、XML-RPC は引き続き動作するため、テーマやプラグインはこれまでどおりに動きます。
  • ダッシュボードには「アクセスできなくなったら」カードがあり、現在のログイン URL と緊急用の行が表示されます。
  • プラグインを無効化すれば、WordPress は通常のログインに戻ります。

ログイン非表示は無料版プラグインに含まれます。Hushfort Pro ではログイン制限、二要素認証、XML-RPC 用のバックドアロックが加わるため、隠したログインは唯一の壁ではなく、いくつもある壁の一つになります。

よくある質問

WordPress のログイン URL を変更しても安全ですか?

新しいアドレスを保存し、ログアウトする前にテストすれば安全です。REST API、admin-ajax、WP-Cron、XML-RPC は引き続き動作するため、それらを利用するテーマやプラグインに影響はありません。

ログインページを隠せばハッカーを防げますか?

自動化された攻撃の大半は防げますが、これは「隠す」ための層であって鍵ではありません。本気の攻撃者は、xmlrpc.php のような別の入口を見つけられます。ログイン制限、二要素認証、強力なパスワード、こまめな更新と組み合わせてください。

古い wp-login.php のアドレスには何を表示すべきですか?

最も目立たないのは 404 ページです。ほかの存在しないページと見分けがつかないからです。ホームページへのリダイレクトでも機能しますが、ボットに「何かがある」と知らせることになります。

新しいログイン URL を忘れたらどうなりますか?

wp-config.php に define( 'GATEKEEPER_LOGIN_SLUG', 'new-path' ); を追加し、yoursite.com/new-path からログインします。FTP でプラグインのフォルダーを削除して、デフォルトのログインに戻すこともできます。

ログイン URL を変更するとキャッシュや CDN に問題が出ますか?

Hushfort はログインページをキャッシュさせない設計です。CDN がすべてのパスをキャッシュする場合は、wp-login.php と同じように、新しいログインパスをキャッシュ除外リストに追加してください。

不具合の報告・機能のリクエスト

メッセージは Hushfort の開発チームに直接届きます。

内容の種類

返信にのみ使用します。

これらの情報は返信のためだけに使用します。 プライバシー