Apacheでアクセス制御とセキュリティ
0.改訂履歴
- 1997.11.20 初版
1.はじめに
このドキュメントでは,Apache1.1.1を利用して,アクセス制御とセキュリティ設定を行なう方法を示す.
2.Apacheで実現できるアクセス制御とセキュリティ
WWWサーバであるApacheでは,次の2つの方法によって使用できるユーザを限定することが出来る.
- クライアントのIPアドレス,およびドメイン名
- この文書では以降は“ドメイン名での制御”と記述する.
- ユーザIDおよびパスワードによるユーザ承認
このドキュメントでは,この2つの設定方法を説明する.
3.前提知識
この章では,アクセス制御を行なうための設定の前に,基本的な前提知識の説明を行なう.
3.1.アクセス制御ファイル(ACF:Access Controle File)
ユーザ承認あるいはドメイン名での承認は,サーバ全体あるいはディレクトリ毎に制御することが可能である.
- サーバ全体,あるいはディレクトリ全体のアクセス制御はグローバルアクセス制御ファイルにて設定する.
- 個別のディレクトリ毎で設定する場合には,デフォルトでは.htaccessファイルにて設定する.
現在のところ,ファイル毎のアクセス制御は不可能なので,これを実現するにはディレクトリの下にファイルを配置する必要がある.
3.2.アクセス制御用ディレクティブ
ACFでは,実際には次の例のような物を設定する. これを“アクセス制御用ディレクティブ”と呼ぶ.
3.2.1.全体を設定するアクセス制御用ディレクティブ
そのWebサーバ全体,あるいはあるディレクトリ以下全部のアクセス制御を行なう場合には,次のようなDirectoryディレクティブと呼ばれる設定を行なう.
<Directory /usr/local/etc/httpd/htdocs/subdirecty> <Limit GET POST> order, deny from, allow from, require <Limit> </Directory> |
Directoryディレクティブの後に引き続くファイルパスによって,アクセス制御を行なうことが出来る. たとえば,このサンプルの場合,ディレクトリ"/usr/local/etc/httpd/htdocs/subdirecty"に対してアクセス制御を行なおうとしていることが判る.
そのDirectoryディレクティブの中に,Limitディレクティブを入れ子にしてアクセス制御を設定する.
3.2.2.ディレクトリ毎のアクセス制御用ディレクティブ
ディレクトリ毎のアクセス制御を行なうには,前出のDirectoryディレクティブを必要とせず,Limitディレクティブを使用する.
<Limit GET> order, deny from, allow from, require </Limit> |
通常は,これが記述されたファイルを.htaccessして対象となるディレクトリに保存することでユーザ承認が可能となる.