WordPress初心者が意外とつまずきがちなのが、管理画面へのログインです。そこで今回は、WordPressサイトのログインページにアクセスする方法、そしてログインページを保護する方法をご紹介します。
WordPressログインページの重要性
WordPressをインストールすると、管理画面へのアクセス権限が与えられ、サイト設定が変更できるようになります。
管理画面にアクセスできなければ、この設定を行うことはできません。WordPressのログインページは、WordPressサイトの「管理者領域」へのアクセスを制限するために存在します。
管理画面にアクセスできない場合、サイトやブログを完全制御することは事実上不可能です。
では、WordPressのログインページはどこからアクセスできるのでしょうか。
WordPressのログインURLを特定するには
WordPressログインページにアクセスするには、サイトのURLの末尾に/login/、/admin/、または /wp-login.phpを追加します。
WordPressをサブディレクトリ(www.yoursite.com/wordpress/)またはサブドメイン(blog.yoursite.com/)にインストールした場合は、上記の3つのパスのいずれかをURLの最後に追加します。例えば:www.yoursite.com/wordpress/wp-login.php または blog.yoursite.com/wp-login.php。
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へのログインは、セキュリティの面で非常に重要な操作でありながら、このように簡単に実行できてしまいます。言い換えれば、メールアドレスまたはユーザー名、そしてパスワードさえわかれば、誰でもログインできてしまうということです。
サイトが悪意あるユーザーの標的になる可能性があります。
不正ログイン対策のため、ログインページの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の各プラグインとも互換性があります。
ダウンロードし有効化したら、以下の手順で設定します。
- WordPress管理画面にログインし「設定」>「WPS Hide Login」に移動する
- 「ログイン URL」に変更後のログインURLのパスを入力
- 「リダイレクト URL」にリダイレクト先のURLを入力(誰かがデフォルトURLの「wp-login.php」または「wp-admin」ディレクトリにアクセスした場合に転送されるページ)
- 「変更を保存」をクリックして完了
有料プラグインでログインURLを変更するには、Kinstaスタッフが開発したPerfmattersプラグインがおすすめです。
WordPressのログインURLを変更すれば、ある程度の攻撃への対策になりますが、高度なスキルを持ったユーザーであれば、サイトを分析してログインページに辿り着くことができてしまいます。そのため、さらなる対策を講じたいもの。
そこまでしなくても、と感じるかもしれませんが、セキュリティとはツールや裏ワザ、防御層を重ねれば重ねるほど強化されていくゲームのようなものです。セキュリティ機能を豊富に提供してくれるホスティングサービスを利用して、セキュリティ強化策を多数講じることで、サイトに不正アクセスされる可能性が低減していきます。
ログインページのURLを変更することで、「429 Too Many Requests」のような一般的なWordPressエラーも回避できます。このエラーは通常、ユーザーが一定時間内に送信したリクエストが多すぎる場合にサーバーで発生します(レート制限による)。普通はボットやスクリプトがログインページを攻撃することで発生するもので、エンドユーザーによって引き起こされることはほぼありません。
.htaccessファイルを編集してWordPressのログインページを変更する方法
もう少し専門的な方法でWordPressログインページのURLを変更、または非表示にするには、.htaccess
ファイルを編集することができます。
Apacheサーバーの.htaccess
ファイルは、ホスティングのルールの構成とシステム全体の設定を行う役割を持っており、ログインページの設定に関しては、できることが2つあります。
1点目は、.htpasswdファイルを編集してログインページをパスワード保護し、ログインページへのアクセス時にパスワード入力を要求するようにすることです。
KinstaではNginxを利用しているため、.htaccess
ファイルの設定はありません。代わりに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のパスワードを変更することをおすすめします。ログインフォームのすぐ下にある「パスワードをお忘れですか ?」をクリックします。
次のページで、ユーザー名またはメールアドレスを入力します。ボタンをクリックすると、登録メールアドレスに新しいパスワードが送信されます。
phpMyAdminでWordPressのパスワードをリセットする
パスワードのリセットがうまくいかない場合は、手動でパスワードをリセットする必要があります。この操作は少し複雑になるため、データベースファイルの操作に不慣れな場合は実行しないでください行わないでください。
WordPressのログインパスワードを手動でリセットするには、データベース内にあるパスワードファイルを編集します。ご利用中のホスティングサービスがphpMyAdminへのアクセスを提供している場合は簡単です。
データベースを編集する際は、万が一に備えて必ずサイトをバックアップしてください。
手順1
phpMyAdminにログインします。Kinstaをご利用の場合は、「WordPressサイト」>(サイト名)>「情報」画面の「データベースへのアクセス」セクションの「phpMyAdminを開く」をクリックします。
手順2
「データベースへのアクセス」セクションにあるユーザー名とパスワードを使ってログインします。左メニューから対象のデータベースをクリックし、wp_users
テーブルを選択します。次にリセットしたいログインユーザーの「Edit」をクリックします。
手順3
user_pass
カラムに新しいパスワードを入力します(大文字と小文字が区別されます)。「Function」ドロップダウンメニューから「MD5」を選択して、最後に「Go」をクリックします。
手順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に依存しており、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を変更する方法も併せて参考にしてみてください。