海外からのアクセスを拒否する.htaccessの作り方

いつもシェアしていただいてありがとうございます。これからも「ちょいとお役立ちして嬉しくなる」記事の配信を目指しています。ポチッと↓のボタンからシェアしてください。

海外からのアクセスを制限する

この記事を書いた背景

WordPressのインストールの有無に関わらず、Webサーバーというのはとにかく大量のアクセスを受けます。

アクセスには、ブラウザーを使っているユーザー以外にも、Googleなどのクローラーや、不正アクセスを試みる第三者まで様々です。

ここで問題があります。

不正アクセスを放置すると言うことは、Webサーバーに負荷がかかります。
正確には、Webサーバーを含めたサーバー全体に負荷がかかります。

不正アクセスが来るのは回避しようがないのですが、不正アクセスによって本来のパフォーマンスがでないのは困りますね。

WordPressなどのシステムは、Webサーバーにアクセスが来たあとにPHPプログラムの実行やデータベースサーバーの利用などでネットワークやCPUのリソースを食います。

平たく言えば遅くなります。

原因と解決方法

ここで、アクセスの順番を表すと次の様になります。

[アクセス]→[A:Webサーバー]→[B:PHPプログラム(WordPress)]→[C:データベースなど]

アクセスに対する処理が右に行くほどコンピューターのリソースを食うことにります。

つまり、いかにアクセスに近い左側で処理すべきかを判断し、不要な処理は行わないようにすることがサーバー全体の負荷を下げることに繋がるのです。

上記のA~Cの中で一番アクセスに近いのは「A:Webサーバー」です。

ここで不正アクセスかどうかの判断を行えば良いというわけです。

不正アクセスかどうかの判断についてもいろいろな手法が存在するのですが、簡単なのは海外からのアクセスをIPによって判断し拒否することです(海外から管理画面を利用する場合は使えませんが・・)。

プラグインによってはWordPress.comなどとやりとりを行うものや、Googleなどのボットに対応する必要がありますので、その一部のIPを除くように設定します。

具体的な設定方法

大まかな設定は次の2点です。

  • 海外のIPアドレスに制限をかける
  • 検索エンジンのbotにアクセスを許可する

海外のIPアドレスに制限をかける

海外のIPアドレスを拒否するというよりかは、日本に割り当てられているIPアドレスのみ許可する、という考え方をします。

IPAPNICから日本に割り当てられているIPアドレスを取得して、日本国外からのアクセスを制限する.htaccessファイルを提供しているサイトを利用すると簡単です。

下記のリンク先にアクセスして.htaccessを取得してください。

日本国外からのアクセスを制限する.htaccess
※8,000行ぐらいあります

WordPressに対しての攻撃はログインに関するものが多いの、まずはFilesディレクティブを使ってwp-login.phpに制限をかけましょう。

現在利用している.htaccessを開き、4行目(allow from~)に先ほどの取得した.htaccessの内容を貼り付けましょう。

<files "wp-login.php">
  order deny,allow
  deny from all
  allow from ~
</files>

検索エンジンのbotにアクセスを許可する

前行程で行った作業によって問題が1つ発生します。

それは、検索エンジンのbotまで拒否されてしまうことです。

そこで、IPアドレスではなく、User-Agentによって許可するアクセスを追加して対応します。

先ほどと同じ.htaccessに下記のUser-Agentを許可する行を追加します。

SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "bingbot" allowbot

まとめ

セキュリティの基本はすべて拒否したあとに必要なものだけ許可する、です。

ただし、この方法は適当にやってしまうと本来できて欲しいアクセスまで拒否してしまうので、ご注意ください。

なお、多くのレンタルサーバーではご紹介したようなアクセス制限をかける方法を、環境変数やコントロールパネルから設定できるようなメニューを用意しているところが多いので、まずはその確認をされた方が良いでしょう。

いつもシェアしていただいてありがとうございます。これからも「ちょいとお役立ちして嬉しくなる」記事の配信を目指しています。ポチッと↓のボタンからシェアしてください。

山本をフォローするだけでちょっぴりお得な情報が見つかりますよ↓↓↓