.htaccessでwebサイトの海外IPアクセスを除外する方法
2024.01.05web/ホームページ制作, エンジニアリング, 制作Tips
はじめに
ウェブサイトのセキュリティを向上させるために、.htaccessファイルを使用して海外からのアクセスを制限する方法についてご紹介します。これにより、不正なアクセスや攻撃からの保護が可能です。
また、Googleや他の検索エンジンのクローラーアクセスは除外せずに許可する設定も行います。
下記が今回設定するコードです。書かれている内容については以下で詳しく解説していきます。
Apache
SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "bingbot" allowbot
SetEnvIf User-Agent "Slurp" allowbot
order deny,allow
deny from all
allow from env=allowbot
allow from googlebot.com
allow from google.com
allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
中略
allow from 223.223.224.0/19
allow from 223.252.64.0/19
allow from 223.252.112.0/20
1.Googleなどの検索ボットは許可する
Apache
SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "bingbot" allowbot
SetEnvIf User-Agent "Slurp" allowbot
上記のコード箇所では、Googlebot、msnbot、bingbot、およびSlurpのユーザーエージェントを持つクローラーに対してallowbot
という環境変数をセットしています。
2.IP制限の設定
Apache
order deny,allow
deny from all
allow from env=allowbot
allow from googlebot.com
allow from google.com
allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
中略
allow from 223.223.224.0/19
allow from 223.252.64.0/19
allow from 223.252.112.0/20
上記のコード箇所では、order deny,allow
でアクセスの制御順序を指定し、deny from all
で最初にすべてのアクセスを拒否しています。
次に、先にセットしたallowbot
環境変数に一致するクローラーや特定のドメイン、国内IPアドレス帯域を許可する設定を行っています。
3.国内IPアドレスの取得
国内のIPアドレスをすべて取得する必要があるため、IPアドレスで日本国外(海外/外国)からのアクセスを制限する.htaccess CGI’sやfetusから.htaccess制御用のリストをダウンロードし、下記のコード箇所にすべて記載します。
便宜上、下記のコード内では中略してますがダウンロードしたIPリストは全て記述してください。
Apache
allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
中略
allow from 223.223.224.0/19
allow from 223.252.64.0/19
allow from 223.252.112.0/20
この設定により、海外からの一般的なアクセスを制限しつつ、Googleや他の検索エンジンのクローラーアクセスは許可されます。
必要に応じて、IPアドレス帯域やドメインを調整してください。