2011年3月22日火曜日

Apacheでbasic認証

Apacheでbasic認証

Ubuntu Maverick Meerkat 10.10 Server Edition
VMWareとかVirtualBoxとかにUbuntuServerをインストールしてある
OpenSSH を導入しリモートログイン出来るようになっている
Apache2, MySQL, PHP5 がインストールしてある
ターミナルエミュレーターから接続して操作する



(01)Apache2の設定の確認


/etc/apache2/ apache2.conf
で、以下のように .htaccess を有効になるように設定してある

AccessFileName .htaccess

ディレクティブで
AllowOverride All
という設定がされている


(02).htpasswdファイルを設置する


.htpasswdファイルを保存するディレクトリを作る
$ cd /var/opt
$ sudo mkdir -p /var/opt/htpasswd/secret2

.htpasswdファイルを作る
$ sudo htpasswd -c /var/opt/htpasswd/secret2/.htpasswd user1
user1のパスワードを設定する

.htpasswdファイルの存在を確認する
$ ls /var/opt/htpasswd/secret2/.htpasswd

.htpasswdファイルに新しいユーザーをパスワードを追加する
$ sudo htpasswd /var/opt/htpasswd/secret2/.htpasswd user2

注意
-cオプションをつけると以前の.htpasswdファイルを置き換える


(03).htaccessでアクセス制限をかける


アクセス制限をかけるディレクトリを作る
$ sudo mkdir /var/www/secret2

アクセスできることを確認する
http://server.ip/address/secret2/

.htaccessを設置する
$ sudo nano /var/www/secret2/.htaccess


以下の内容を書き込む

AuthUserFile /var/opt/htpasswd/secret2/.htpasswd
AuthGroupFile /dev/null
AuthName "secret2"
AuthType Basic
Require valid-user

<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>



再度アクセスし、パスワードを入力するとアクセスできることを確認する
http://server.ip/address/secret/

0 コメント: