N1 Grid Service Provisioning System 5.0 インストールガイド

第 8 章 Java 仮想マシンのセキュリティポリシーの構成

この章では、N1 Grid Service Provisioning System 5.0 アプリケーションが特定の IP アドレスおよびポート範囲との接続しか確立しないようにするセキュリティポリシーの構成方法を示します。

JVM セキュリティポリシーの構成

各 N1 Grid Service Provisioning System 5.0 アプリケーションの lib/security/rox.policy には、Java 仮想マシン (JVM) セキュリティポリシーファイルが存在します。このファイルには、アプリケーションに割り当てられるアクセス許可が指定されています。このポリシーファイルのインストール時点では、アプリケーションはどのホストとも接続を確立できます。SSH 接続で CLI クライアントを使用する場合は、ポリシーファイルを変更して接続をローカルホストだけに制限してください。

これらのアクセス許可は、lib/security/rox.policy ファイルの次の行で指定します。


permission java.net.SocketPermission "*", "connect,accept,listen";

アプリケーションのネットワークアクセス機能を制限する場合は、この行を削除し、これよりも制限の厳しいアクセス許可を追加します。

SocketPermission のホストパラメータは次のようになります。


host = hostname|IPaddress :portrange

hostname にはマシンのホスト名を指定し、IPaddress にはマシンの IP アドレスを指定します。portrange は次のとおりです。


portrange = portnumber | -portnumber | portnumber-[portnumber]  

セキュリティポリシーファイルの構文の詳細については、http://java.sun.com/j2se/1.4.2/docs/guide/security/PolicyFiles.html を参照し、「Policy File Syntax」リンクをクリックしてください。

ProcedureMaster Server の JVM ポリシーを構成する

手順
  1. lib/security/rox.policy ファイルを編集します。

  2. すべてのホストとの接続をアプリケーションに許可する行を削除します。

  3. 次の行を追加し、アプリケーションに選択的なアクセス許可を付与します。


    permission java.net.SocketPermission "localhost:localport", "accept"; 
    permission java.net.SocketPermission "localhost:dbport", "connect"; 
    permission java.net.SocketPermission "<domain>:httpport", "connect"; 
    permission java.net.SocketPermission "ipAddress1:port1", "connect"; 
    permission java.net.SocketPermission "ipAddress2:port2", "connect"; ...  
    • localport は、CLI クライアントが Master Server との接続に使用するポートです。最初の行は、Master Server がローカル接続または ssh-proxy を経由した接続だけを CLI クライアントに許可するように制限しています。

    • dbport は、 ssh-proxy データベースサーバーのポート番号です。

    • domain は、ブラウザインタフェースに接続を許可されるホストのドメインです。httpport は、ブラウザインタフェースのポート番号です。

    • ipAddress1:port1ipAddress2:port2 は、Master Server に直接接続する Master Server または Local Distributor の IP アドレスとポート番号です。

ProcedureRemote Agent の JVM ポリシーを構成する

手順
  1. lib/security/rox.policy ファイルを編集します。

  2. すべてのホストとの接続をアプリケーションに許可する行を削除します。

  3. 次の行を追加し、アプリケーションにアクセス許可を付与します。


    permission java.net.SocketPermission "ipAddress", "accept";

    ipAddress は、この Master Server が接続する Local Distributor または Master Server の IP アドレスです。

ホストに接続するためのアクセス許可の追加

ネットワークアクセスを必要とするステップ (urltest など) を含むプランを実行する場合は、特定のホストへの接続を許可するアクセス許可をこの Master Server に追加できます。

ProcedureLocal Distributor の JVM ポリシーを構成する

手順
  1. lib/security/rox.policy ファイルを編集します。

  2. すべてのホストとの接続をアプリケーションに許可する行を削除します。

  3. 次の行を追加し、アプリケーションに選択的なアクセス許可を付与します。


    permission java.net.SocketPermission "ipAddress", "accept"; 
    permission java.net.SocketPermission "ipAddress1:port1", "connect"; 
    permission java.net.SocketPermission "ipAddress2:port2", "connect"; ...  
    • ipAddress は、この Local Distributor の親である Local Distributor または Master Server の IP アドレスです。

    • ipAddress1:port1ipAddress2:port2 は、この Local Distributor の子である Master Server または Local Distributor の IP アドレスとポート番号です。

Postgres セキュリティ

Postgres データベースがほかのホストからの接続を受け入れない構成になっていることを確認します。Postgres データベースのデフォルトの構成では、UNIX ソケットと localhost からの接続を受け入れます。server/postgres/data/pg_hba.conf 構成ファイル内のこのデフォルト設定を変更します。また、インストール後 ALTER USER username [WITH PASSWORD `password'] クエリーを使用して、データベースパスワードを変更します。Postgres 構成に対するこれらの変更を N1SPS5.0-MasterServer-home/config/config.properties ファイルを使用して行う場合、db.password の値を変更する必要があります。