エンタープライズ:特集 | 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用 ・Tomcat 4.1.12 FullEdition用 |
ここでは、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」ファイルに設定が追加される。必要であれば、特定のアプリケーションパスを、特定のホストからしか参照できないように設定することも可能だ。
[大澤文孝,ITmedia]