Javaに関する様々な情報をご紹介します。

9アクセス制限

Javaに関する様々な情報をご紹介します。

アクセス制限

ここでは、Tomcatのアクセス制限設定について解説します。

実行環境
  • ・WindowsXP Home Edition
  • ・Tomcat 5.0.18
  • ・J2SDK 1.4.2_03

設定方法

Tomcatでは、<Valve>タグを使用し、アクセスしてくる端末をIPアドレス、ホスト名により制限することができます。<Valve>タグは<Engine>タグ、<Host>タグ、<Context>タグのサブ要素として設定できます。<Engine>タグのサブ要素として設定した場合はそのTomcatエンジンすべてに対するアクセスを制限します。<Host>タグのサブ要素として設定した場合は設定した仮想ホストに対するアクセスを制限します。<Context>タグのサブ要素として設定した場合は、設定したコンテキストに対するアクセスを制限します。

ホスト名によりアクセスを制限する場合はアクセスを制限するサーバがDNSの逆引き名前解決を行える必要があります。

属性 内容 デフォルト 必須
class
Name
アクセスフィルタを行うJavaクラスを指定。IPアドレスによりフィルタする場合はorg.apache.catalina.valves. RemoteAddrValveでなければならない。 ホスト名によりフィルタする場合はorg.apache.catalina.valves. RemoteHostValve.でなければならない。 -
allow アクセスを許可するIPアドレス、ホスト名を指定。 allowが設定されている場合は、設定されているもののみアクセスを許可する。 allowが設定されていない場合は、denyに設定されていないもののみアクセスを許可する。
IPアドレス、ホスト名は正規表現で指定できる。複数指定する場合は|(パイプ)を使用する(Tomcat6以前は,(カンマ)を使用していた)。(※1)
- -
deny アクセスを拒否するIPアドレス、ホスト名を指定。 denyが設定されている場合は、設定されているもののみアクセスを拒否する。 denyが設定されていない場合は、アクセスはallowの設定に依存する。
IPアドレス、ホスト名は正規表現で指定できる。複数指定する場合は|(パイプ)を使用する(Tomcat6以前は,(カンマ)を使用していた)。(※1)
- -

(※1) 指定は正規表現で行うことに注意。「192.10.10.0~192.10.10.255」を指定する場合は、「192.10.10.*」ではなく、「^192\.10\.10\.\d{1,3}$」等とする必要がある。

設定例

アクセス制限におけるタグの設定例を記載します。

<Host name="localhost"
    debug="0" appBase="webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">

    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
            deny="^192\.0\.0\.\d{1,3}$|^127\.0\.0\.\d{1,3}$" />

----------------------
----------------------
  1. localhostと指定された仮想ホストに対するすべてのアクセスを制限するため、server.xmlファイルの<Host>タグの配下に<Valve>タグを設定します。
  2. Tomcatを起動し、http://localhost:8080/にアクセスします。「127.0.0.0~127.0.0.255」のアドレスは拒否されているため、ローカルホスト(127.0.0.1)からのアクセスは拒否されます。
アクセス制限

9アクセス制限