WordPressを運営していると、表からは見えないところで、さまざまなアクセスが届いています。
普通に記事を更新しているだけでは気づきにくいですが、サーバーのWAFログやセキュリティプラグインのログを確認すると、「どこに」「どのようなアクセスが来て」「どこで止められているのか」が見えてきます。
この記事では、ConoHa WINGのWAFと、WordPressプラグインのIP Location Blockを例に、実際のログを見ながら、サイトを守る仕組みを整理していきます。
実際のログから見えた2つの守り
ログには、普段の管理画面では見えないアクセスの跡が残ります。
そこには、怪しいURLへのアクセス、ログイン画面への試行、海外からの接続など、サイトを運営しているだけで届くさまざまな動きが記録されています。
ここでは、WAFとIP Location Blockのログを見ながら、それぞれがどの位置でサイトを守っているのかを確認していきます。
この記事で確認する守りは、主に次の2つです。
IP Location Block:WordPress側で国やIPアドレスをもとにアクセスを制限するプラグイン
WAF:サーバー側で怪しいアクセスを検知・遮断する仕組み
この記事では分かりやすくするために、WAFを「城門の門番」、IP Location Blockを「玄関前の門番」のようなものとして見ていきます。
ConoHa WINGのWAFログで止まっていたアクセス
見えない場所を探るアクセスも、WAFは検知していた
ログを見ると、海外から error_log.php へのアクセスが記録されていました。
これは通常の読者が見るページではなく、サイト内のエラー情報や内部情報を探ろうとする動きに見えます。
普通なら見逃してしまいそうな小さな隙。
でも、サーバーの門番(WAF)はそれを見逃さず、「遮断(アクセスを拒否)」という形で追い返してくれました。
私たちが気づかないところで、門番(WAF)はこんな細かいところまで守ってくれているのです。

error_log.phpの正体
泥棒が狙った『error_log.php』は、お城(サイト)のトラブル記録(エラー)が書かれた秘密のメモ帳のようなもの。そこからお城(サイト)の弱点を探ろうとする『ゴミ箱漁り』を、門番(WAF)は許しませんでした。
IP Location Blockのログ
城門を抜けた強者も、玄関先でピシャリ
IP Location Blockで止まっていたログイン試行
WAFはサーバー側で怪しいリクエストを検知する仕組みですが、すべてのアクセスを機械的に止めるものではありません。
一方で、IP Location Blockは国やIPアドレスなどの条件をもとに、WordPress側でアクセスを制限できます。
実際のログでは、海外からログイン画面へアクセスしようとした記録があり、IP Location Blockによってブロックされていました。

CA (Canada) からの「blocked」
お城の正面玄関(login)に来たけれど、身分証(IPアドレス)を見たら遠いカナダの人だった。だから、合鍵を試させる前に門番(IPLB)がピシャリと閉め出しに成功。
JP (Japan) からの「failed」
日本から来た(フリをした)人が、玄関で合鍵(パスワード)を試したけれど、カギが合わなくて失敗した記録。玄関のドアの前で、泥棒が立ち往生している様子。
WAFだけでは見えないアクセスもある
ログを見て分かったのは、WAFだけですべてのアクセスを止めるわけではないということです。
WAFはサーバー側で不審なリクエストを検知してくれますが、ログイン画面へのアクセスや国・IPアドレスをもとにした制限は、WordPress側のプラグインで補える場面があります。
だからこそ、WAFとIP Location Blockのように、違う場所で違う条件を見る仕組みを組み合わせる意味があります。

テーマやセキュリティ設定によっては、xmlrpc.php へのアクセスを制限できる場合があります。
ただし、その設定があるからといって、サイト全体のセキュリティが万全になるわけではありません。
裏口から侵入する為のパスワードという鍵を100回も1000回も鍵穴に差し込まれています。まあ、実際ここまで来たら気分的には突破されているような感じはします。
さらにセキュリティで言えば、.htaccess(ドット・エイチ・ティー・アクセス)という設定ファイルもあります。
サーバー側で特定のファイルやURLへのアクセスを制限できるため、狙われやすい通り道をあらかじめ塞ぐ対策として使われます。
今月は、海外からの不審なアクセスがかなり多く記録されていました。.htaccess でアクセス制限の指示を出すと、WordPressやプラグインが処理する前の段階で止められるため、サーバー側の負担を減らしやすくなります。
また、重要な設定ファイルや使わせたくないパスへのアクセスを制限する用途にも使われます。
1. 「.htaccess」の凄み
プラグインに判断させる前に、道そのものを塞ぐ。WordPressまで処理を渡さずに済むため、サーバーへの負担を抑えやすく、狙われやすい場所を守るうえで強力な防御策になります。
2. 強力な魔法には代償がある
ただし、.htaccess は注意が必要です。たった一文字の書き間違い、あるいは全角スペース一つの混入で、サイトは一瞬で真っ白な画面(500エラー)に変わってしまうことがあります。コードを書き換えるには、それ相応の慎重さと、事前のバックアップが欠かせません。
それぞれの守る場所が違う
.htaccess、WAF、IP Location Block と並ぶと、「そんなに必要なのか」と感じるかもしれません。
ただ、実際にはそれぞれが見ている場所や役割が違います。
- WAF:サーバー側で不審なリクエストを検知し、共通の盾として守る
- IP Location Block:WordPress側で国やIPアドレスなどの条件を見て、アクセスを制限する
- .htaccess:サーバー側のルールとして、特定のパスやファイルへのアクセスを先に制限する
どれか一つが万能というより、守る場所が違うからこそ、組み合わせる意味があります。
.htaccess に関しては、デザイン用のCSSを紹介するのとは重みが違うため、自分は安易にコードを紹介できません。
まずはWAFやセキュリティプラグインを使い、サーバー側のログも時々確認する。そこから、自分のサイトにどのようなアクセスが来ているのかを見ることが大切だと思います。
Googleアナリティクスには表示されないような海外からの不審なアクセスも、サーバーログやセキュリティプラグインのログには残ることがあります。
ログを確認することで、サーバー側の設定やプラグインの機能を使って、IP単位で制限する判断もしやすくなります。
ログを見て、必要な守りを重ねていく
記事内で紹介したログは、ごく一部です。
実際にサーバーログやセキュリティプラグインの記録を見てみると、自分が思っている以上に多くのアクセスが届いていることがあります。
今回のようなログを見ていくと、ワンタイムパスワードや二段階認証が推奨される理由も分かってきます。
ログイン画面に何度もアクセスされる可能性がある以上、パスワードだけに頼るより、もう一段階の確認を挟んだ方が安心です。
これを機に、サイトのセキュリティ設定や、普段使っているパスワードも一度見直してみると良いと思います。
誕生日や1234のような単純な並びは、さすがに避けたいところですね。

コメント