WordPressサイトへの不正アクセスが急増
私が運営しているWordPressの一つに、不正アクセス(ブルートフォースアタック)が急増しました。そういう不正アクセスから守るためのプラグインはすでに入れており、それがしっかり弾いてくれています。アクセスを拒否したという報告メールが来るので不正アクセス急増に気づいたわけですが。
しかし、それにしても急に増えました。
見ての通り、3月、5月、6月に何度かアクセス拒否(ロックアウト)通知が来ていた程度だったのが、9月に入って急増。一時間おきに来るくらいのペースです。
メールの中身はこんな感じ。
このiThemes Securityプラグインが優秀で、しっかり防いでくれています。参考までに、ログはこんな感じ。
とはいえ、やはり、こんなにアタックが多いと心配にはなります。そこで、別の対策も併用することにしました。
海外からのアクセスをプラグインで拒否
不正アクセス元は、主に海外です。そのため、レンタルサーバによっては、海外からのアクセスを拒否するサービスをしているところがあります。なので、そうしたサービスがあるなら、それを利用するのが手軽です。
プラグインIP Geo Blockをインストール
でも、そういうサービスがなくても、WordPressならプラグインで同様のことができます。使用するプラグインはIP Geo Block。
通常の手順でインストールし、有効化します。
設定
有効化するとこういうメッセージが表示されました。
「少し時間を置いた後」という表現が微妙ですね。どれくらい待ったらいいのかわかりませんし、また、待たずにすぐにアクセスしたらどうなるのかも見てみたかったので、ちょっと悩んだくらい(数十秒?)で、すぐに「検証ルールと振る舞いの設定」リンクを開いてみました。
ご覧のとおり、すでに「国コード」は認識されていました(JP)。その下の「国コードのホワイトリスト」にもしっかり「JP」と入っています。ここに記入した国からのアクセスだけが通るようになります。それ以外はシャットアウトされます。「JP」は「日本」ですので、日本からだけアクセスできるということです。
なお、ここでいう「アクセス」は管理画面へのアクセスなどのことで、通常の閲覧にはこの制限は適用されません(そのはず)。なので、普通にコンテンツを見るのは日本に限定されません。
話を戻して、すでにホワイトリストも設定されているのでこのままでもいいのだろうと思いますが、念のため、画面一番下の「変更を保存」ボタンを押しておきます。
このプラグインはたくさんの設定ができますが、「とりあえず海外からのアクセスを拒否したい」ということならこれだけで大丈夫なようです。
動作確認
まずは、普通にサイトにアクセスできるか(コンテンツの表示ができるか)を確認。管理画面へのアクセスも問題ないことを確認します。
もし、自分自身が管理画面に入れなくなってしまった場合はプラグインを削除します。とは言え、管理画面に入れないので、通常の方法では削除できません。通常はこんなことにはならないともいますが、万一、そういう事態になってしまった場合はFTPで接続してプラグインを削除します。下のページを参考にして下さい。
このプラグインをインストールして数時間経ちました。正常に「アクセス拒否」してくれているようで、iThemes Securityプラグインからのロックアウトの通知メールは来なくなりました。
IP Geo Block自身の統計やログを見ると、しっかりと遮断してくれていることがわかります。
iThemes Securityだけでも大丈夫だとは思いますが、セキュリティ機構を複数入れておくと一層安心だろうと思います。
その後
IP Geo Blockを導入して一週間ほど経ちました。様子を記しておきます。
まず、IP Geo Blockを導入しても引き続き攻撃は受けていました。海外からのアタックだけをフィルタしたわけですから、国内からのアタックは相変わらず受けるわけです。とは言え、こういうアタックはほぼ海外からだけだろうと思っていましたから、これで攻撃はなくなるだろうと思っていました。
しかし、結果は、国内からの攻撃も結構ありました。これは、以前から導入しているiThemes Securityが防いでくれています。
とはいえ、やはりほとんどは海外からの攻撃だったのは間違いありません。IP Geo Blockの管理画面で国別の内訳が見られるようになっています。
ちょっと意外な結果です。攻撃元上位は、アメリカ、フランス、ドイツ、カナダ、シンガポール、イギリスという順でした。
また、導入した頃が攻撃のピークだったようで、9月12日頃に攻撃は止みました。守り抜いたと言えるかもしれません。しかし、またいつ攻撃を受けるかわかりません。
もう一つ、こちらは、Crazy Boneというログイン履歴を記録してくれるプラグインのログです。
この記録から、IP Geo Blockをすり抜けて攻撃を行っていたのは国内からだったということがわかります。
以上、導入後一週間の状況をまとめておきました。