2008年5月1日木曜日

Linuxでベーシック認証の設定

研究室のホームページにベーシック認証をつけたかったのだが,うまくいかなかった.
先生にアドバイスしてもらったLinuxサーバの設定変更を含めて,やり方をまとめておこうと思う.

【目的】
ホームページにベーシック認証を設定すること.

【手順】
1. サーバーにベーシック認証の許可を設定する

(1) /etc/http/conf/で,httpd.confを開く.
(2) htmlを管理している < Directory /home/httpd/html >の記述を探す.
(3) その下側で次の記述を探す.

# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride All

(4) 最後の行のAllowOverrideの後が,Allになっていればサーバーでベーシック認証が可能.
Noneと記述されているとベーシック認証がつかえないので,Allに書き直す.

(5) /etc/httpd/conf/httpd.conf の編集後は変更を反映させるために Apache の再起動が必要となります.次に示す再起動のコマンドを実行してください.

  /etc/init.d/httpd restart

2. .htaccessと.htpasswdを設定する.

(1) ファイル.htaccessを作り,以下を記述する.

AuthUserFile フルパス/.htpasswd
AuthGroupFile /dev/null
AuthName "Input ID and Password."
AuthType Basic
require valid-user

deny from all


[変更必須]
AuthUserFile
認証をかけたいフォルダ(.htpasswdを置いた場所)を記述(フルパスor相対パス)
 フルパスの場合,ホームページを表示させるものとは違うのでサーバーを確認すること.
(例1)AuthUserFile ~/255.255.255.255/home/data/.htpasswd
 (例2)AuthUserFile /home/chama/.htpasswd
 (例3)AuthUserFile /web/cgi-bin/cargo/data/.htpasswd

[変更可能]
3行目のAuthName "Input ID and Password."
""の中の記述は自由に変更可能です. 

(2)ファイル.htpasswdを作り,以下を記述する.
chama:gjIekbT.nmR52
:の前は → user名
:の後は → 暗号化したパスワード

暗号化したパスワードの作り方は,サーバー上でできるんだけどちょっと不安なので今回はスルーする.
変わりに,すばらしいサイト生成してもらって.htpasswdに記入する.

ユーザーとパスワードの組み合わせを複数作りたければ,必要な分だけ記述すればよい.
ただし,あまり多くのユーザー名を扱う場合にはDBを使った方法をやってみたほうがよい.

(3).htaccessと.htpasswdのパーミッションは604が良いらしい.

3. サイトにベーシック認証が適応されていることを確認する.IDとPWを入力し正しければ表示され,正しくないときは表示されないことを確認する.

【参考サイト】
ベーシック認証
Turbolinux 11 Server: ユーザーガイド
パーミッションの壁

0 件のコメント: