エンタープライズ:特集 2002/12/09 18:00:00 更新

Tomcatで知るJSP/サーブレットの基礎
第3回:Tomcatで動かすWebアプリケーションの仕組み (6/6)

GUIによる設定が可能なAdministration Tool

 「Administration Tool」は、TomcatのWebサイトからダウンロード可能だ。RPMパッケージとしてもインストール可能であり、2002年12月現在では、次のバージョンが公開されている

・Tomcat 4.1.12 Light Edition用
tomcat4-admin-webapps-4.1.12-le.2jpp.noarch.rpm

・Tomcat 4.1.12  FullEdition用
tomcat4-admin-webapps-4.1.12-full.2jpp.noarch.rpm

 ここでは、Full Edition用の「tomcat4-admin-webapps-4.1.12-full.2jpp.noarch.rpm」をダウンロードしよう。ダウンロード後は、rpmコマンドで次のようにインストールする。

# rpm -ivh tomcat4-admin-webapps-4.1.12-full.2jpp.noarch.rpm

ユーザーとパスワードの設定

 「Administration Tool」を利用するためには、「/etc/tomcat4/」ディレクトリ(/var/tomcat4/confでも同じ)下にある「tomcat-users.xml」ファイルを編集する必要がある。Administration Toolを利用できるユーザーを設定しなければならない。

TIPS
「tomcat-users.xml」ファイルは、ユーザー(より正確にはユーザーの役割を示すロール(Role))を定義するためのファイルであり、標準のserver.xmlファイルから参照されている。

 標準のtomcat-users.xmlファイルは、次のように記述されている。

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="role1"/>
<role rolename="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>

 上記のリスト内にuserエレメントを追記し、adminロール(roles="admin")として追加する。例えば、ユーザー名「admin」、パスワード「mypassword」で利用する場合には、次のように追加すればよい。

TIPS
ここではユーザー名としてadmin、パスワードとしてmypasswordを設定したが、adminロール(roles="admin")として定義すれば、どのようなユーザー名、パスワードでも構わない。

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="role1"/>
<role rolename="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="admin" password="mypassword" roles="admin"/>
</tomcat-users>

 設定を変更した後に有効にするためには、Tomcatデーモンを再起動しよう。

# /etc/rc.d/init.d/tomcat4 restart

Administration Toolで設定が可能なもの

 Administration Toolをインストールすると、次のURLでアクセスが可能だ。

http://[サーバ名またはIPアドレス]:8080/admin/

 実際にアクセスすると、画面5に示すようにユーザー名とパスワードが問われる。そこで、先にtomcat-users.xmlファイルに追加しておいたユーザー名とパスワードでログインすればよい。すると、画像6に示すAdministration Toolのメニューが表示される。

fig9
画像5■Administration Toolへのログイン

fig10
画像6■Administration Toolのメニュー

 Administration Toolでは、/etc/tomcat4(/var/tomcat4/conf)ディレクトリ下の「service.xml」ファイルと「tomcat-users.xml」ファイルの編集ができる。

 ここまで説明した過程では、Webアプリケーションのためのコンテキストを設定するために「service.xml」ファイルを直接書き換えていた。しかし、Administration Toolを使えば、GUI画面でHost下に新しいコンテキスト(Context)を作成することが可能だ。直接「service.xml」ファイルを編集する手間が無い。

 ただし、Administration Toolは、実行環境自身の設定を書き換えできないなど、幾つかの制限がある。また、「service.xml」ファイルすべての内容編集ができるわけでもない。よって、Administration Toolがあっても幾つかの項目は、依然として「service.xml」ファイルを直接書き換える必要性があるのも事実だ。

「Administration Tool」の利用をインターネット側から制限する

 Administration Toolを利用すると、エディタで「service.xml」ファイルを書き換える必要なくTomcatの設定変更が可能だ。この点では便利だが、「tomcat-users.xml」ファイルで指定したユーザー名とパスワードさえ入手できれば、どこからでもAdministration Toolを利用できてしまう。このため、セキュリティ上からの問題がある。

 このため、例えばサーバ自身(127.0.0.1)からのみアクセス許可させたい場合には「/var/tomcat4/webapps/」ディレクトリ下の「admin.xml」ファイルを書き換えればよい。

 admin.xmlファイルには、次のようにサーバ自身(127.0.0.1)からしかアクセスできないようにある設定がコメント「<!--」と「-->」で囲まれて用意されている。この設定が無効化されていることで、どこからのアクセスも有効になっている。

<!-- Uncomment this Valve to limit access to the Admin app to localhost
for obvious security reasons. Allow may be a comma-separated list of
hosts (or even regular expressions).
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>
-->

 上記の「<!--」と「-->」を無くすことで、前述のようにサーバ自身からのアクセスだけに制限ができる。

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>

 または、Administration Tool上から、「Context(/admin)」を選択し、「新しいバルブの作成」を選び、「RemoteAddrValue」というバルブを追加する方法でもよい(画像7)。

TIPS
画像7など、Administration Toolからの設定は「保存」ボタンを押し、右上にある「変更を反映」ボタンを押さないとTomcatに反映されない。

fig11
画像7■RemoteAddrValueの追加

 画像7のようにしてRemoteAddrValueを追加した場合、「admin.xml」ファイルではなく「server.xml」ファイルに設定が追加される。必要であれば、特定のアプリケーションパスを、特定のホストからしか参照できないように設定することも可能だ。

前のページ | 1 2 3 4 5 6 |      

[大澤文孝,ITmedia]