WordPress初心者が意外とつまずきがちなのが、管理画面へのログインです。そこで今回は、WordPressサイトのログインページにアクセスする方法、そしてログインページを保護する方法をご紹介します。

WordPressログインページの重要性

WordPressをインストールすると、管理画面へのアクセス権限が与えられ、サイト設定が変更できるようになります。

管理画面にアクセスできなければ、この設定を行うことはできません。WordPressのログインページは、WordPressサイトの「管理者領域」へのアクセスを制限するために存在します。

管理画面にアクセスできない場合、サイトやブログを完全制御することは事実上不可能です。

では、WordPressのログインページはどこからアクセスできるのでしょうか。

WordPressのログインページURLの見つけ方

WordPressログインページへのアクセスは簡単です。デフォルトでは、/admin/(例:www.yourawesomesite.com/admin/)または/login/(例:www.yourawesomesite.com/login/)をサイトURLの末尾に追加すると、ログインページにリダイレクトされます。

通常、WordPressのログインページはすぐに表示されますが、もしうまく表示されない場合は代替手段として、URLの末尾に/wp-login.phpを追加してください。例)www.awesomesite.com/wp-login.php

サブディレクトリまたはサブドメインのWordPressログインページURL

上記はWordPressを通常の方法でインストールしていることが前提で、サイトによってはwww.yourawesomesite.com/wordpress/のように、ドメイン配下にサブディレクトリを配置している場合や、blog.yourawesomesite.com/のようにWordPressをサブドメインにインストールしているかもしれません。

この場合は、以下のようにサブディレクトリやサブドメインの閉じスラッシュ(/)の直後に上で見たパスを追加します。

  • www.awesomesite.com/wordpress/login/
  • www.awesomesite.com/wordpress/wp-login.php

いずれのURLでも、WordPressのログインページにアクセスできます。URLをブックマークしておくと次回以降のアクセス時に便利です。

また、WordPressのログインページには「ログイン状態を保存する」というチェックボックスがあります。チェックを入れておくと、管理画面へのアクセス時、ログイン状態を数日間保持できます(Cookieの設定による)。

WordPressログインページの「ログイン状態を保存する」チェックボックス
WordPressログインページの「ログイン状態を保存する」チェックボックス

WordPressへのログインは、セキュリティの面で非常に重要な操作でありながら、このように簡単に実行できてしまいます。言い換えれば、メールアドレスまたはユーザー名、そしてパスワードさえわかれば、誰でもログインできてしまうということです。

サイトが悪意あるユーザーの標的になる可能性があります。

不正ログイン対策のため、ログインページのURLは変更することをおすすめします。

WordPressログインページURLの変更方法

悪意のあるユーザーにサイトのログインページに到達されるのは、何としても避けたいもの。管理画面を乗っ取られ、不正行為が行われる可能性があります。

十分な長さのある強固で一意のパスワードを使用することもサイトへの不正アクセスを防ぐために効果的ですが、サイトが危険に晒されてしまった場合には不十分です。

悪意あるユーザーの侵入を手っ取り早く、なおかつ効果的に防ぐには、WordPressのログインページを独自のURLに変更してください。サイトへのログインページを関係者だけが知るURLに変更することで、無作為な攻撃やハッキング、ブルートフォース攻撃などの標的になりにくくなります。

ブルートフォース攻撃(総当たり攻撃)とは、対象サイトのユーザー名とパスワードを推測し、ハッキングを何度を試みる攻撃です。ログイン試行は自動化スクリプトが行い、何千通りもの組み合わせが試行されます。ユーザー名とパスワード組み合わせはウェブ上に漏洩し、出回っているリストが利用されることもあります。

自分のWordPressサイトのパスワードやユーザー名が、このような漏洩リストに掲載されている可能性はゼロではありません。WordPressのログインページが誰もが知るURL(/wp-admin)でアクセスでき、ユーザー名とパスワードも漏洩しているとなれば、ハッカーや悪意のあるユーザーがいかに簡単にWordPressサイトに侵入できてしまうかは、想像に容易いはず。

このため、WordPressのログインページを別のパスへ移動しておくことが重要です。

プラグインでWordPressログインページを変更

WordPressのログインページURLを変更するには、無料プラグインを使用するのが最も簡単な方法です。今回は、80万以上のアクティブユーザーを持つ人気プラグインWPS Hide Loginを使った変更方法をご紹介します。

WPS Hide Loginは非常に軽量で、シンプルにリクエストを阻止するだけのものであるため、本体ファイルの変更やリライトルールの追加といったややこしい挙動がありません。BuddyPress、bbPress、Limit Login Attempts、User Switchingの各プラグインとも互換性があります。

WPS Hide Loginプラグイン
WPS Hide Loginプラグイン

ダウンロードし有効化したら、以下の手順で設定します。

  1. WordPress管理画面にログインし「設定」>「WPS Hide Login」に移動する
  2. ログイン URL」に変更後のログインURLのパスを入力
  3. リダイレクト URL」にリダイレクト先のURLを入力(誰かがデフォルトURLの「wp-login.php」または「wp-admin」ディレクトリにアクセスした場合に転送されるページ)
  4. 変更を保存」をクリックして完了
WPS Hide Loginプラグイン
WPS Hide Loginプラグイン

有料プラグインでログインURLを変更するには、Kinstaスタッフが開発したPerfmattersプラグインがおすすめです。

WordPressのログインURLを変更すれば、ある程度の攻撃への対策になりますが、高度なスキルを持ったユーザーであれば、サイトを分析してログインページに辿り着くことができてしまいます。そのため、さらなる対策を講じたいもの。

そこまでしなくても、と感じるかもしれませんが、セキュリティとはツールや裏ワザ、防御層を重ねれば重ねるほど強化されていくゲームのようなものです。セキュリティ機能を豊富に提供してくれるホスティングサービスを利用して、セキュリティ強化策を多数講じることで、サイトに不正アクセスされる可能性が低減していきます。

ログインページのURLを変更することで、「429 Too Many Requests」のような一般的なWordPressエラーも回避できます。このエラーは通常、ユーザーが一定時間内に送信したリクエストが多すぎる場合にサーバーで発生します(レート制限による)。普通はボットやスクリプトがログインページを攻撃することで発生するもので、エンドユーザーによって引き起こされることはほぼありません。

「429 Too Many Requests」エラー
「429 Too Many Requests」エラー

.htaccessファイルを編集してWordPressのログインページを変更する方法

もう少し専門的な方法でWordPressログインページのURLを変更、または非表示にするには、.htaccessファイルを編集することができます。

Apacheサーバーの.htaccessファイルは、ホスティングのルールの構成とシステム全体の設定を行う役割を持っており、ログインページの設定に関しては、できることが2つあります。

1点目は、.htpasswdファイルを編集してログインページをパスワード保護し、ログインページへのアクセス時にパスワード入力を要求するようにすることです。

KinstaではNginxを利用しているため、.htaccessファイルの設定はありません。代わりにhtpasswd保護を使用して、サイト全体にパスワード保護を設定することができます。ログインページを保護する方法については、カスタマーサポートまでチャットにて気軽にお問い合わせください

.htpasswd認証プロンプト
.htpasswd認証プロンプト

.htaccessファイルではまた、信頼できるIPアドレスからのみログインページへのアクセスを許可するように設定することもできます。

ログイン試行回数を制限

ログイン試行回数を制限するのも、効果的なセキュリティ対策になります。Kinstaでは、1分間に6回以上ログインに失敗したIPを自動的にブロックします。

無料プラグインで設定するなら、Limit Login Attempts Reloadedがおすすめです。

ログイン試行を制限する
ログイン試行を制限する

上記のように、設定画面はわかりやすく簡単に使用できます。以下、簡単に各項目をご紹介します。

  • Total lockouts(総ロック数):誰かが不正アクセスを試みて失敗した回数を表示
  • X allowed retries(X回まで再試行を許可):IPアドレスをロックアウトするまでの試行回数を指定可能

再試行の許容回数は、4~6回が一般的です(自分のサイトのログインであってもパスワードを誤って入力してしまうことはあるもの)。適切な回数を指定することで、本来ログイン可能であるユーザーも自分の誤りに気づき正しいパスワードの入力を再度行うことができます。

特に、頻繁にゲスト寄稿者を招待するようなブログや、複数人で管理しているサイトでは、この2項目は必ず設定してください。

  • X minutes lockout(X分間ロックする):IPアドレスをロックする時間を指定可能

恒久的にロックが解除できなくなってしまうと、本来ログインできるユーザーが操作を誤ってしまった際に厄介です。この時間は、20~30分程度に設定するのが妥当です。

  • X lockouts increase lockout time to Y hours(X回ロックが発生するとロックアウト時間がY時間になる):ブルートフォース攻撃が一定時間後に再試行されることを想定して指定可能

同じユーザーが複数回ロックされている場合には、ロックが解除されるまでの時間を延長するのも効果的です(24時間がおすすめ)。

  • X hours until retries are reset(X時間で再試行回数をリセットする):再試行した回数をリセットするまでの時間を指定可能

他にも、ホワイトリストやブラックリスト、ブロックしないIPなども管理することができます。

WordPressのログインページに関するよくある問題と解決策

WordPressサイトへのログインは、通常であればすぐに完了しますが、時として以下のような問題に直面することもあります。

  • パスワードに関する問題
  • Cookieに関する問題

以下、各問題とその解決策を掘り下げていきます。

WordPressログイン時のパスワード紛失

サイトにログインできない場合は、単にログイン情報に誤りがあるかもしれません。

まずは、入力したユーザー名とパスワードが正しいものであるかどうかを確認してください。

それでもログインできない場合は、他の解決策を試す前に、WordPressのパスワードを変更することをおすすめします。ログインフォームのすぐ下にある「パスワードをお忘れですか ?」をクリックします。

「パスワードをお忘れですか?」をクリック
「パスワードをお忘れですか?」をクリック

次のページで、ユーザー名またはメールアドレスを入力します。ボタンをクリックすると、登録メールアドレスに新しいパスワードが送信されます。

新しいWordPressパスワードを取得
新しいWordPressパスワードを取得

phpMyAdminでWordPressのパスワードをリセットする

パスワードのリセットがうまくいかない場合は、手動でパスワードをリセットする必要があります。この操作は少し複雑になるため、データベースファイルの操作に不慣れな場合は実行しないでください行わないでください

WordPressのログインパスワードを手動でリセットするには、データベース内にあるパスワードファイルを編集します。ご利用中のホスティングサービスがphpMyAdminへのアクセスを提供している場合は簡単です。

データベースを編集する際は、万が一に備えて必ずサイトをバックアップしてください。

手順1

phpMyAdminにログインします。Kinstaをご利用の場合は、「WordPressサイト」>(サイト名)>「情報」画面の「データベースへのアクセス」セクションの「phpMyAdminを開く」をクリックします。

MyKinstaからphpMyAdminにログイン
MyKinstaからphpMyAdminにログイン

手順2

データベースへのアクセス」セクションにあるユーザー名とパスワードを使ってログインします。左メニューから対象のデータベースをクリックし、wp_usersテーブルを選択します。次にリセットしたいログインユーザーの「Edit」をクリックします。

phpMyAdminでユーザーを編集
phpMyAdminでユーザーを編集

手順3

user_passカラムに新しいパスワードを入力します(大文字と小文字が区別されます)。「Function」ドロップダウンメニューから「MD5」を選択して、最後に「Go」をクリックします。

phpMyAdminでパスワードをリセット
phpMyAdminでパスワードをリセット

手順4

WordPressのログインページを開き、先ほど設定したパスワードでログインできるかをテストします。

WP-CLIでWordPressのパスワードをリセットする

WP-CLIを使用してWordPressのパスワードをリセットすることも可能です。WP-CLIは、WordPressコアの一般的な設定からニッチなものまで管理できる、開発者向けコマンドラインツールです。

手順1

以下のコマンドを使って、現在のWordPressサイトユーザーをすべてリストアップします。

$ wp user list

手順2

以下のようなコマンドで、対象のユーザーIDと新たなパスワードを指定し、ユーザーのパスワード更新を実行します。

$ wp user update 1 --user_pass=strongpasswordgoeshere

手順3

新しいパスワードをログインページでテストします。

WordPressログイン時のCookie

場合によっては、Cookieの問題でログインできないこともあります。その場合は通常、以下のようなエラーメッセージが表示されます。

エラー: Cookie がブロックされているか、お使いのブラウザーで未対応のようです。WordPress を使うには Cookie を有効化する必要があります

WordPressログインページに表示されるCookieに関するエラー
WordPressログインページに表示されるCookieに関するエラー

WordPressのログインはCookieに依存しており、Cookieが無効になっているか正しく動作していない場合、ログインページでエラーが発生することがあります。この場合は、ブラウザでCookieが有効であるかどうかを確認します。使用しているブラウザに応じて、以下を参照してください。

移行したばかりのWordPressサイトやマルチサイトでは、時折エラーが発生するため、ブラウザを再読み込みしてから再度ログインしてみると、エラーが解消される場合があります。または、ブラウザキャッシュをクリアするか、シークレットモードで開いてみることもできます。

上記のいずれもうまくいかない場合は、wp-config.phpファイル内にある/* That's all, stop editing!...*/という行の直前に以下を貼り付けてください。

define('COOKIE_DOMAIN', false);

WordPressのマルチサイトを運営している場合は、/wp-content/フォルダにsunrise.phpファイルが格納されていないかを確認してください。格納されている場合、これは以前のドメインマッピングで使用されていたファイルのため、ファイル名をsunrise.php.disabledに変更します。

WordPress 4.5以降は、マルチサイトにドメインマッピング用のプラグインは不要になっています。Kinstaのお客様で、ドメインマッピングに関するご質問がありましたら、カスタマーサポートまでお問合せください。

まとめ

WordPressのログインページは、サイト管理を許可する入り口です。正常にログインできなければ、サイトを閲覧することしかできません。

非常に重要なページになるため、WordPressサイトへのログインを効率化するためにも、ログイン方法をしっかり理解しておきましょう。

またセキュリティ強化のため、デフォルトのWordPressログインページURLを任意のものに変更し、信頼できるユーザー間のみで共有するようにしてください。セキュリティが気になる方は、サイトのセキュリティチェックシートもぜひご活用ください。WordPressから何度もログアウトさせられてしまう場合の解決策はこちらでご紹介しています。

また、WordPressのURLを変更する方法も併せて参考にしてみてください。

Matteo Duò Kinsta

Head of Content at Kinsta and Content Marketing Consultant for WordPress plugin developers. Connect with Matteo on Twitter.