特定のIPアドレス持つマシンや特定のドメインからのアクセスを制限する こと。情報を伝えたい範囲を限定したいときに有効。
Webコンテンツをブラウズする際にユーザ名とパスワードを必要とするよ うな、パスワード制限もアクセス制限の一種である。
ここでは、本学も含め、世界中で最も多く使われている(2002年6月現在 約1千万 サイト) Apache (アパッチ) Webサーバによって、Webコンテンツを公開する際 のアクセス制限方法を紹介する。
アクセス制限は、.htaccess というファイルによって設定される。それを 置いたフォルダと、そのフォルダ以下に含まれるフォルダ全てに適用される。 htaccess を置いたフォルダに含まれるフォルダにアクセス制限を適用したく ない場合は、そのフォルダに .htaccess ファイルを置いてそこでアクセス制 限を解除する必要がある。
<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 までを意味す る。
<Limit GET> order deny,allow deny from all allow from 202.26.144.0/20 allow from 192.168.0.0/16 </Limit>
<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)以外にパスワードファイルを置く、という方法もある。