アクセス制限

アクセス制限とは?

特定のIPアドレス持つマシンや特定のドメインからのアクセスを制限する こと。情報を伝えたい範囲を限定したいときに有効。

Webコンテンツをブラウズする際にユーザ名とパスワードを必要とするよ うな、パスワード制限もアクセス制限の一種である。

アクセス制限の実際

ここでは、本学も含め、世界中で最も多く使われている(2002年6月現在 約1千万 サイト) Apache (アパッチ) Webサーバによって、Webコンテンツを公開する際 のアクセス制限方法を紹介する。

アクセス制限は、.htaccess というファイルによって設定される。それを 置いたフォルダと、そのフォルダ以下に含まれるフォルダ全てに適用される。 htaccess を置いたフォルダに含まれるフォルダにアクセス制限を適用したく ない場合は、そのフォルダに .htaccess ファイルを置いてそこでアクセス制 限を解除する必要がある。

アクセス制限

特定IPアドレスからのみ許可

例: 192.168.130.61 からのアクセスのみ許可する

<Limit GET>
order deny,allow
deny from all
allow from 192.168.130.61
</Limit>

一定範囲からのみ許可

IPアドレスの後に / でマスクを指定する。マスクはIPアドレス(32ビット) の上位何ビットより下位ビットを範囲とするか、を指定する。/20 と指定する と、上位20 ビットは固定し、下位12ビットの範囲を指定する。 202.26.144.0/20 とすると、202.26.144.0 〜 202.26.159.255 までを意味す る。

例: 大学が使っているIPアドレス範囲のみのアクセスを許可する

<Limit GET>
order deny,allow
deny from all
allow from 202.26.144.0/20
allow from 192.168.0.0/16
</Limit>

特定IPアドレス、一定範囲からのみ拒否

特定ファイルやフォルダのみアクセス拒否

<Files ファイル名やフォルダ名を一つだけ>
order deny, allow
deny from all
<Files>

のように、.htaccess に書き足す。all の代わりにアクセスさせたくない IPアドレスや範囲を書くのも可。

パスワード制限

パスワードファイルの作成

まず、crypt というアルゴリズムで生成されるパス ワード文字列を作成する。作成された

ユーザ名:暗号化されたパスワード
を1行とするパスワードファイルを作成する。

.htaccess の内容は、

AuthType Basic
AuthName "Example of password restriction"
AuthUserFile /home/media/login_name/public_html/password_file
<Limit GET>
require valid-user
</Limit>
となる。上記で変更すべき箇所は2箇所であり、
AuthName の直後にパスワード入力画面に表示される文字列を""で囲む
AuthUserFile パスワードファイルのサーバ上でのパス名
という部分である。

パスワードファイルの隠蔽

作成したパスワードファイルも、例えば

http://www.edu.tuis.ac.jp/~login_name/password_file
というURLを入力することによってブラウズできるようでは、crypt化された暗 号の強度は低い(比較的簡単に解読される)ため、アクセス制限を掛けている意 味もあまりなくなってしまう。

特定ファイルやフォルダへのアクセス制限を利用して、

<Files password_file>
order deny, allow
deny from all
<Files>
のような行を .htaccess に加えることによって、パスワードファイルがブラ ウズされないような配慮が重要である。あるいは、WEB公開用フォルダ (public_html)以外にパスワードファイルを置く、という方法もある。