Solaris のシステム管理 (基本編)

Java Web Console のリファレンス情報

このリファレンスの節では、次の内容について説明します。

Java Web Console のセキュリティーに関する注意事項

Java Web Console に含まれているアプリケーションを使用するときは、セキュリティーに関して注意しなければならないことがいくつかあります。

セキュリティーに関する注意事項は、次のとおりです。

Java Web Console へのアクセス

通常、有効なユーザーはすべてログインできるように、Web コンソールの起動アプリケーションに対するアクセス権は開放されています。ただし、Web コンソールの app.xml ファイル内の authTypes タグに権利を指定することで、コンソールへのアクセスを制限できます。このファイルは /usr/share/webconsole/webapps/console/WEB-INF ディレクトリにあります。詳細は、authTypes タグを使って承認を指定する」を参照してください。

非常に高いセキュリティーで保護されるようシステム構成が設定され、コンソールや登録済みアプリケーションの URL に対するリモートシステムからの接続が拒否される場合もあります。システムがリモートアクセスを防止するように設定されている場合は、https://hostname.domain:6789 としてコンソールにアクセスしようとすると、ブラウザに次のようなメッセージが表示されます。


Connect to hostname.domain:6789 failed (Connection refused)

システムで有効になっている SMF プロファイルがアクセスを制限している場合もあります。プロファイルの詳細は、「SMF プロファイル」を参照してください。リモートシステムからコンソールへのアクセスを許可する手順については、「Java Web Console へのリモートアクセスを使用可能にする」を参照してください。

Java Web Console のアプリケーションへのアクセス

Web コンソールに正常にログインしたあとで、そのコンソールに登録されているすべてのアプリケーションに自動的にアクセスできるようになるとは限りません。通常、アプリケーションはすべてのユーザーがコンソールの起動ページでそれを表示できるようにインストールされます。管理者は、アプリケーションに対するアクセスを付与および制限できます。

アプリケーションへのアクセスを制限するには、アプリケーションの app.xml ファイルに含まれている authTypes タグに権利を指定します。アプリケーションの app.xml ファイルは、installation-location/WEB-INF/ サブディレクトリにあります。通常、このディレクトリは /usr/share/webconsole/webapps/app-context-name /WEB-INF になります。

アプリケーションのファイルが通常の場所に存在しない場合にそれらの格納場所を見つけるには、次のコマンドを使用します。


wcadmin list --detail -a

このコマンドは配備済みのすべてのアプリケーションを一覧表示しますが、その際、各アプリケーションの配備時刻とベースディレクトリへのパスが表示されます。app.xml ファイルはそのベースディレクトリ内のサブディレクトリ WEB-INF に格納されています。

詳細は、authTypes タグを使って承認を指定する」を参照してください。

アプリケーションの特権

アプリケーションのリンクが Java Web Console の起動ページに表示される場合は、そのアプリケーションを実行できます。ただし、アプリケーションが認証ユーザーや役割の識別情報に基づいて承認チェックを別に行うことがあります。これらのチェックは、authTypes タグで制御されるのではなく、アプリケーション自体に明示的にコード化されます。たとえば、アプリケーションによって、読み取りアクセスはすべての認証ユーザーに付与されるが、更新アクセスは一部のユーザーまたは一部の役割に制限されるようにすることができます。

リモートシステムへのアプリケーションのアクセス

適切な資格をすべて持っているからといって、アプリケーションの操作の範囲内にあるすべてのシステムをそのアプリケーションで管理できるとは限りません。Oracle Java Web Console アプリケーションを使用して管理する各システムには、専用のセキュリティードメインがあります。Web コンソールシステムに対する読み取り/書き込み権を持っていても、それらの資格がほかのリモートシステムを管理するのに十分であるとは限りません。

一般に、リモートシステムへのアクセスは、セキュリティーが Web アプリケーションにどのように実装されるかによって変わります。通常、Web アプリケーションは、アプリケーションに代わって処理を実行する「エージェント」を呼び出します。 これらのアプリケーションはその Web コンソールの資格とアプリケーションがエージェントシステムで認識されるときに使われる資格に基づいて認証される必要があります。このエージェントによる認証がどのように行われるかによって、エージェントでもこの認証された識別情報に基づいて承認チェックが行われることがあります。

たとえば、リモート WBEM エージェントを使用する Web アプリケーションでは通常、最初に Java Web Console に対して認証されたユーザーや役割の識別情報を使って認証が行われます。エージェントシステムでこの認証に失敗すると、そのシステムへのアクセスは Web アプリケーションで拒否されます。エージェントシステムで認証に成功しても、エージェントがアクセス制御チェックを行なってアクセスを拒否した場合は、引き続きアクセスが拒否されます。ほとんどのアプリケーションは、ユーザーが Web コンソールでの認証に成功し、正しい役割を引き受けた場合はエージェントでの認証や承認のチェックが失敗することのないように作成されます。

コンソールで使用される内部パスワード

Solaris 10 11/06 リリース以降、Oracle Java Web Console は、パスワードで保護された内部ユーザー名を使用して、基になる Web サーバーに対する管理タスクを実行したり、キーストアファイルやトラストストアファイルを暗号化したりします。コンソールをインストールできるよう、パスワードは初期値に設定されます。セキュリティー侵入の可能性を低減するために、インストール後はパスワードを変更するようにしてください。詳細は、「Java Web Console の内部パスワードを変更する」を参照してください。

authTypes タグを使って承認を指定する

ほとんどのシステム管理用の Web アプリケーションでは authTypes タグの使用に管理者が介入する必要はありませんが、場合によってはシステム管理者がこのタグの値を変更する必要があります。authTypes タグには、ユーザーが Java Web Console でアプリケーションを表示するのに必要な承認レベルが記述された情報の組が含まれています。Web コンソールでは、アプリケーション app.xml ファイル内の承認要件に基づいて、特定のアプリケーションを表示する権限がユーザーにあるかどうかを判定します。各アプリケーションでは、ユーザーがアプリケーションを実行するための適切な承認を受ける必要があるかどうかを判定できます。この判定は、アプリケーションのインストールプロセスの一環として行われることがあります。あるいは、ユーザーが独自のセキュリティー要件に応じて情報を提供する必要がある場合もあります。アプリケーションの製品マニュアルには、特定のアクセス権を指定する必要があるかどうかを判断するのに必要な情報が記載されています。

authTypes タグの内部にいくつかの authType タグを入れ子にすることができます。

authTypes タグには、次の必要事項が指定された authType タグが少なくとも 1 つ含まれている必要があります。

次の例では、authType タグに属性 name が指定されています。必要となる name 属性は、承認サービスタイプの名前です。それぞれの承認タイプでは、classTypepermissionParam の各タグに異なる値が必要となる場合があります。


<authTypes>
	<authType name="SolarisRbac">
	    <classType>
	      com.sun.management.solaris.RbacPermission
	    </classType>
	    <permissionParam name="permission">
	      solaris.admin.serialmgr.read
	    </permissionParam>
	</authType>
</authTypes>

次の表に、authType タグの内部で入れ子にできるタグを示します。

表 3–1 入れ子の authType タグ

タグ 

属性 

説明 

classType

 

Permission サブクラス名。このタグは必須です。

permissionParam

name

classType で指定されたクラスのインスタンスを作成するのに必要となるパラメータ。

authTypes タグと入れ子の authType タグは、app.xml ファイルに必ず含まれる要素です。だれでも使用できるアプリケーションを登録する場合は、次の例に示すように、空の authType タグを指定します。


<authTypes>
        <authType name="">
            <classType></classType>
            <permissionParam name=""></permissionParam>
        </authType>
</authTypes>

Java Web Console へのリモートアクセスを使用可能にする

コンソールが実行されているシステムにログインして https://localhost:6789 の URL を使用する方法でしかコンソールに接続できない場合、そのシステムではリモートアクセスを防止する設定が使用されています。Solaris 10 11/06 リリース以降では、次の手順を使用して、ほかのアクセス制限はそのままで、コンソールへのリモートアクセスだけを使用可能にすることができます。

ProcedureJava Web Console へのリモートアクセスを使用可能にする方法

  1. コンソールが実行されているシステムで、スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. コンソールサーバーがネットワーク要求に応答できるようにするためのプロパティーを設定し、コンソールサーバーを再起動します。


    # svccfg -s svc:/system/webconsole setprop options/tcp_listen = true
    
    # smcwebserver restart
    

Java Web Console へのリモートアクセスを使用不可能にする

ユーザーがリモートシステムからコンソールに接続できないようにすることが可能です。Solaris 10 11/06 リリース以降では、次の手順を使用して、ほかのアクセス権はそのままで、コンソールへのリモートアクセスだけを使用不可能にすることができます。

ProcedureJava Web Console へのリモートアクセスを使用不可能にする方法

  1. コンソールが実行されているシステムで、スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. コンソールサーバーがネットワーク要求に応答しないようにするためのプロパティーを設定し、コンソールサーバーを再起動します。


    # svccfg -s svc:/system/webconsole setprop options/tcp_listen = false
    
    # smcwebserver restart
    

    再起動後、コンソールは、コンソールサーバープロセスと同じシステム上のブラウザにしか応答しなくなります。ブラウザでプロキシを使用することはできません。使用できるのは直接接続のみです。また、https://localhost:6789/ URL を使ってコンソールにアクセスすることもできます。

Java Web Console の内部パスワードを変更する

Solaris 10 11/06 リリース以降、コンソールではいくつかの内部ユーザー名とパスワードが使用されます。コンソールの内部ユーザー名とパスワードは、コンソールのフレームワークでのみ使用され、ユーザーやシステム管理者が直接使用することはありません。ただし、パスワードが知られると、悪意のあるユーザーがコンソールアプリケーションに干渉する可能性があります。そのようなセキュリティー侵入の可能性を低減するために、パスワードを変更するようにしてください。新しいパスワードはソフトウェアの内部で使用されるため、ユーザーがパスワードを覚える必要はありません。

Procedureコンソールの内部パスワードを変更する方法

パスワードは、管理パスワード、キーストアパスワード、およびトラストストアパスワードと呼ばれます。デフォルトの初期値を知らなくてもパスワードを変更することができます。この手順では、3 つのパスワードすべてを個別のコマンドで変更する方法について説明します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 管理パスワードを変更します。


    # wcadmin password -a
    

    新しいパスワードを 2 回入力するよう求められます。パスワードは 8 文字から 32 文字で指定してください。

  3. キーストアパスワードを変更します。


    # wcadmin password -k
    

    新しいパスワードを 2 回入力するよう求められます。パスワードは 8 文字から 32 文字で指定してください。

  4. トラストストアパスワードを変更します。


    # wcadmin password -t
    

    新しいパスワードを 2 回入力するよう求められます。パスワードは 8 文字から 32 文字で指定してください。