ホームページのアクセス制御については以下の方法で行なう。
まず、サーバ側の設定では、アクセス制御するディレクトリに対して、以下のようにする。
<Directory 許可するディレクトリ名> Options SymLinksIfOwnerMatch Indexes AllowOverride AuthConfig Limit </Directory>
○個人の設定について(1):ユーザ認証方式
制御をかけたいディレクトリに、 .htaccess ファイルをおく。 例えば、
$ vi /home/hogehoge/public_html/.htaccess
AuthType Basic AuthName The-T-Directory ← passwd を打つ window につける名前 (ただし、スペースを入れてはいけない) AuthUserFile /home/hogehoge/.users ← user 名と passwd を入れる file <Limit GET POST> require user hoge foo アクセスを許可するユーザ名。 </Limit>
こうしておくと、例えば
http://red.ep.sci.hokudai.ac.jp/~hogehoge/index.html
にアクセスした時にユーザ名とパスワードを聞いてくる。ところで、ユーザ名とパスワードを管理するファイルはどうやってつくるか?
とりあえず最初は、
$ /usr/bin/htpasswd -c /home/hogehoge/.users foo
とすればOK。 ユーザを追加する時には -c オプションを外して
$ /usr/bin/htpasswd /home/hogehoge/.usrs hoge
とかすればよい。この時パスワードフィールドには crypt 形式で 暗号化されたものが書かれるが、crack の餌食になることも 考えられるので Web 経由のユーザーがパスワードファイルにアクセス できないようにしておくべきである。
○個人の設定について(2):サーバ毎のアクセス制御
こーする。
$ vi /home/heogehoge/public_html/.htaccess
AuthType Basic AuthName The-T-Directory AuthUserFile /home/hogehoge/.users <Limit GET POST> order deny,allow deny from all allow from xxx.xx.xx.xx ← 許可したいIPアドレス </Limit>
こーすると xxx.xx.xx.xx から以外のアクセスを弾いた上にユーザ名と パスワードを聞いてくる。
◯個人の設定について(3):グループで指定
今までのように、.htaccessファイルを作る。
$ vi /home/yokoyama/public_html/.htaccess
として、適当なエディターで編集する。
AuthUserFile /home/hogehoge/.testuser AuthGroupFile /home/hogehoge/.testgrp <Limit GET POST> require group testgrp </Limit>
次に、グループファイルを作る。
$ /home/yokoyama/.testgrp
とし、グループに登録するユーザ名を入力する。
testgrp: hogehoge hogehoge2 ←ユーザ名とユーザ名の間はスペースを入れる
そして、「個人の設定について(1):ユーザー認証方式」のようにグループに登録されたユーザとパスワードのファイルを作成する。
このページのトップへ