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

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

・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のメニューが表示される。


画像5■Administration Toolへのログイン
画像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に反映されない。


画像7■RemoteAddrValueの追加

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