WordPress用のカスタムログインページ
wp-login.php の名前を変更し、カスタム ログイン URL を作成し、自動化されたブルート フォース攻撃やボット攻撃から WordPress を保護する方法。
English version: Custom login page for WordPress
カスタムログインページ機能は、攻撃対象領域を縮小し、スパム登録を排除するための優れたツールです。新しくインストールしたWordPressでは、まず最初に有効にすべき機能です。また、WordPressのプラグインフォルダの名前を変更することも、強く推奨されるセキュリティ対策です。
なぜそれが重要なのか、そしてなぜ効果があるのか
Cerber Labの調査によると、ほとんどのハッカーツールや攻撃は、被害を受けたWordPressウェブサイトにはデフォルトのログインページがあり、プラグインはデフォルトフォルダに配置されているという前提に基づいています。どのウェブサイトでもデフォルト値を使用しないことが推奨されていますが、多くのウェブサイト所有者はこうした基本的な原則を無視し、ハッカーによる攻撃を成功させています。これがハッカーがWordPressを好む理由であり、常に数十万ものウェブサイトがハッキングされている状況が見られます。
カスタムログインページを設定する
WP Cerberを使えば、WordPressのデフォルトのログインURLであるwp-login.phpを、必要なURLに簡単かつ安全に変更できます。つまり、独自のカスタムログインページ(この文脈ではカスタムログインURLと同じ意味です)を設定し、wp-login.phpを悪意のある攻撃者、スキャナー、ボットから隠すことができます。.htaccessファイルを編集したり、wp-login.phpファイルの名前を変更したりする必要はありません。WP Cerberを使えば、数回クリックするだけで設定できます。
- プラグインのメイン設定管理ページに移動してください。
- 新しいログインURLを「カスタムログインURL」欄に入力して設定を保存します。以上です。
- キャッシュプラグインを使用している場合は、新しいログインURLをキャッシュしないページリストに追加してください。
- 新しいログインURLが正しく機能し、それを使ってログインできることを確認してください。シークレットモードのブラウザウィンドウで確認してください。新しいログインURLが正常に機能することを確認するまでは、ウェブサイトからログアウトしないでください。
wp-login.php をボットやスキャナーから隠す方法
顧客ログインページを有効にしたら、ブルートフォース攻撃を防ぐために、デフォルトのWordPressログインページを非表示にするのが賢明です。そのためには、 「wp-login.php認証リクエストの処理」設定を「wp-login.phpへのアクセスをブロック」に設定します。ページにアクセスしようとすると、WP Cerberは標準の「404 Not Found」ページを表示します。ただし、考慮すべき欠点が1つあります。攻撃者が十分に賢い場合、Webサイトをスキャンし続け、実際のログインページを探し出す可能性があります。
wp-login.phpを無効にする方法
もう一つ、より高度な方法として、wp-login.phpへのアクセスをブロックせずに無効化する方法があります。これはどのように機能するのでしょうか?この独自のWP Cerber機能は、wp-login.phpを介した認証の試みをすべて阻止します。ログインしようとすると、WP Cerberはデフォルトのパスワードエラーを模倣し、ユーザー認証プロセスを中止します。入力されたパスワードは関係ありません。正しいパスワードを入力しても、誰もログインできません。この機能を有効にするには、「 wp-login.php認証要求の処理」設定を「wp-login.phpを介した認証を拒否する」に設定します。
覚えておくべき注意点
あなたまたはあなたのユーザーが、wp-login.phpが無効になっており、ログインに使用できないことを忘れてしまうと、あなたまたはあなたのユーザーはウェブサイトにログインできなくなり、wp-login.phpを何度か使用しようとした後、ロックされてしまいます。
「wp-login.php 認証リクエストの処理」をデフォルト値以外の値に設定している場合、カスタムログイン URL のみを使用できます。/wp-login.php も /wp-admin/ もログインには使用できません。
知っておくべき重要なこと
- W3 Total CacheやWP Super Cacheなどのキャッシュプラグインを使用している場合は、新しいカスタムログインURLのスラッグをキャッシュしないページのリストに追加する必要があります。
- WordPressのマルチサイトインストールの場合、新しいログインURLはすべてのサイトでグローバルに設定されます。
- wp-login.php ファイルを手動で削除したり、名前を変更したりしないでください。WordPress を新しいバージョンにアップデートすると、wp-login.php が復元され、不正アクセス者が再びアクセスできるようになります。
二段階認証でセキュリティを強化しましょう
管理者アカウントを保護するために、二段階認証(2FA)の有効化を検討してください。二段階認証は、ユーザー名とパスワードに加えて、もう一つの認証要素を要求することで、セキュリティをさらに強化します。
詳細はこちら: WordPressで二段階認証を有効にする方法
カスタムログインURL機能のトラブルシューティング
カスタムログインページを有効にすると、一部のプラグインが動作しなくなる場合があります。ログインページカスタマイズプラグインやソーシャルログインプラグインを使用している場合、これらのプラグインが動作しなくなる可能性があります。この問題を解決するには、「カスタムログインページのレンダリングを遅延する」を有効にしてください。この設定の詳細については、こちらをご覧ください。
カスタムログインURLを設定した後、しばらくして忘れてしまった場合は、まずサイト管理者のメールボックスに新しいログインURLに関する通知メール、または週次レポートメールが届いていないか確認してください。これらのメールにカスタムログインURLが記載されています。そのようなメールが見つからない場合は、以下の手順に従ってWP Cerberを手動で再インストールする必要があります。
- FTPまたはホスティングコントロールパネルのファイルマネージャーを使用して、プラグインフォルダ /wp-cerber/ を手動で削除してください。
- デフォルトの /wp-login.php URL を使用するか、カスタムログイン URL を有効にする前に使用していた別の方法を使用して、通常どおり WordPress ダッシュボードにログインしてください。
- 通常どおり、WP Cerber Securityプラグインをインストールして有効化してください。
- プラグインのメイン設定ページに移動してください。
- 「カスタムログインURL」欄を確認してください。そこに表示されるカスタムログインURLを必ず覚えておいてください。

Hi, I am following your instruction but still can access wp-login.php directly, my WordPress using mu and version4.5.3.
Check your White IP Access List in the settings of the plugin. All IP addresses from this list are allowed to bypass this rule. Make sure that IP address of your computer is not in the list.
Just to be 100% clear, if an IP address is in the IP Whitelist, then it CAN still utilize the wp-login.php?
Even if you have “Block direct access to wp-login.php and return HTTP 404 Not Found Error” checked under “Disable wp-login.php”, Whitelisted IP’s can still login using wp-login.php?
Is there any way to completely disable wp-login.php for everyone (including Whitelisted IP’s)?
Yes, of course. Whitelisted IPs can do everything. You should trust those IPs completely. To completely disable wp-login.php you need to either use .htaccess file or, and that is better, add a single string to the NGINX config file: http://wpcerber.com/hardening-wordpress-with-wp-cerber-and-nginx/
Hi,
I have a 404 Not Found with the new wp-login slug.
Is it related to something required with the webserver (I’m using Apache) ?
What slug did you enter?
I choose “connexion” to remplace wp-login.php, there’s no page called this way so no conflict but I still have a 404 error.
I tried to change my permalinks parameters but it’s don’t change anything.
That slug is normal. Most likely some caching engine knows nothing about the new URL. It maybe a caching plugin you use or some shadow caching engine that your hosting provider uses.
In fact after some diging I found it was a misconfiguration with Apache (Allow override not defined).
Thanks anyway, WP-Cerber is a very interesting plugin. I’ll share it around me.
First, thanks for one of the most helpful WP plugins around. For the custom login feature, I’d just like to suggest the following:
What about an extra sentence in the Custom Login area such as “don’t forget about the /wp-admin/ redirect, see above”?
Reason:
In the current Cerber Dashboard, the switch to
> Disable automatic redirecting to the login page when /wp-admin/ is requested by an unauthorized request
is located a few entries above the custom login switches, no direct connection, and the German translation has “Anmeldeseite” there, as opposed to “Login-Seite” later, so you don’t necessarily make the connection.
(I only found out when checking the logs and wondering how some crooks managed to find my custom login page…)
Yes, I’m going to rearrange these settings and the whole section soon.