『最近やたらと海外からのアクセスが多くなったのでアクセスを拒否したい。』なんて思ったことはありませんか?
皆さん、こんにちは。
業務改善を行う業務コンサルタント、高橋です。
先日投稿したGoogle Analyticsでのスパムの記事の最後に、『Google Analyticsにてフィルタリングする方法とは別の方法もありますが、それはまたの機会にお伝えできればと思います。』とお書きしました。
今日はそれを取り上げてみたいと思います。
海外からのアクセスをブロックする
海外からのアクセスをブロックしたい場合、Google Analyticsなどのアクセス解析上でのフィルタリングだけではなく、そもそものアクセスを拒否してしまう方法もあります。
それには.htaccessなどの中に少々アクセス制限を加えることになります。
例えば、ロシアと中国からのアクセスを拒否したい場合の例として、以下のように記述します。
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry
ただし、これはGeoIPという位置情報を取得するためのモジュールがサーバにインストールされている場合に限ります。
これが使えない場合、Geo Liteという同じようなモジュールなら使える場合があります。
その場合は以下のように記述します。
SetEnvIf MM_COUNTRY_CODE CN BlockCountry
SetEnvIf MM_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry
また、これらのいずれも使えない場合にはIPアドレスをブロックするか、もしくは許可するIPアドレスだけを記述することなら大半のレンタルサーバにて可能です。
プロキシ経由などのアクセス
しかし、これらの方法は一定の効果はあっても完全ではありません。
CN(中国)やRU(ロシア)などの国コードにはIPアドレスが紐づいており、それらの物理的な場所が第三国になっていた場合もあったりしますし、プロキシ経由にてアクセスされてしまえばアクセスは可能になってしまいますので、ある一定レベルのものを制御するという認識の下で行った方が良いかもしれません。