管理ツールの利用制限
管理ツールの利用制限
次に、JBossを使用するために一般的に行っておく設定事項について説明します。
JBossをセットアップした直後の状態では、JBossを管理するツールが誰でも利用できる状態になっています。管理ツールは 「http://localhost:8080/」からアクセスすることができます(ポート番号を80に変えた場合はhttp://localhost /でOKです)。先ほど動作確認をしたのと同じ画面が表示されるはずです。

上記画面のうち、「JBoss Management」と書かれた部分(赤い四角で囲まれている部分)がJBossの管理を行うツールです。リンクをクリックして表示される内容を確認してみてください(表示された内容がよくわからなくても今は大丈夫です)。
これらのツールを経由すれば、設定情報の参照、変更が行えたり、JBossをシャットダウンさせたりすることができます。そして、現在の設定のままでは誰でもこのツールを利用することができます。そこで、セキュリティ上の理由からこれらのツールに利用制限をかけて、ユーザ名+パスワードによる認証が 必要となるように設定します。
上記3種類の設定ツールに対する設定方法は基本的に同じなので、ここでは「JMX Console」を例に説明します。
これら管理ツールは通常のWebアプリケーションとして実装されています。そのため、ベーシック認証といわれる方法を用いて簡易的なセキュリティを確保することができます。作業手順は以下の通りです。
- 使用するロールを指定する
- 適用するセキュリティドメインを指定する
- セキュリティドメインを定義する
- ロール、ユーザ、パスワードを定義する
使用するロールを指定する
ロールとは、ユーザを束ねたもので、例えばWindowsにおけるAdministratorsグループやUsersグループに相当するものです。Linuxなどのグループとも同様のものです。
JMXコンソール用のロールは既に定義されていますが、コメントアウトされていますので、コメントアウトをはずして設定を有効にします。テキストエ ディタで「$JBOSS_HOME\server\default\deploy\jmx-console.war\WEB-INF\web.xml」を 開いてください。
61行目から79行目までのコメントアウトされている部分のうち、65行目から78行目の「〜」部分のコメントアウトをはずして設定を有効にしてください。この結果、JMXコンソールを利用できるのは「JBossAdmin」というロールに属しているユーザに限定されます。
セキュリティドメインを指定する
セキュリティドメインとは、セキュリティ設定の集まりで、それぞれに名前を付けることができます。複数のセキュリティの設定をあらかじめ用意しておき、適用するセキュリティドメイン名を切り替えることで、セキュリティの強度を調整することができます。
JXMコンソールの場合は、先ほどの場合と同様、既に利用するセキュリティドメインの設定が記述されていますが、コメントアウトされています。ファイル「$JBOSS_HOME\server\default\deploy\jmx-console.war\WEB-INF\jboss- web.xml」を開いて、コメントアウトを取り除いて、5行目にある「
これにより「jmx-console」という名前のセキュリティドメインがJMXコンソールアプリケーションに適用されるようになります。
セキュリティドメインを定義する
先ほど「jmx-console」という名前のセキュリティドメインを利用するように設定しました。JBossは初期設定で、jmx-consoleというセキュリティドメインが既に定義されていますので、特別な作業はいりません。
設定する場所は「$JBOSS_HOME\server\default\conf\login-config.xml」の107行目 「
ロール、ユーザ、パスワードを設定する
「セキュリティドメインを定義する」で参照した「login- config.xml」の111、112行目の定義にあったとおり、ロール、ユーザ、パスワードはディレクトリ「$JBOSS_HOME\server \default\deploy\jmx-console.war\WEB-INF\classes」内の「jmx-console- roles.properties」「jmx-console-users.properties」に定義します。
まずは、ロールの定義から確認しますので「jmx-console-roles.properties」をテキストエディタで開いてください。次のように定義されています。
admin=JBossAdmin,HttpInvoker
これは、adminというユーザは「JBossAdmin」と「HttpInvoker」というロールに所属していることを意味します。今回はこのままで問題ありません。次に、ユーザ名とパスワードの定義を確認しま す。「jmx-console-users.properties」をテキストエディタで開いてください。以下のように定義されています。
admin=admin
これは、ユーザ「admin」(前半部分)のパスワードが「admin」(後半)であると定義しています。後半のadmin部分を適切なパスワード(任意の文字列)へ変更してください。
以上の設定が完了したら、JBossを再起動し、http://localhost:8080/jmx-console/へアクセスしてみてください。Internet Explorerの場合は以下のようなダイアログが表示されます。

ユーザ名に「admin」、パスワードに先ほど設定したパスワードを入力して、「OK」をクリックしてください。
以上で、JMXコンソールの簡易セキュリティ設定は完了です。
「Tomcat Status」「JBoss Web Console」の手順についても基本的には同じです。JBoss Web CosoleはJMXコンソールと同様、設定は既に記述されていますが、コメントアウトされている状態になっています。Tomcat Statusは設定自体を記述する必要がありますが、JMX ConsoleやJBoss Web Consoleの設定内容を参考に(コピー&ペーストして修正)すれば正しく設定できると思います。設定ファイルの場所等を以下にあげておきます。
<Tomcat Status>
| 設定名 | ファイルの場所 |
| ロールの指定 | $JBOSS_HOME\server\default\deploy\jbossweb-tomcat50.sar \ROOT.war\WEB-INF\web.xml |
| タグ |
|
| セキュリティドメインの指定 | $JBOSS_HOME\server\default\deploy\jbossweb-tomcat50.sar \ROOT.war\WEB-INF\jboss-web.xml |
| ファイルは存在しないのでコピーして作成 | |
| セキュリティドメインの定義 | $JBOSS_HOME\\server\default\conf\login-config.xml |
| JMXコンソールの設定を元に定義 | |
| ロール、ユーザ、パスワードの定義 | $JBOSS_HOME\server\default\deploy\jbossweb-tomcat50.sar \ROOT.war\WEB-INF\classes |
| ディレクトリを作成し、ここに上記「login-config.xml」で定義した2つのプロパティファイルを用意 |
<JBoss Web Console>
| 設定名 | ファイルの場所 |
| ロールの指定 | $JBOSS_HOME\server\default\deploy\management \web-console.war\WEB-INF\web.xml |
| タグ |
|
| セキュリティドメインの指定 | $JBOSS_HOME\server\default\deploy\management \web-console.war\WEB-INF\web.xml |
| タグ |
|
| セキュリティドメインの定義 | $JBOSS_HOME\server\default\conf\login-config.xml |
| 既に定義されているので何もしなくて良い | |
| ロール、ユーザ、パスワードの定義 | $JBOSS_HOME\server\default\deploy\management \web-console.war\WEB-INF\classes |
| 上記ディレクトリのweb-console-roles.properties、web-console-users.propertiesファイル |
なお、本番稼働させるときに上記管理機能が不要である場合は、「〜.war」ディ レクトリごと削除してしまってもかまいません。その方がセキュリティは向上します(ただし、管理上不便になります)。また、ベーシック認証だけでは不安だと思われる場合はSSLを使用するなど、別途セキュリティ対策を行ってください。
以上でJBossを使用するための基本的な準備が整いました。次回はJBossのアーキテクチャ(内部構造)について説明します。