Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > オープンソース > Tomcat −7.アクセス制限
更新日:2012/2/26
Tomcat−7.アクセス制限
ここでは、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の逆引き名前解決を行える必要があります。
属性
内容
デフォルト
必須
className
アクセスフィルタを行う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}$」等とする必要がある。
設定例
アクセス制限における<Valve>タグの設定例を記載します。
<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. 「192.0.0.0〜192.0.0.255」のアドレスと「127.0.0.0〜127.0.0.255」のアドレスからのアクセスをdeny属性を使用し拒否します。
Tomcatを起動し、http://localhost:8080/にアクセスします。「127.0.0.0〜127.0.0.255」のアドレスは拒否されているため、ローカルホスト(127.0.0.1)からのアクセスは拒否されます。
アクセス制限



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道