エックスサーバーのアクセスログを解析して不審なIPをブロックしてみました。
きっかけとしてはエックスサーバーのログが使いやすくなったので試しに利用してみたことがきっかけです。
実際に調べてみると攻撃と思しき怪しいアクセスログがいくつか見つかりました。
1.アクセスログを解析して不審なIPをブロックする
1件1件のログを洗い出すことはできないので以下の点で確認してみました。
- 「wp-login.php」や「wp-config.php」などの通常のサイト利用ではアクセスすることのないパスにアクセスしてるIPはあるか?
- ブラウザではなくボットでアクセスしているIPはあるか?
1-1.「wp-login.php」や「wp-config.php」にアクセスあるか?
探してみると自分自身のIP以外でアクセスしてる形跡がありました。
ただ、私のサイトもそんなにアクセス数はないのでIPはそれほど多くなかったです。
サイトの規模によってはIP数は多いと思いますし、逆に私のサイトなんかを攻撃してくれてるんだと思ってしまいました。笑
1-1-1.簡単な探し方
ブラウザでエラーログが出てくるので「Ctrl+F」で [wp-login.php] などを検索すれば確認できます。
![ブラウザ上で「Ctrl+F」で [wp-login.php] を検索した結果](https://bonjiri-blog.com/wp-content/uploads/analyzing-access-logs-and-blocking-suspicious-ip-addresses-001-01-800x161.png)
今回でいうと88から始まるIPアドレスが wp-login.php にアクセスしており、しかもGo言語というプログラムでアクセスしていることが分かります。
とても怪しいですね。
1-2.ボットでアクセスしているIPはあるか?
GoやPythonといったプログラムでアクセスしてきているような通信がないかを見てみます。
探し方は1-1と同じ方法(「Ctrl+F」で [python] など)で検索して探していきます。
今回はGoとPythonの2つを検索してみましたが、見事にありました。
1-2-1.bingbotなどは除外しない
探してみると bingbot からのアクセスも多数ありました。
ただこれはbing側からアクセスされているようだったので今回は拒否設定は入れないようにしました。
1-2.念のためIPがどんなIPなのかを確認する
基本的に不審なアクセスだとは思いますが念のためどんなIPなのかを確認しておきます。
私は以下のサイトを利用して確認しています。
結論を言うと、今回検出したIPたちはロシアのIPや中国のIP、AWSのIPでした。
海外やクラウドのIPはほぼアウトですね。
1-3.IPをブロックする
最後にIPをブロックします。
これはエックスサーバーの公式サイトに手順が載っているのでその通りに実施します。
これで拒否設定まで完了です。
2.まとめ
今回は以下の2観点でログを調査して、該当するIPをブロックしました。
- 「wp-login.php」や「wp-config.php」などの通常のサイト利用ではアクセスすることのないパスにアクセスしてるIPはあるか?
- ブラウザではなくボットでアクセスしているIPはあるか?
少なくとも月に1回はログをみて対応していく必要があるなと思いました。