【Crazy Bone】不正アクセスを行ったIPアドレスを一覧表示する方法

WordPressプラグイン「Crazy Bone」をインストールしているサイトに、不正アクセスを行ったIPアドレスの一覧を表示する方法のご紹介です。

Crazy Boneとは?

Crazy Boneは、ユーザのログインやログアウト、ログインエラーなどのログイン履歴を記録するWordPressプラグインです。


不正アクセスを行ったIPアドレス一覧表示

Wordpresを利用したウェブサイトには毎日のように管理画面への不正アクセスが試みられています。

この対策としてIPアドレスによるアクセス拒否がありますが、Wordpressでは標準仕様として一覧出力する機能を備えていません。

また、Crazy Boneも記録する機能は備えていますが一覧出力する機能は備えていません。

しかし、DBにはログとして記録されているためSQL構文を使用することで一覧出力が可能です。

なお、国レベルでアクセス拒否をしたい場合は次の記事を参考にして下さい

国別のIPアドレス一覧を出力「Block Visitors by Country」 | ハルパス

Crazy BoneのログをSQLで抽出

Crazy Boneはログイン履歴をDB「wp_user_login_log」に保存しています。そのためSQL構文を使用することでデータの取捨選択が可能です。

phpMyAdmin へログインし、SQLタブから以下のSQL構文を実行して下さい。


「IPアドレス」のみを一覧出力

SELECT `activity_IP`
FROM `wp_user_login_log`
WHERE `activity_errors` IS NOT NULL GROUP BY `activity_IP`

「IPアドレス」と「件数」を一覧出力

SELECT `activity_IP` , COUNT(`activity_IP`)
FROM `wp_user_login_log`
WHERE `activity_errors` IS NOT NULL GROUP BY `activity_IP`
ORDER BY COUNT(`activity_IP`) DESC;

「IPアドレス」と「件数」で一定数以上のみを一覧出力

上のSQL構文との違いは、不正アクセス回数が一定以上(ここでは5つ)のものだけ表示させます。

SELECT `activity_IP` , COUNT(`activity_IP`)
FROM `wp_user_login_log`
WHERE `activity_errors` IS NOT NULL GROUP BY `activity_IP`
HAVING  5 < COUNT(`activity_IP`)
ORDER BY COUNT(`activity_IP`) DESC;