プラグインなしでできる不正ログイン対策

プラグインなしでできる不正ログイン対策

WordPressは世界中で使われているCMS(コンテンツマネージメントシステム)です。

それ故、動作はどのサイトも共通なので、ログイン画面や管理画面のURLも簡単に想像できてしまいます。

収容しているサーバーや、ファイル転送を行うFTP、テーマやプラグインの脆弱性(何かのファイルを転送できてしまったり、悪質なコードを書き込めたりすること)による改ざんもあるものの、サイトを乗っ取られたり、改ざんされるケースは不正にログインされて行われることがほとんどですので、いかに不正ログインを防ぐかというのが、WordPressで管理するサイトを守るための大きなキーポイントになります。

このページをご覧になっている方は、WordPressにはプラグインというのがあって、セキュリティ対策用のそれも多く無料で配布されているのをご存じでしょう。

ただ、それらのプラグインがいったい何をしてセキュリティを高めているのか?までを理解して導入されている方は意外に少ないと思われます。

そこで本ページでは、ご自身で何をしてセキュリティを高めているのかを理解した上で、より安全安心にサイト管理ができるよう、プラグインを使わずにできるログインセキュリティ対策の方法をいくつかご紹介します。

ページ上部へ戻る▲

WordPressのログインセキュリティ対策

特定の場所以外からはログイン画面を開けないようにする

試しに、今ご覧になっているサイトのログインURや管理画面のURLL(以下)を開いてみてください

https://habone.biz/wp-login.php
https://habone.biz/wp-admin

いかがてしょう?開けましたか?下のような画面が表示されませんか?

プラグインなしでできる不正ログイン対策|HABONE

恐らくこれがどんな対策よりも確実な、不正ログイン対策です。

特定の場所(グローバルIPアドレス)以外からの管理画面へのアクセスを遮断してしまうという方法です。

自宅からしかサイトの管理画面を開かないという方にはおすすめの方法です。

この対策を行うには以下の要件が必要です。

  • サイトの.htaccessファイルを操作・編集できること
  • 管理画面へアクセスする拠点のグローバルIPアドレスを調べること

前者については、サーバーの管理画面から編集できる、または、ご自身で何か編集したことがあるかということです。.htaccessファイルの操作が不安な方、不慣れな方はこの対策は避けた方がよいでしょう。

後者については、実際にアクセスする拠点からこちらを開くだけで、グローバルIPアドレスを知ることができますから問題ないでしょう。

グローバルIPアドレスが分かったら、以下のコード中の「グローバルIPアドレス」の部分を書き換え.htaccessファイルの先頭へ追加するだけです。

必ずしも先頭行である必要はありませんが、少なくとも「#BEGIN WordPress」の上へ記述する必要があります

サーバーによってエラーが出ることがありますので、以下2つのコードのうちのいずれかを用いてください

<FilesMatch "wp-login.php">
Order deny, allow
Deny from all
Allow from グローバルIPアドレス
</FilesMatch>
<Files wp-login.php>
order deny,allow
deny from all
allow from グローバルIPアドレス
</Files>

記述に誤りがなければ、その拠点からは通常通りログインも管理画面の操作もできるはずです。

試しに違うグローバルIPアドレスを入れて更新し、ログイン画面や管理画面のアクセスが拒否されるかも同時に確認しておきましょう。

インターネット接続契約によってはグローバルIPアドレスが定期的に変更になるものもありますので、アクセス拒否されたら、サイドグローバルIPアドレスを調べ、.htaccessファイル内のグローバルIPアドレスを書き換えれば復旧できます


この方法でアクセス対策ができるのであれば、これから紹介する他の方法は基本無用になりますから、本ページで一番おすすめな方法です。

メールアドレスの確認と変更

私的にWordPressは不親切だなぁと感じる事柄の1つです。

WordPressには、サイトの連絡・通知に使うメールアドレスと、ユーザー固有のメールアドレスの2つがあります。

しかしながら、インストールするときには、この2つのアドレスが共通で設定されるようになっています。

試しに、管理画面から「設定」をクリックした画面で表示されるメールアドレスと、同じく管理画面から「ユーザー」→「管理ユーザー(いつもログインするユーザー)の編集リンク」をクリックして表示される画面のメールアドレスを見比べてください。

何もしてなければ同じメールアドレスになっているはずです。

そして、WordPressのログインは、「ユーザー名」「メールアドレス」のどちらも使えます。

従って何等かの通知(問い合わせフォームなど)でサイトのメールアドレスから誰かにメールが送信されれば、そのメールアドレスを使ってログイン試行し、パスワードが分かればハイおしまい!ということになってしまうのです。

管理ユーザーのメールアドレスは、サイトのメールアドレスとは別のものへ変更しましょう。

管理ユーザーのメールアドレスは、サイトのドメインではないものにしておくとより類推しにくくなるのでおすすめです。

余談、一応WordPressサイトから送信される通知メールは「wordpress@ドメイン」というメールアドレスで送信されるようになっているようで、セキュリティ上これらの通知からメアドがバレてしまうことはないようですが、それはそれでおかしい(実在しないメアドなので..)とも思うのですがどうなんでしょうね?


ログインをメールアドレス+パスワードに限定する

前項で紹介したように、管理ユーザーのメールアドレスを別のものへ変更したら、ログインでユーザー名が使えないようにしてしまいましょう。

なぜユーザー名が使えないようにするのが有効なのかというと、閲覧画面側で、ユーザーの投稿一覧を表示したとき、ユーザー名がURL内に表示されてしまうからです。

また、表示画面上に表示される著者の名前をニックネームなどへ変更していない場合には、個々の投稿の末尾などでばっちりユーザー名が出てしまうなんてこともあります。

ユーザー名を表示してしまうURLの一部(スラグ)を変更する方法は、プラグインなしで、ユーザー(著者)ページのスラグを変更する方法で紹介しているので、ついでに行っていただくのがベストではあるものの、そもそもユーザー名が使えなければ問題は解決します。

ログイン情報をメールアドレスに限定する(ユーザー名は拒否する)ようにするには、有効化しているテーマのfunctions.phpへ以下のコードを追加するだけです。

/********** ログインをメールアドレスのみにする **********/
if ( !function_exists( 'hab_force_email_login' ) ){
function hab_force_email_login( $user, $username, $password ) {
//「ユーザー名またはメールアドレス」に入力された情報を email情報 としてユーザー検索
$user_data = get_user_by( 'email', $username );

if( !empty( $user_data ) ) {
//email情報からユーザーが見つかればログイン認証用の関数にデータを渡す
return wp_authenticate_username_password( null, $user_data->user_login, $password );
}
//emailでユーザー取得できなかった場合
return wp_authenticate_username_password( null, '___', $password );
}
}
add_filter('authenticate', 'hab_force_email_login', 20, 3);

以上、プラグインを使わなくてもできるWordPressサイトの不正ログイン対策でした。

セキュリティ系のプラグインではこれと似たような措置のほかに

  • IPアドレスによりアクセス拒否をする
  • ログイン試行の失敗が〇回あったら一時的に凍結する
  • ユーザースラグを別のものへ変更する
  • 認証方法を変える(画像認証やメール認証を加えるなど)

などなどいろいろな方策がある高機能なものがたくさんリリースされています。

しかしながら、プラグインはどのサイトでもできるだけ問題なく動作するようにしてあったり、誰でも簡単に設定できるようになっている分動作が重かったり、そもそもそのプラグインをたくさんの人が使っていることがセキュリティ上の問題にならないのかなぁと個人的に感じますので、こうしたアナログ措置の方が無難なのかも知れませんよ。

まだほかにもWordPressでは便利にしているが故の抜け穴が多数ありますが、それらを含むと膨大になりそうなので、今回はログインセキュリティのみに限定して紹介しました。

その他のセキュリティについては、改めて紹介できればと思います。

最後になりましたが、このサイトで配布している【HABONE】テーマでは、ログインセキュリティおよびその他のセキュリティについてもテーマカスタマイザーから簡単に設定できるようにしています。

テーマの機能やデザインは...自己満足仕様ですが、よかったら使ってみてください。

このページは役に立ちましたか?

著:清水 由規, 著:清水 久美子, 著:鈴木 力哉, 著:西岡 由美, 監修:星野 邦敏, 監修:吉田 裕介
¥2,948 (2022/08/11 01:26時点 | Amazon調べ)
著:Mana
¥2,200 (2022/08/11 01:26時点 | Amazon調べ)

作者:

WordPress用テーマ「HABONE」の開発、プラグインやテーマの翻訳、WordPressの使い方やカスタマイズ方法などの情報を配信しています。

年齢:40代 趣味/園芸・ペット・卓球