3.1 クライアントのアクセス制御 |
3.1.1 allow、deny、orderディレクティブ
はじめに、各ディレクティブについて解説します。order <allow,deny |deny,allow | mutual-failure> |
allow from <client1> [<clinet2> <clinet3> ...] |
値 | 例 |
クライアント | earth.solarsystem.net |
ドメイン | solarsystem.net ;.solarsystem.net |
IPアドレス | 172.16.30.1 ; 172.16 |
ネットワーク | 172.16.30.0/255.255.255.0 ; 172.16.30.0/24 |
全て | all |
deny from <clinet1> [<client2> <client3> ...] |
3.1.2 httpd.confファイルの設定
次にhttpd.confファイルの設定方法を説明します。
httpd.confファイルを使ったクライアントのアクセス制御の書式は次の通りです。
1 <Directory /DIR> 2 order <deny,allow | allow,deny> 3 allow from <client1> [<client2> <client3> ...] 4 deny from <clinet4> [<client5> <client6> ...] 5 </Directory> |
3.1.3 設定例
ディレクトリ"/var/www/html/manual"について
<Directory /var/www/html/manual> order allow,deny allow from 172.16.30.10 solarsystem.net deny from all </Directory> |
ディレクトリ"/var/www/html/doc"について
<Directory /var/www/html/doc> order deny,allow deny from nemesys.solarsystem.net 172.16.30.0/24 allow from all </Directory> |
公開するディレクトリ以下全てのサブディレクトリについて
<Directory /> order mutual-failure deny from nemesys.solarsystem.net 172.16.30.0/24 allow from 172.16.30.10 solarsystem.net </Directory> |
3.2 ディレクトリ内容の表示を禁止 |
URLの指定でファイル名を省略すると、ディレクトリを表示するサイトがあります。 そのようなサイトでは、例えば次のURL指定をした場合
http://localserver/test/
ディレクトリの内容が表示されると、外部に表示するつもりのないファイルが表示されてしまう、サーバのディレクトリ構造が明らかになってしまうなど、セキュリティ上問題があります。
ディレクトリ内容の表示を禁止するため、/etc/httpd/conf/httpd.confファイルのDirectoryディレクティブから"Indexes"オプションを削除しておきましょう。
3.3 シンボリックリンクを辿れないようにする |
運用上、シンボリックリンクを辿る必要がある場合には"FollowSymLinks"オプションでなく、"SymLinkslfOwnerMatch"オプションを使用するとよいでしょう。"SymLinkslfOwnerMatch"オプションを使うと、シンボリックリンクとリンク先ファイルの所有者が同一の場合のみ、リンクを辿れるようになります。
3.4 CGIの実行を禁止する |
CGIを利用可能としたままWEBサイト運用を行うと、CGIプログラムのセキュリティホールを突いて侵入される可能性があります。CGIが不要ならば"ExecCGI"オプションは削除しておきましょう。
3.5 一般ユーザがアクセス制御を行う |
".htaccess"ファイルによるアクセス制御は、"httpd.conf"ファイルによるアクセス制御と異なり、httpdサーバの再起動が不要です。よって、一般ユーザが自由に自身のWEB用リソースに対して、アクセス制御を行うことが可能です。
".htaccess"ファイルに記述されたアクセス制御の内容は、".htaccess"ファイルが置かれたディレクトリ、およびそのディレクトリ以下すべてのサブディレクトリに対して有効となります。
".htaccess"ファイルで設定できるディレクティブは次の通りです。
種別 | ディレクティブ |
コンテナ | files,limit |
アクセス | allow, deny, order |
認証 | AuthGroupFile, AuthName, AuthType, AuthUserFile, IdentityCheck, require |
その他 | Action, AccessFileName, AddDescription, AddEncoding, AddHandler, AddIcon, AddIconByEncoding, AddIconByType, AddLanguage, AddType, DefaultIcon, DefaultType, ErrorDocument, FancyIndexing, ForceType, HeaderName, IfModule, ImapBase, ImapDefault, ImapMenu,IndexIgnore, IndexOptions, Options, ReadmeName, Redirect, RedirectTemp, RedirectPermanent, Script, SetHandler |
一例として、ユーザ"user01"が"domain.net"というドメインからのアクセスを拒否するための".htaccess"ファイルを示します。
ユーザ"user01"は、自身のWEB公開用ディレクトリ"/home/user01/public_html/"に、以下の".htaccess"ファイルを置くことでアクセス制御を行うことが出来ます。
order allow,deny allow from all deny from .domain.net |
home |index |previous |next |contents