この章では、Sun N1 Service Provisioning System 5.2 アプリケーションが特定の IP アドレスおよびポート範囲からの接続しか受け付けず、特定の IP アドレスおよびポート範囲にしか接続しないようにするセキュリティーポリシーの構成方法を示します。
各 Sun N1 Service Provisioning System 5.2 アプリケーションの lib/security/rox.policy には、Java 仮想マシン (JVM) のセキュリティーポリシーファイルが存在します。このファイルには、アプリケーションに割り当てられるアクセス権が指定されています。このポリシーファイルのインストール時点では、アプリケーションはどのホストへも接続でき、どのホストからの接続でも受け付けることができます。SSH 接続で CLI Client を使用する場合は、ポリシーファイルを変更して接続をローカルホストだけに制限してください。
これらのアクセス権は、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」リンクをクリックしてください。
lib/security/rox.policy ファイルを編集します。
アプリケーションがすべてのホストに接続し、すべてのホストからの接続を受け付けるように許可する行を削除します。
次の行を追加し、アプリケーションに選択的なアクセス許可を付与します。
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 Client がマスターサーバーとの接続に使用するポートです。最初の行は、マスターサーバーがローカル接続または ssh-proxy を経由した接続だけをCLI Client に許可するように制限しています。
dbport は、Postgres データベースサーバーのポート番号です。
domain は、ブラウザインタフェース に接続を許可されるホストのドメインです。httpport は、ブラウザインタフェース のポート番号です。
ipAddress1:port1 と ipAddress2:port2 は、マスターサーバーに直接接続するリモートエージェントまたはローカルディストリビュータの IP アドレスとポート番号です。
lib/security/rox.policy ファイルを編集します。
アプリケーションがすべてのホストに接続し、すべてのホストからの接続を受け付けるように許可する行を削除します。
次の行を追加し、アプリケーションにアクセス許可を付与します。
permission java.net.SocketPermission "ipAddress", "accept"; |
ipAddress は、このリモートエージェントが接続するローカルディストリビュータまたはマスターサーバーの IP アドレスです。
urltest などのネットワークアクセスを必要とするステップを含むプランを実行する場合、特定のホストへの接続を許可するアクセス権をこのリモートエージェントに追加したいことがあります。
lib/security/rox.policy ファイルを編集します。
アプリケーションがすべてのホストに接続し、すべてのホストからの接続を受け付けるように許可する行を削除します。
次の行を追加し、アプリケーションに選択的なアクセス許可を付与します。
permission java.net.SocketPermission "ipAddress", "accept"; permission java.net.SocketPermission "ipAddress1:port1", "connect"; permission java.net.SocketPermission "ipAddress2:port2", "connect"; ... |
ipAddress は、このローカルディストリビュータの親であるローカルディストリビュータまたはマスターサーバーの IP アドレスです。
ipAddress1:port1 と ipAddress2:port2 は、このローカルディストリビュータの子であるリモートエージェントまたはローカルディストリビュータの IP アドレスとポート番号です。
Postgres データベースがほかのホストからの接続を受け入れない構成になっているこ とを確認します。Postgres データベースのデフォルト構成では、UNIX ソケットと localhost からの接続を受け入れます。server/postgres/data/pg_hba.conf 構成ファイル内のこのデフォルト設定を変更します。また、インストール後、[alter user username with password `password'] クエリーを使用して、データベースパスワードを変更します。Postgres 構成ファイルに対するこれらの変更を N1SPS5.2-MasterServer-home/config/config.properties ファイルを使用して行う場合、db.password の値を変更する必要があります。