Kenji Arisawa
E-mail: arisawa@aichi-u.ac.jp
Aichi University
Kurozasa 370, Miyoshi-cho
Aichi, Japan
2002/02/01

Powered by Pegasus
IP に基づくアクセス制限
名称
allow
配置
/etc/allow
説明
allow はクライアントからのドキュメントへのアクセスをクライアントの
IP アドレスで制御します。
このファイルはサービス空間の中での
/etc
に置く必要があります。
ユーザあるいは仮想ホストに与えられた Web ルートの下の etc が
サービス空間の中で /etc となります。
以下に記述例を挙げます。
#
# This file restricts access by IP
# The restriction is effective to all subtrees.
#
# We can use shell style wild card.
# Pegasus extention:
# a symbol `~' at the beginning means negation
# se, we don't need deny file
#
/test/authtest/private/room1
*.*.*.*[13579]
/test/authtest/private/room2
~*.*.*.*[13579]
/test/authtest/private/room1/more1
*.*.*[0-4].*
/test/authtest/private/room1/more2
*.*.*[5-9].*
/test/authtest/private/room2/more1
*.*.*[0-4].*
/test/authtest/private/room2/more2
*.*.*[5-9].*
allow の中はパス名と IP アドレスパターンの集まりです。
パス名は最初のカラム位置から書き、絶対パスを使用します。
IP アドレスパターンは空白文字に続けて書きます。1つの行に複数の IP アドレス
パターンを空白文字で区切って書いてもよいし、また複数の行に渡って書くことも
できます。
パス名は、そのパス名で示されたパスより下位のディレクトリへのアクセスを制限
します。この意味でこのパス名を(アクセスを制限する)パスパターンと呼んでも
構わないでしょう。
他方 IP アドレスパターンは、そのパス名で指定されたディレクトリへのアクセス
が許可される IP の一覧を表しています。
従ってリクエストを制限するパスパターンが存在しなければそのリクエストは許可
されます。もしもリクエストが複数のパスパターンとマッチすれば、どのパス
パターンでも IP が許可されない限りそのリクエストは拒否されます。
例えば
/test/authtest/private/room1/more1
のファイルにアクセスするためにはクライアントの IP アドレスは
*.*.*[0-4].*
たけではなく
*.*.*.*[13579]
をも満足しなくてはなりません。
IP アドレスのパターンではシェルスタイルのパターンマッチングが使用できます。
先頭の ~ に対して否定の意味を持たせました。
これによって特定の IP アドレスの集まりを拒否できることになります。
例えば ~* で全ての IP を拒否します。
(どこかのサーバのように deny ファイルをさらに管理する必要はなくなります。)
検査は URI 変換が終了してから行われます。
従ってパターンと比較するパスは、ファイル名で終ります。