海外からのアクセスを拒否する.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
まとめ
セキュリティの基本はすべて拒否したあとに必要なものだけ許可する、です。
ただし、この方法は適当にやってしまうと本来できて欲しいアクセスまで拒否してしまうので、ご注意ください。
なお、多くのレンタルサーバーではご紹介したようなアクセス制限をかける方法を、環境変数やコントロールパネルから設定できるようなメニューを用意しているところが多いので、まずはその確認をされた方が良いでしょう。
10年集客し続けられるサイトを、ワードプレスで自作する9つのポイント プレゼント
あなたは、24時間365日、自分の代わりに集客し続けてくれるWebサイトを作りたい!と思ったことはありませんか?
私はこれまで500以上のWebサイトの構築と運営のご相談に乗ってきましたが、Webサイトを作ってもうまく集客できない人には、ある一つの特徴があります。
それは、「先を見越してサイトを構築していないこと」です。
Webサイトで集客するためには、構築ではなく「どう運用するか」が重要です。
しかし、重要なポイントを知らずにサイトを自分で構築したり、業者に頼んで作ってもらってしまうと、あとから全く集客に向いていないサイトになっていたということがよく起こります。
そこで今回、期間限定で
『10年集客し続けられるサイトをワードプレスで自作する9つのポイント』
について、過去に相談に乗ってきた具体的な失敗事例と成功事例を元にしてお伝えします。
・ワードプレスを使いこなせるコツを知りたい!
・自分にピッタリのサーバーを撰びたい!
・無料ブログとの違いを知りたい!
・あとで悔しくならない初期設定をしておきたい!
・プラグイン選びの方法を知っておきたい!
・SEO対策をワードプレスで行うポイントを知りたい!
・自分でデザインできる方法を知りたい!
という方は今すぐ無料でダウンロードしてください。
期間限定で、無料公開しています。
※登録後に表示される利用条件に沿ってご利用ください
海外からのアクセス拒否、やってみました。ですが、自分自身のiphoneから403エラーで見ることができなくなりましたので、今のところもとに戻してしまいました。
>とんとん さん
ご利用のキャリアや接続に使われているプロバイダーが海外を経由している場合などで、403 forbiddenが出る場合があります。
申請から許可されるまでに時間がかかっているのかもしれないですね。
お使いのレンタルサーバー側が海外アクセスに対応してくれている場合もありますので、そちらの情報を確認いただくのも良いかと思います。
わかりやすかった!
ありがとうございます!
Keita Ochiさん
お役に立てて何よりです!