コンテンツ
プラグイン「User Login History」でWordPress管理画面へのログイン履歴をチェック
こちらの記事では、WordPressの人気プラグイン「User Login History」について詳しくまとめました。
「User Login History」は管理画面へのログイン履歴を全て残してくれる便利なプラグインで、セキュリティ対策の一環として利用されることが多いです。
以前は「Crazy Bone」という国産プラグインがよく利用されていたのですが、現在は公式サイトから削除されてしまいました。
そこで、いま注目されているのが同じ機能を持つ「User Login History」です。
他にもログイン履歴を取得できるプラグインはたくさんありますが、個人的に「User Login History」が一番使いやすいと感じています。
「User Login History」でログイン履歴を残すことで、このようなことが可能になります。
■不正なログイン履歴をチェック
■複数ユーザーでサイト運営を行っている場合に、誰がいつログインを行ったかの監視
特に、管理画面から不正にログインしようとする攻撃(ブルートフォース攻撃やパスワードリスト攻撃など)は毎日のように発生しいています。
ログイン履歴はしっかりと残しておくことで様々な攻撃をチェックして、対策もとることができます。
「総当たり攻撃」とも呼ばれ、例えば5桁のパスワードのシステムがあれば、5桁で作成できるパスワード全ての組み合わせでログインを試みる方法です。
要は、手当たり次第にログインを試みてパスワードを盗み取る手段です。
何らかの手段でユーザーIDとパスワードを入手して不正にログインを行う方法です。
多サービスでも同じユーザーIDとパスワードを利用するユーザーも多いので、その情報を用いて不正ログインを行う者もいます。
それでは、まずは「User Login History」のインストール方法から説明していきます。
「User Login History」のインストール方法
「User Login History」のインストールは、管理画面左カラムにある「プラグイン」→「新規追加」から行います。
↓
プラグインのインストール画面が開くので、画面右上に「User Login History」を入力して検索を行います。
すると、画面左上に該当プラグインが出てくれるので、「今すぐインストール」をクリックしてインストールを開始ます。
↓
インストールが完了すると「有効化」ボタンが表示されるので、それをクリックしてプラグインを有効化します。
↓
これでインストールが完了です。
「User Login History」は、インストールして有効化するだけで機能します。
なので、次はログイン履歴画面に移動して、履歴をチェックしてみます。
ログイン履歴のチェック方法
インストールが完了したら、WordPress管理画面の左カラムに「User Login History」というメニューが追加されるのでクリックしてみましょう。
このような画面が開きます。
管理画面へのログイン履歴はこちらの画面で確認できます。
■User ID:ユーザーID
■Username:ログイン時のユーザー名
■Role:ユーザー権限
■Old Role:変更前のユーザー権限(権限を変更した場合)
■Browser:ブラウザ
■Operating System:OS(Windows、Macなど)
■IP Address:IPアドレス
■Timezone:タイムゾーン
■Country:国名
■User Agent:ユーザーエージェント
■Duration:ログイン時に画面に滞在していた時間
■Last Seen:最後に画面を操作した時間
■Login:ログイン日時
■Logout:ログアウト日時
■Login Status:ログインステータス(不明、ログイン、ログアウト、ログイン失敗)
ただ、まだインストールしたばかりなので何も履歴が残っていません。
そこで、試しにログインしなおしてみると、このようにログイン履歴が残りました。
このような感じでログイン履歴が残っていきます。
これにより、複数ユーザーでサイトを運営している場合なんかには、誰がいつログインしたかをチェックすることもできます。
次は、実際には存在しないアカウントで管理画面にログインを試みてみます。
↓
テストなので、「erroruser」というユーザー名で試してみました。
この場合には存在しないアカウントなのでログインエラーとなり、このように履歴が残ります。
この画面で右の方にスクロールしてみてください。
「Login Status」という項目に「failed」とログインに失敗した旨が履歴として残っています。
今回は自分で意図的にログインエラーを起こしてみました。
が、ログインに失敗したということは、誰かしらが不正にログインを試みた可能性があります。
もし、このようにログインエラーの履歴が残っていた場合には攻撃を受けた可能性もあるので、何かしらの対処が必要な場合もあります。
不正なログイン履歴へ対処方法
不正なログイン履歴が残っていた場合には、そのIPアドレスごとアクセスをブロックするのが一番手っ取り早いです。
IPアドレスは履歴画面に残っています。
このIPアドレスからのアクセスをブロックします。
特定のIPアドレスをブロックする方法
WordPressを利用している場合、特定のIPアドレスをブロックする方法は2通りあります。
特定IPアドレスをブロックする方法
・プラグインを利用する
.htaccessを利用する場合には、以下ようなコードを.htaccessに追記してサーバー上にアップロードするだけです。
allow from all
deny from 111.222.33.44
※「111.222.33.44」の部分を該当のIPアドレスに変更してください。
※また複数IPアドレスを指定する場合には、改行して「deny from 111.222.33.44」を追加していってください。
ただ、.htaccessを利用するのは初心者の方には少しハードルが上がるかもしれません。
その場合には、プラグインでサクッと対応することをおすすめします。
有名なプラグインだと、「Easy IP Blocker」や「WP-Ban」です。
これらのプラグインを利用することで、WordPress管理画面上からIPアドレスのブロック設定をすることもできます。
ログイン履歴のフィルター機能
ログイン履歴は、フィルター機能を使って絞り込みを行うこともできます。
デフォルトでは、「日付け」の項目のみが表示されていますね。
試しに特定の日付を選択して「FILTER」をクリックしてみてください。
該当の日付け内のログイン履歴のみに絞り込まれます。
また、画面右側に表示されている「SHOW ADVANCED FILTERS」をクリックすると、さらに詳細なフィルタリングの項目が出てきます。
これによりログイン履歴の細かな検索まで行えるようになっています。
■From:ログイン日時 下限
■To:ログイン日時 上限
■User ID:ユーザーID
■Username:ログイン時のユーザー名
■Country:国名
■Browser:ブラウザ名(chrome、firefoxなど)
■Operating System:OS(Windows、Macなど)
■IP Address:IPアドレス
■Timezone:タイムゾーン
■Current Role:現在のユーザー権限
■Old Role:変更前のユーザー権限(ユーザー権限を変更した場合)
■Login Status:ログインステータス(不明、ログイン、ログアウト、ログイン失敗)
「User Login History」の設定変更
「User Login History」では、オリジナルの設定画面も用意されます。
管理画面左カラムにある「設定」→「User Login History」を選択してください。
「Basic Settings」と「Advanced Settings」という2つのタブが表示されていると思います。
「Basic Settings」タブ
「Basic Settings」タブでは、「Online」「Idle」の2つのチェックボックスが用意されています。
■Online:オンライン中のユーザーとして表示する分数を設定。例えば2分に設定していると、「Last Seen」は2分間緑色で表示されます。
■Idle:アイドル状態のユーザーとして表示する分数を設定。例えば30分に設定すると、「Last Seen」は30分間灰色で表示されます。
このような表示になります。
↓
因みに、Idleに設定した分数を超えるとオフラインユーザー(Offline)として赤く表示されます。
ログインしたアカウントがオンライン中かアイドル状態かオフラインかを分かりやすくするために、色で分けて設定できるようになっているだけです。
なので、ここはデフォルトのままでもOKです。
「Advanced Settings」タブ
「Advanced Settings」タブでは、「Geo Tracker」にチェックを入れることで、タイムゾーンと国名も履歴と一緒に残してくれます。
試しに「Geo Tracker」にチェックを入れた状態でログインしてみます。
すると、このようにアクセス元のタイムゾーンと国も残してくれるようになります。
↓
タイムゾーンと国名も残しておきたい方は、「Geo Tracker」にもチェックを入れておきましょう。
私の場合には「Geo Tracker」にもチェックを入れておいて、あまりにも特定の国からの不正なログイン履歴が多く残っている場合には、その国ごとブロックしてしまいます。
そんな利用の仕方もできます。
ショートコード
「User Login History」では、ショートコードを使ってユーザーページに自身のログイン履歴を表示させることもできます。
例えば、ユーザーAというユーザーIDでログインしている場合には、ユーザーAの履歴のみが表示されます。
ショートコードはこちら。
↓
[user_login_history]
【テーマファイルに書き込む場合】
<?php echo do_shortcode('[user_login_history]'); ?>
また、いくつかのオプションも用意されています。
↓
[user_login_history limit='20' reset_link='custom-uri' columns='ip_address,time_login' date_format='Y-m-d' time_format='H:i:s']
【テーマファイルに書き込む場合】
<?php echo do_shortcode("[user_login_history limit='20' reset_link='custom-uri' columns='ip_address,time_login' date_format='Y-m-d' time_format='H:i:s']"); ?>
ユーザー側にはこのように表示されます。
正直、ユーザー側にログイン履歴を表示させる必要があるかは分かりません。
ですが、興味のある方は一度試してみてください。
因みに、ログイン履歴が表示されるのは、管理画面からログインしているユーザーのみになっています。
不特定多数のユーザーに表示されるわけではないので安心してください。
不正ログインの対策
「User Login History」はセキュリティ対策のために有効なWordPressプラグインです。
ただ、不正ログイン自体を防いでくれるわけではなくて、攻撃の痕跡を見つけるための手段です。
攻撃により不正にログインされてしまわないための対策としては、以下のような対策が有効です。
■パスワードを定期的に変更する
■他サービスと同じパスワードを利用しない
■不正アクセスをブロックする
パスワードを複雑にするというのは、12文字以上、英語大文字・小文字、数字、記号を含めるといった対策になります。
特に記号を含めるとパスワードは格段に安全になるので、必ず記号を含めるようにしましょう。
また、気を付けていてもパスワードが流出してしまうこともあり得ます。
その対策の為にも、パスワードを定期的に変更することが大切です。
さらに、他サービスとパスワードを統一しないということも大切です。
面倒だからと同じものを使いまわしてしまうと「パスワードリスト攻撃」の対象にもなってしまうので気を付けましょう!
また、不正アクセスを見つけたら、そのIPアドレスなどをブロックしてしまうのもおすすめです。
WordPressを利用している場合には、「WP-Ban」というプラグインを利用するのもおすすめです。
プラグインを利用できない場合には、.htaccessを使ってアクセスをブロックすることもできます。
基本的には、下記のような記述を.htaccessに追記するだけです。
allow from all
deny from 111.222.333.444 ← 該当IPアドレスを設定
ホストを指定する場合には、IPアドレスの部分をホスト名に変更してください。
また、複数のIPアドレスやホストを指定する場合には、改行して追加していってください。
WordPressプラグイン「User Login History」のまとめ
今回は、WordPressプラグイン「User Login History」について使い方などを詳細にまとめました。
「User Login History」を利用することで、不正なログイン履歴をチェックすることもできます。
また、複数ユーザーでサイトを運営している場合には、誰がいつログインを行ったかもチェックすることができます。
WordPressは世界中に多くの利用者がいるために、悪意のあるユーザーからの攻撃対象になることも多いです。
実際、サイトの規模にかかわらず多くの利用者が攻撃を受けています。
私自身も「User Login History」でログイン履歴をチェックしていますが、驚くほど大量の不正なログイン履歴が残っています。
セキュリティ対応もサイト運営者の責任なので、「User Login History」を使ってしっかりと不正なアクセスを管理するようにしましょう!