かべちゃんのウェブサイト
モジュール
アクセス制御

アクセス制御モジュール

本モジュールは、ホスト名あるいはIPアドレスに応じた、 ウェブサーバへのアクセス制御機能を提供します。 以下、利用方法について説明します。

アクセス制御を行うには、 waccess.conf に規則を記述します。 waccess.conf ファイルは、設定ファイル(wyvern.conf)の <server-root> で指定したパス下の conf ディレクトリに置きます。 本ファイルが無い場合は、どこからでもアクセス可能となります。

パス例:
/usr/local/wyvern/conf/waccess.conf

設定ファイル記述例:

  <wyvern-access>
    <host name="www.example.com" default="allow">
      <limit directory="/FreeBSD">
        <deny>
          <address>192.168.1.2</address>
          <domain>.example.co.jp</domain>
        </deny>
      </limit>
    </host>
    <host name="*" default="deny">
      <limit directory="/">
        <allow>
          <address>192.168.1.0/24</address>
          <address>172.16.0.0/12</address>
          <domain>.example.co.jp</domain>
        </allow>
      </limit>
    </host>
  </wyvern-access>

ファイルの内容は、上記例のような XML形式のテキストファイルです。 アクセス制御は、<host> で設定した <server-name> 毎にディレクトリ単位で設定できます。 アクセス制御は、<host> と <limit> で適応範囲を決定し、 <domain>(ドメイン名)/<address>(IPアドレス)と <allow>(許可)/<deny>(拒否)の要素で制限します。 <host>の属性 default は、 アクセス制御ファイルに既述されていないホストからのアクセスがあった場合、 デフォルトでどのように動作するか(許可/拒否)を設定します。

また、アクセス制御のマッチング規則は、次のとおりです。 <address>および<domain>において、完全一致する場合は、 その値がそのまま適用されます。 それ以外では、<address>では、 CIDR 形式によるビットマスクによるマッチングを、 <domain>では後方一致を適用します。 すなわち、 先の例では、"172.16.1.10"からのアクセスは許可され(CIDR)、 "evil.hotmail.com"からのアクセスは拒否されます(後方一致)。

設定ファイルへの記述例:

  <wyvern>
    ...
    <module>
      ...
      <path>/usr/local/wyvern/modules/mod_access.so</path>
      ...
    </module>
    ...
  </wyvern>