2008年8月19日火曜日

Apacheサーバの特定フォルダへアクセスの制御

◆方法一:
Apacheサーバのパス「C:\Program Files\Apache Group\Apache2\conf」
にあるファイル「httpd.conf」に制御の設定( セクション中)
を追加、修正。

◆方法二:
Apacheサーバ専用の制御ファイル「.htaccess」を作って、対象
ディレクトリの直下に置いたら、このディレクトリ及びサブディレクトリ
の制御ができる。

◆制御設定の作成手順(一):
下記手順は、サーバ上のあるディレクトリをパスワードで保護する設定手順。

(1)パスワードファイルの作成:
Apache 付属の htpasswd を使います:
例:
htpasswd -c /usr/local/apache/passwd/passwords userA

※userAは、アクセス権限を与えられるユーザです。
※このファイルは、Webからアクセスできない場所に置く必要がある。

(2)アクセスユーザの情報をサーバに知らせる設定:
・特定のユーザ:
AuthType Digest
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user userA

・パスワードファイルにユーザの追加:
htpasswd /usr/local/apache/passwd/passwords userB
(オプション「-c」なし)

・特定せずの複数ユーザ:
AuthType Digest
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user

これでパスワードファイルにある全てのユーザが
特定のフォルダへアクセスできる。
※ひとつのパスワードファイルのユーザ数は限界がある。
多くなると、レスポンスの速度が低下になってしまう。

◆制御設定の作成手順(二):
下記手順は、マシンの ホスト名やホストアドレスより制御。

・許可:Allow from address
・拒否:Deny from address

通常の使い方:
Order deny,allow (コマンドの実行順位設定)
Deny from all   
Allow from dev.example.com

これで、最後指定したホストだけのアクセスを許可する。

0 件のコメント: