Parallels Desktop ブラックフライデーセール 25%OFFGo!

.htaccessで海外からのアクセスを制限する方法 Apache 2.4対応版

htaccessで海外からのアクセスを制限

ウェブサイトの運営をしていると、海外からの不正アクセススパムコメントに悩まされている方も多いのではないでしょうか。そんなお悩みを解決する最新の方法を解説します。

注目
  • Apache 2.4 に対応した新しい記法で設定します。
  • Google関連のアクセスはGoogleが公開しているIPアドレスリストを使用してアクセスを許可します。
  • 日本に割り当てられた最新のIPアドレスリストを使用してアクセスを許可します。
目次

海外からのアクセスを拒否する .htaccess 生成ツール

  • [データ取得] ボタンを押すと日本に割り当てられた最新のIPアドレスリストを取得して .htaccess 用の設定を生成します。10秒程度の時間がかかります。
  • これを .htaccess ファイルにコピー&ペーストしてサーバ上のアクセス制限をしたいディレクトリに設置してください。
.htaccess | 日本のIPリスト | GoogleのIPリスト

データ取得中…

設定の説明

ウェブクローラのアクセスを許可する

海外からのアクセスを拒否する場合でも、ウェブクローラのアクセスは許可しなければなりません。これをしないとあなたのサイトは検索エンジンにインデックスされなくなってしまいます。

# ウェブクローラに環境変数を設定
SetEnvIf User-Agent "msnbot" searchbot
SetEnvIf User-Agent "bingbot" searchbot
SetEnvIf User-Agent "Slurp" searchbot

<RequireAny>
# ウェブクローラのアクセスを許可
Require env searchbot
...
</RequireAny>
SetEnvIf User-Agent "msnbot" searchbot

User-Agent が msnbot という文字列を含むアクセスに searchbot という印をつけておきます。(難しく言うと環境変数 searchbot(=true) を設定します。)

<RequireAny> ... </RequireAny>

このディレクティブ内のいずれかの条件に一致するとアクセスは許可されます。

Require env searchbot

searchbot という印がついているアクセスを許可する設定です。

ここでは3つのウェブクローラ(MSN, Bing, Yahoo!)の設定をしていますが、他のクローラも許可したい場合はこちらのサイトを参考にしてクローラの名前を確認し、設定を追加してください。

Google については下記で別途設定しますので、ここでは設定しません。

Google関連サービスのアクセスを許可する

Googleが使用するIPアドレスのリストhttps://www.gstatic.com/ipranges/goog.json で公開されています。このリストから情報を取得して設定します。

<RequireAny>
...
# Google関連のアクセスを許可
Require ip 8.8.4.0/24
Require ip 8.8.8.0/24
...
</RequireAny>
Require ip 8.8.4.0/24

IPアドレスが 8.8.4.0/24 のアクセスを許可する設定です。Googleが使用するすべてのIPアドレスを列挙して設定します。

IPアドレスベースで設定することで、なりすましによるアクセスをしっかりと防ぐことができます。このインターネットの大海原にはUser Agentを偽装したニセGooglebotが蔓延っています。

国内からのアクセスを許可する

日本からのアクセスのみを許可することで海外からのアクセス拒否を実現します。

<RequireAny>
...
# 日本国内からのアクセスを許可
Require ip 1.0.16.0/20
Require ip 1.0.64.0/18
Require ip 1.1.64.0/18
...
</RequireAny>
Require ip 1.0.16.0/20

IPアドレスが 1.0.16.0/20 のアクセスを許可する設定です。日本に割り当てられたすべてのIPアドレスを列挙して設定します。

日本に割り当てられたIPアドレスはAPNICが公開しているデータ http://ftp.apnic.net/stats/apnic/delegated-apnic-latest から取得します。割り当てIPは変化しますので、たまに .htaccess 生成ツールで再取得することをおすすめします。マメなあなたは月1回、怠け者のあなたは年1回くらいは更新したほうがいいですよ。

Apache 2.4 に対応した設定をしましょう

アクセス制限をするためのディレクティブは Apache2.2 で使われていた allow from ... deny from ... を使う方法と Apache2.4から採用された Require ... を使う方法があります。

現在はほとんどのレンタルサーバーで Apache2.4 の方法が使えますが、互換性のために Apache2.2 の方法も使えるようになっていることが多いです。

どちらでも動作するのですが、せっかくなので新しい設定方法に慣れましょう。将来的に古いやり方は廃止されるかも知れません。その時になって焦っても遅いですよ(脅し)。

でわでわ

htaccessで海外からのアクセスを制限

この記事が気に入ったら
いいね または フォローしてね!

シェアしてね

コメント

コメントする

目次