TOP設計・移行・活用> 管理ツールの利用制限
オープンソースJ2EE APサーバ JBossの可能性
オープンソースJ2EE APサーバ JBossの可能性

第2回:JBossのインストールと初期設定
著者:ダイテックC&D  高橋 康弘   2005/5/6
前のページ  1  2  3  4
管理ツールの利用制限

   次に、JBossを使用するために一般的に行っておく設定事項について説明します。

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

JBossの管理ツールの画面
図5:JBossの管理ツールの画面


   上記画面のうち、「JBoss Management」と書かれた部分(赤い四角で囲まれている部分)がJBossの管理を行うツールです。リンクをクリックして表示される内容を確認してみてください(表示された内容がよくわからなくても今は大丈夫です)。

   これらのツールを経由すれば、設定情報の参照、変更が行えたり、JBossをシャットダウンさせたりすることができます。そして、現在の設定のままでは誰でもこのツールを利用することができます。そこで、セキュリティ上の理由からこれらのツールに利用制限をかけて、ユーザ名+パスワードによる認証が必要となるように設定します。

   上記3種類の設定ツールに対する設定方法は基本的に同じなので、ここでは「JMX Console」を例に説明します。

   これら管理ツールは通常のWebアプリケーションとして実装されています。そのため、ベーシック認証といわれる方法を用いて簡易的なセキュリティを確保することができます。作業手順は以下の通りです。

  1. 使用するロールを指定する
  2. 適用するセキュリティドメインを指定する
  3. セキュリティドメインを定義する
  4. ロール、ユーザ、パスワードを定義する
使用するロールを指定する

   ロールとは、ユーザを束ねたもので、例えばWindowsにおけるAdministratorsグループやUsersグループに相当するものです。Linuxなどのグループとも同様のものです。

   JMXコンソール用のロールは既に定義されていますが、コメントアウトされていますので、コメントアウトをはずして設定を有効にします。テキストエディタで「$JBOSS_HOME\server\default\deploy\jmx-console.war\WEB-INF\web.xml」を開いてください。

   61行目から79行目までのコメントアウトされている部分のうち、65行目から78行目の「< security-constraint> 〜 < security-constraint>」部分のコメントアウトをはずして設定を有効にしてください。この結果、JMXコンソールを利用できるのは「JBossAdmin」というロールに属しているユーザに限定されます。


セキュリティドメインを指定する

   セキュリティドメインとは、セキュリティ設定の集まりで、それぞれに名前を付けることができます。複数のセキュリティの設定をあらかじめ用意しておき、適用するセキュリティドメイン名を切り替えることで、セキュリティの強度を調整することができます。

   JXMコンソールの場合は、先ほどの場合と同様、既に利用するセキュリティドメインの設定が記述されていますが、コメントアウトされています。ファイル「$JBOSS_HOME\server\default\deploy\jmx-console.war\WEB-INF\jboss-web.xml」を開いて、コメントアウトを取り除いて、5行目にある「<security-domain>java:/jaas/jmx-console</security-domain>」の設定を有効にします。

   これにより「jmx-console」という名前のセキュリティドメインがJMXコンソールアプリケーションに適用されるようになります。


セキュリティドメインを定義する

   先ほど「jmx-console」という名前のセキュリティドメインを利用するように設定しました。JBossは初期設定で、jmx-consoleというセキュリティドメインが既に定義されていますので、特別な作業はいりません。

   設定する場所は「$JBOSS_HOME\server\default\conf\login-config.xml」の107行目「<application-policy name = "jmx-console">」からになります。テキストエディタなどでファイルの中を確認しておいてください。


ロール、ユーザ、パスワードを設定する

   「セキュリティドメインを定義する」で参照した「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の場合は以下のようなダイアログが表示されます。

ベーシック認証のダイアログボックス
図6:ベーシック認証のダイアログボックス



   ユーザ名に「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
タグ<security-constraint>、<login-config>、<security-role>をコピーして追加
セキュリティドメインの指定 $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
タグ<security-constraint>部分のコメントアウトをはずして設定を有効にする
セキュリティドメインの指定 $JBOSS_HOME\server\default\deploy\management \web-console.war\WEB-INF\web.xml
タグ<security-domain >部分のコメントアウトをはずして設定を有効にする
セキュリティドメインの定義 $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のアーキテクチャ(内部構造)について説明します。

前のページ  1  2  3  4


株式会社ダイテックC&D
著者プロフィール
株式会社ダイテックC&D  高橋 康弘
入社以来Windowsを中心としたアプリケーション開発に従事。2000年頃からJavaを扱うようになり、2年ほど前からオープンソースを利用したシステム開発を開始。最近はJBoss+オープンソースの組み合わせでWEBアプリケーション開発に携わることが多い。
資格:JBoss認定コンサルタント


INDEX
第2回:JBossのインストールと初期設定
  ダウンロードとインストール
  JBossの起動
  ディレクトリ構造と設定ファイル
管理ツールの利用制限