特定ホストのアクセスの禁止と許可

Updated / Published

.htaccessのorderディレクティブ、allowディレクティブ、denyディレクティブを用いて特定のホスト(IPアドレス・ドメイン)からのアクセスを禁止したり許可するアクセスの制限方法について説明します。

ホスト(host)とは、ネットワークを利用しているコンピュータのことで、それぞれのコンピュータの通信は識別できるように IPアドレス(数字の羅列で構成)やドメイン(アルファベットと数字、一部が記号で構成)が割り当てられており、この IPアドレスやドメインを指定してアクセス制限を行います。

たとえば、ユーザからのコメントを受け付けられるウェブサイトを運営していると、特定のユーザからの宣伝や誹謗、中傷などの迷惑行為に遭遇することがあるかもしれません。そのような場合に迷惑行為を行ったユーザのホストからのアクセスを禁止して対処することもできます。また、特定ホストからのアクセスだけを許可する方法を上手く利用すれば仲間内だけで情報のやりとりを行いたい場合にも利用できます。

アクセス制限の注意点

説明に入る前に、これから紹介するアクセス制限の方法はあくまでも一時的な効果しか期待できなかったり、無関係の第三者にまで影響が及んでしまうことがあるので注意してください。

たとえば、IPアドレスであれば、利用されているプロバイダ(ISP)のサービスによっては下数桁の部分は接続の度に変わることがあります。その結果、IPアドレスの最初の5-6桁の部分やドメイン名ならば変わらないからと、これらをそのまま対象にすると無関係の第三者が同じプロバイダの IPアドレス群やドメイン名でアクセスしてきた場合に、無関係の第三者までもが対象になりかねません。また、ユーザの中にはプロキシ経由で毎回ホストを変えてアクセスしてくるなど対処が困難な場合もあることを理解しておいてください。

もし完全にアクセス制限をコントロールしたいというのであれば、閉塞的な形にはなりますがユーザ認証を採用するのも方法のひとつです。認証とは ID(ユーザ名)とパスワードによる照合を行う会員制(メンバー制)にする方法です。これも .htaccess を使うことで容易に実現できる方法に Basic認証があります。仲間内だけで情報のやりとりを行いたい場合にも、Basic認証を利用した方が管理・保守面において適しているでしょう。

特定ホストのアクセスを禁止

order allow,deny
allow from all
deny from xxx.or.jp
deny from 255.255.255.0

1行目の orderディレクティブは、アクセスの許可(allow)・禁止(deny)の評価の順番を決定するものです。上の例では、allow,denyallowdeny の先に記述しています。

2行目の allow from allallowディレクティブの内容がorderディレクティブによって先に評価され、全てのホストからのアクセスを許可しています。

3行目、および4行目に deny from ドメイン名deny from IPアドレス の形で denyディレクティブによってアクセスを拒否するホストを指定しています。この設定により特定ホストからのアクセスのみを禁止することができます。

実用例 特定のIPのみ管理画面へのアクセスを許可する

<Files "admin.cgi">
order deny,allow
deny from all
allow from 255.255.255.0
</Files>

Filesディレクティブは、その中にあるディレクティブの適用範囲をファイル名で制限します。つまり、この場合は、admin.cgiにアクセスできるIPアドレスをallow from 255.255.255.0255.255.255.0のIPアドレスからのみに制限しています。このようにセキュリティの向上に役立てるのが一般的な用いられ方です。

特定ホストのアクセスを許可

order deny,allow
deny from all
allow from xxx.or.jp
allow from 255.255.255.0

今度は逆です。1行目の orderディレクティブは、アクセスの許可(allow)・禁止(deny)の評価の順番を決定するものですが、こちらは deny,allowdenyallow の先に記述しています。

2行目の deny from alldenyディレクティブの内容がorderディレクティブによって先に評価され、まず全てのホストのアクセスを禁止しています。

3行目、および4行目に allow from ドメイン名allow from IPアドレスの形で allowディレクティブによってアクセスを許可するホストを指定しています。この設定により特定ホストからのアクセスのみを許可することができます。

指示子のフォーマット

特定ホストからのアクセスを禁止する deny from、または特定ホストからのアクセスを許可する allow from に続いて指定する指示子について説明します。下記のように書き方によって制限の範囲が異なるので注意してください。

255.255.255.0
255.255.255.0 の IPアドレスをもつコンピュータのみが対象となる
255.255.255
255.255.255.0 から 255.255.255.255 までの範囲の IPアドレスをもつコンピュータが対象となる
.u-tokyo.ac.jp
.u-tokyo.ac.jp のドメインが付くコンピュータのみが対象となる
.ac.jp
大学や専門学校、高等専門学校に所属するコンピュータ全てが対象となる