VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

Apacheでディレクトリへのアクセスを制限する設定方法

Directroyディレクティブで各ディレクトリに対するアクセスを制限するようにします。
 
下記資料を参考にしました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』

※目次をクリックすると目次の下部にコンテンツが表示されます。

ルートディレクトリに対するアクセスを制限
ルートディレクトリは、最も制限して設定すべきディレクトリです。
設定例を示します。
<Directory / >
  Options None
  AllowOverride None
  Order allow,deny
</Directory>
Webディレクトリ((/var/www/html)に対するアクセスを制限
デフォルトは下記のようになっています。
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

・Optionsディレクティブで”Indexes”と”FollowSymLinks”が設定されていますが、どちらも推奨できません。
 
○Indexes
特にインデックスファイルを明示して指定していなくても自動でディレクトリ内の一覧を返してしまいます。
 
○FollowSymLinks
Webサーバがこのディレクトリ内でシンボリックリンクをたどれるようにします。
 
・Webディレクトリ((/var/www/html)階層は、Webを介して閲覧されないようにすべきです。
 
シンボリックリンクは、”SymLinksIfOwnerMatch”を指定して、シンボリック先のファイルまたはディレクトリが、 シンボリックリンクの所有ユーザIDと同じ場合にのみシンボリックリンクをたどれるようにします。

<Directory "/var/www/html">
# ...
  Options SymLinksIfOwnerMatch
# ...
</Directory>
その他のクリティカルなディレクトリの設定
・上記と同様にディレクトリに対するアクセスを出来るだけ制限して設定します。
 
・Optionsディレクティブは必要な項目のみ指定し、AllowOverrideは本当に必要なときのみ設定します。
モバイルバージョンを終了