ホームページにアクセス制限をかけるには


ここでは特定の人にのみページを公開したいときのために ページを見るときにパスワードの入力が必要になるようにする設定法を解説する。
以下の説明では、ユーザ名hogehogeさんを例にとる。

1, パスワードを作る

まず、ユーザ名とパスワードを管理するファイル(passwdfile)を作る。
初めて作るときは、

$ htpasswd -c /home/hogehoge/.users hogehoge


Adding password for hogehoge.
New password:
Re-type new password:
/home/hogehoge/.userspasswdfile の名前。(実はこのファイルの名前は何でもよい。)
-cオプションpasswdfile を新規に作る。 もしすでにあるなら古いほうを消去して、新しいファイルを作る。
hogehoge登録するユーザー名

のようにする。 ユーザを追加する時には -c オプションを外して

$ htpasswd /home/hogehoge/.users herohero

のようにする。この時パスワードフィールドには crypt 形式で 暗号化されたものが書かれるが、クラックの餌食になることも 考えられるので Web 経由のユーザーがパスワードファイルにアクセスできないようにしておくべきである。 (public_html/ 以下に置かない)

2, 制限をかける

(1)ユーザ認証方式

制限をかけたいディレクトリに、 .htaccess ファイルをおく。
これは、.htaccess と言う名前でないとだめ。パーミッションは644
例えば/home/hogehoge/public_html/aaa/以下に制限をかけたい場合は、
(ブラウザから見た時には、http://www.ep.sci.hokudai.ac.jp/~hogehoge/aaa/ 以下。)

$ vi /home/hogehoge/public_html/aaa/.htaccess
AuthType Basic
AuthName The-T-Directory
AuthUserFile /home/hogehoge/.users
<Limit GET POST>
require user hogehoge herohero ← アクセスを許可するユーザ名。
</Limit>
■それぞれの説明
AuthType認証制御の種類。Basic でよい。
AuthNameユーザ名とパスワードが有効になる"realm (範囲)"の名前。 簡単に言うと passwd を打つ window につける名前。 スペースの入らない名前をつける。
AuthUserFileuser 名と passwd が書き込まれたファイル名。先程作ったpasswdfileを絶対パスで指定。だから、さっきファイル名は何でも良いと言ったって訳。
<Limit GET POST>GET POST に制限を加える.
require userユーザ認証(この場合 hogehoge と herohero)を要求する。require の部分は特定グループだけを有効にすることも可能。

これで、

  http://www.ep.sci.hokudai.ac.jp/~hogehoge/aaa/index.html

などにアクセスした時にユーザ名とパスワードを聞いてくる。

パスワード問い合わせ画面/ IE の場合

(2)サーバ毎のアクセス制御

$ vi /home/hogehoge/public_html/aaa/.htaccess
AuthType Basic
AuthName The-T-Directory
AuthUserFile /home/hoge/.users
<Limit GET POST>
order deny,allow
deny from all
allow from xxx.xx.xx.xx ← 許可したいIPアドレス
</Limit>

こうしておくと xxx.xx.xx.xx 以外からのアクセスがあった場合、 ユーザ名とパスワードを聞いてくる。

(3)グループで指定

$ vi /home/hogehoge/public_html/aaa/.htaccess
AuthUserFile /home/hogehoge/.testuser
AuthGroupFile /home/hogehoge/.testgrp
<Limit GET POST>
require group testgrp
</Limit>

次に、グループファイルを作る。

$ vi /home/hogehoge/.testgrp

とし、グループに登録するユーザ名を書き入れる。

testgrp: hogehoge herohero
↑ユーザ名とユーザ名の間はスペースを入れる

そして、「(1)ユーザー認証方式」のようにグループに登録されたユーザとパスワードのファイルを作成する。


最終更新日:2001/10/23 (道政 広一)
Copyright © 2000 EPnetFaN