迷惑アクセス者(IP)を完全に拒否(制限)する方法

先回、Google Analyticsの海外からのスパム防止フィルター設定のご紹介をしました。
これはカウント表示をさせないというだけで、実際にはアクセスを受けています。
最近のレンタルサーバーは海外IPからのWordPress管理画面アクセス制限やログイン回数制限などセキュリティーの強化をしています。(日本国内にも悪質なアクセス者はいますが)まあ普通の使い方をしていれば安心だと思います。
しかし、もしあなたのサイトが企業サイトだったり、重要な情報を含んでいる場合にはもう少し強力なセキュリティーにした方が良いです。
そこで、今回は、迷惑なアクセス者(IP)を決め打ちで完全に拒否する方法のご紹介をします。
まずFTPを使ってWordPressファイルを置いてあるディレクトリー(サイトルート)に行きます。
因みにこの方法はFTPなどサーバー中のファイルに直接アクセスできるツールが必要です。ですからこの意味が理解できないスキルの方は今回は残念ですがお預けです。
次に、.hdaccessというファイル(拡張子も無く”.”から始まる特殊なファイル)を探して開きます。もし.hdaccessが存在しなければ、テキストエディターでhdaccess.txt(名前は何でも良いのですが分かりやすくするため)と名付けてPC上にファイルを作成します。
そして、次のおまじないを記入します。
order allow,deny
allow from all
deny from 対象の拒否したいIP
…
…
deny from 対象の拒否したいIP
この記述の意味は、基本的に全ての人からのアクセスを許可します⇒(allow from all)、でもこの人はダメ⇒(deny from 対象の拒否したいIP)です。
対象の拒否したいIPの書き方ですが、アクセスカウンターなどで表示されるIPは(当たり前ですが)○○.○○.○○.○○の様なアドレスが一つだけです。
これを一つ一つdeny fromで宣言しても良いのですが、悪質な輩のアドレスは連番が多いです。そこで、通常はIPアドレス最後の数字を0/24に書き換えます。
これは○○.○○.○○.0 ~ ○○.○○.○○.255(実際は0と255は特別な番号なので省略されます)の全てを対象にするという意味です。
ですから、***.***.***.45が対象IPでしたら、***.***.***.0/24と書くと大まかに対象指定ができるわけです。
だったら、アドレスの最後から2つ上の数字、3つ上の数字もまとめて対象に・・・と考える方もいらっしゃるかもしれませんが、そこまで広げると全く関係の無い人も巻き添えにしてしまう可能性があります。少しやり過ぎだと思います。
ですから、256個(0と255を除くと254個)単位で処理して行くのが良いです。
この設定をするだけで、対象のIPアドレスの人のディスプレイには最上部の図の様に”Forbidden”が表示されます。(人間がアクセスしていたらですけど)
相手がロボットでも大丈夫です。アクセスすらできなくなります。
.hdaccessが存在せず、PC上にテキストファイルを作成した方は、そのテキストファイルをFTP等でサーバーのサイトルートにアップします。そしてFTPのリネーム(名前を変更)で.hdaccessとすればOKです。
このおまじないがちゃんと効いているか心配の方は、ご自分のIPをdeny fromで宣言して確認をしてください。(確認後にdeny fromからご自分のIPを削除することをお忘れなく)
お試しください。