apacheでアクセスを制限する(その2)

Sep. 27, 2003



以前,特定ドメインからのアクセスのみを受け付ける場合の設定法について書いたが, ここではパスワードによるユーザ認証を行う設定法をまとめておく.

ユーザ認証を設けるディレクトリが /home/akasaka/public_html/inhouse であるとする. まず,/etc/httpd/conf/httpd.conf に以下の記述を追加する.

<Directory /home/akasaka/public_html/inhouse>
  AllowOverride AuthConfig
</Directory>
AuthConfig は以下で作成する .htaccess ファイルによるユーザ認証を 可能にするオプションである. httpd.confを変更したらapacheを再起動する.

次に,ユーザ認証を設けるディレクトリ(今の場合 /home/akasaka/public_html/inhouse) に以下のような内容の ".htaccess" というファイルを作成する.

AuthUserFile /home/httpd/auth/.htpasswd

AuthName "inhouse"
AuthType Basic
require valid-user
AuthUserFile はドキュメントを閲覧可能なユーザ名と そのパスワードが書かれたファイル.htpasswdの場所である. このファイルは httpd でアクセス不可能なディレクトリに置くべきである. ここでは /home/httpd/auth/ に置くことにする.auth ディレクトリは予め作成しておく.

apache のユーティリティである htpasswd (/usr/bin/htpasswd)コマンドを 使って .htpasswd を作成する. su してから/home/httpd/auth に移動し,次のように入力する.

# su
$ cd /home/httpd/auth
$ htpasswd -c .htpasswd USERNAME
USERNAME は閲覧可能なユーザ名である. これで二度パスワードを聞いてくるので適当なパスワードを入力する. apache のユーザ認証はシステムのそれとは全く独立しているので,USERNAME および そのパスワードはシステムに登録してあるものと別個でも構わない.

二人目以降は "-c" オプションを付けずに htpasswd を実行する.

$ htpasswd .htpasswd USERNAME2
/home/akasaka/public_html/inhouse に .htpasswd が出来ていれば準備完了である. .htpasswd にはユーザ名と暗号化されたパスワードが記録されている.

ユーザ認証を設けたディレクトリにあるファイルを閲覧すれば,以下のようなダイアログが表示されるはずである. 設定したユーザ名とパスワードで認証を通過できれば成功である.


お問い合わせはメールにて: akasaka@klc.ac.jp

戻る
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送