18 January 2008

Apache初期設定(アクセス制限)

ユーザ名・パスワードによるアクセス制限を掛ける

(1)ベーシック認証

ユーザ名とパスワードのセットを作成する

[root@localhost ~]# cd /var/www [root@localhost www]# mkdir auth [root@localhost www]# htpasswd -b -c /var/www/auth/.htpasswd user-name user-password Adding password for user user-name

httpd.conf でアクセス制限を掛ける場合 (すべてのホームページ)

/etc/httpd/conf/httpd.conf
<Directory "/var/www/html"> AuthType Basic AuthUserFile /var/www/auth/.htpasswd AuthGroupFile /dev/null AuthName "Authentication Required Site" Require valid-user </Directory>

特定のディレクトリ以下にアクセス制限掛ける場合は、そのディレクトリのセクションを作成して、そこに記述する。

.htaccess ファイルでアクセス制限掛ける場合は、アクセス制限かけたいフォルダに .htaccess ファイルを作成し、次のように記述する

/var/www/html/任意のディレクトリ/.htaccess
AuthType Basic AuthUserFile /var/www/auth/.htpasswd AuthGroupFile /dev/null AuthName "Authentication Required Site" Require valid-user

ベーシック認証ではユーザー名とパスワードは平文(Base64で符号化)されて送信される。パケットキャプチャで簡単にユーザ名・パスワードのセットが見られてしまいます。

そこで、次の(2)で説明するパスワードのMD5暗号化が必要になる。

(2)ダイジェスト認証 (MD5暗号化利用)

新しいブラウザでは、パスワード送信を暗号化するダイジェスト認証が利用できる

ユーザ名とパスワードのセットを作成する

[root@localhost ~]# cd /var/www [root@localhost www]# mkdir auth [root@localhost www]# htdigest -c /var/www/auth/.htdigest 'MD5 Digest Authentication' user_name Adding password for user_name in realm MD5 Digest Authentication. New password: Re-type new password:

httpd.conf でアクセス制限を掛ける場合 (すべてのホームページ)

/etc/httpd/conf/httpd.conf
<Directory "/var/www/html"> AuthType Digest AuthUserFile /var/www/auth/.htdigest AuthName "MD5 Digest Authentication" Require valid-user </Directory>

(3)クライアント証明書の検証を追加

Apache(CAの設置と認証)に記述