FreeBSD 8.4 RELEASE - apache - アクセス制限
Apache のアクセス制限について記述します。
インターネットに公開している Web サーバであっても、構築中のサイトや、企業の LAN 内だけにしか公開したくないサイト等があります。
インターネットすべてには公開したくないサイトについてどうやって制限をかけるかという方法について記述します。
制限のかけ方にも、大きく分けて二通りの方法があります。他にも複雑な方法もあるのですが、ここではもっとも単純な二通りについて説明します。
- 1. IP アドレスに対して制限をかける
- 2. パスワードによって制限をかける
1. IP アドレスに対して制限をかける
例題は、以下の環境とします。
ドメインのルートを /usr/local/www/data とします。
http://www.仮名.ne.jp/a/ に対して制限をかけるものとします。
IP アドレス 192.168.0.0 から 192.168.0.255 に対してのみ公開するものとします。
この場合、httpd.conf に以下のように記述します。
<Directory /usr/local/www/data/>
Options Indexes FollowSymLinks MultiViews
Order deny,allow
deny from all
allow from 192.168.0.0/24
</Directory>
<Diresctory> と </Diresctory> は、このディレクトリについて記述するという意味です。
Options から始まる行は、ここで説明する内容とは関係ありませんので、他のページを参照してください。
Order から始まる行は、リクエストを制限するのに、許可/非許可をどちらの順番で評価するかという定義です。deny は非許可であり、allow は許可を意味します。例題では、非許可を先に行って許可を後に定義しています。
deny from all は、すべての (all) IP アドレスからのアクセスを非許可とするという意味です。
allow from 192.168.0.0/24 は、192.168.0.0/24 つまり、192.168.0.0 と上位 24 ビットがマッチする IP アドレスについて、アクセスを許可するという意味です。
deny from と allow from についての記述方法は、他にも下に示すような方法があります。
| 定義内容 | 定義方法例 |
|---|
| すべてに対して定義する | all |
| IP アドレスと上位アドレスがマッチするものに対して定義する | 192.168.0.0/24 |
| IP アドレスとマスクを指定してマッチするものに対して定義する | 192.168.0.0/255.255.255.0 |
| 広義のドメイン(例 日本国内)に対して定義する | .jp |
| 狭義のドメインに対して定義する | .仮名 .ne.jp |
httpd.conf の記述を終えたら、configtest と restart を行うのは、他の節と同様です。
2. パスワードによって制限をかける
例題は、以下の環境とします。
ドメインのルートを /usr/local/www/data とします。
http://www.仮名 .ne.jp/b/ 以下に対して制限をかけるものとします。
この場合、httpd.conf に以下のように記述します。
<Directory /usr/local/www/data/b>
AuthType Basic
AuthName "Welcome to 仮名"
AuthUserFile /usr/local/www/data/b/passwd
require valid-user
</Directory>
<Diresctory> と </Diresctory> については前節を参照してください。
AuthType は、認証機構の種別を指定するものですが、これは必ず Basic にしてください。現在の Apache では Basic 以外指定できないようです。
AuthName は、パスワード入力画面の、「領域:」として表示させるメッセージです。必ず、ダブルクォーテーションでくくってください。中身には、自分の好きなメッセージや、領域を示す内容を記述してください。
AuthUserFile は、パスワードファイルを指定するものです。例題では /usr/local/www/data/b/passwd にしていますが、パスワードファイルを別のディレクトリや、別のファイル名にすることは可能です。
require valid-user は、「認証されたユーザしか、アクセスできませんよ」という意味です。
次に、パスワードファイルを作成します。パスワードファイルの管理には、htpasswd というコマンドを使用します。
> htpasswd -c /usr/local/www/data/b/passwd
-c オプションは、作成する(create) という意味です。その先のパラメータは、パスワードファイル名を示しています。この場合、ドキュメントのディレクトリと同じところに置いていますが、もちろん、ディレクトリやファイル名は、httpd.conf の記述と合わせておけば、どこに置いてもどんな名称でもかまいません。
パスワードファイルが作成されたら、パスワードの設定を行います。
> cd /usr/local/www/data/b
> htpasswd passwd auser
New password:
Re-type new password:
Adding password for user auser
htpasswd passwd auser の passwd は、パスワードファイル名の指定です。auser はパスワードを設定するユーザアカウント名です。
New password: と Re-type new password: の行は、パスワードの入力と確認のための再入力です。このとき、パスワードとして入力した文字は、エコーバックされません。打ち間違えると、ユーザアカウントが作成されないので、もう一度コマンドを入力するところからやりなおしてください。
パスワードの変更時も同じコマンドで変更できます。
ユーザアカウントを削除するときは、パスワードファイルをテキストエディタで開いて、対象のユーザアカウントの行を削除してください。
httpd.conf の記述、パスワードファイルの作成、パスワードの設定を終えたら、configtest と restart を行うのは、他の節と同様です。
|
|