この付録では、Trusted CDE アクションを使用して Trusted Extensions にラベル付きゾーンを構成する方法について説明します。Solaris 10 11/06 リリースをパッチを適用せずに実行しているか、またはこれらのアクションに精通している場合は、Trusted CDE アクションを使用します。txzonemgr スクリプトを使用するには、「ラベル付きゾーンの作成」を参照してください。
次のタスクをいずれか 1 つのみを実行します。それぞれの利点と欠点については、「マルチレベルアクセスの計画」を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
論理インタフェースを共有します。 |
大域ゾーンを 1 つの IP アドレスにマップし、ラベル付きゾーンを別の IP アドレスにマップします。 | |
物理インタフェースを共有します。 |
すべてのゾーンを 1 つの IP アドレスにマップします。 |
この構成では、ホストのアドレスは大域ゾーンにのみ適用されます。ラベル付きゾーンは、別の IP アドレスを大域ゾーンと共有します。
大域ゾーンでスーパーユーザーになります。システムにはすでに 2 つの IP アドレスが割り当てられています。Trusted CDE ワークスペースにアクセスします。
Trusted_Extensions フォルダに移動します。
「論理インタフェースの共有」アクションをダブルクリックして、プロンプトに応答します。
システムにはすでに 2 つの IP アドレスが割り当てられていなければなりません。このアクションのために、2 つめのアドレスとそのアドレスのホスト名を入力します。2 つめのアドレスが共有アドレスです。
Hostname: Type the name for your labeled zones interface IP Address: Type the IP address for the interface |
このアクションによって、複数の IP アドレスを持つホストが構成されます。大域ゾーンの IP アドレスが、そのホストの名前です。ラベル付きゾーンの IP アドレスは、別のホスト名です。さらに、ラベル付きゾーンの IP アドレスが大域ゾーンと共有されます。この構成を使用すると、ラベル付きゾーンがネットワークプリンタにアクセスできます。
ラベル付きゾーンには標準的な命名規則を使用してください。たとえば、ホスト名に -zones を追加します。
(省略可能) 端末ウィンドウでこのアクションの結果を確認します。
# ifconfig -a |
たとえば、次の出力は、ラベル付きゾーンのネットワークインタフェース 192.168.0.12 の共有論理インタフェース hme0:3 を示しています。hme0 インタフェースは、大域ゾーンの一意の IP アドレスです。
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ether 0:0:00:00:00:0 hme0: flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.0.11 netmask fffffe00 broadcast 192.168.0.255 hme0:3 flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 all-zones inet 192.168.0.12 netmask fffffe00 broadcast 192.168.0.255 |
Solaris 10 10/08 リリースから、ループバックインタフェースの lo0 も all-zones インタフェースです。
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 all-zones inet 127.0.0.1 netmask ff000000 ether 0:0:00:00:00:0 ... |
この構成では、ホストのアドレスが、ラベル付きゾーンを含むすべてのゾーンに適用されます。
大域ゾーンでスーパーユーザーになります。Trusted CDE ワークスペースにアクセスします。
Trusted_Extensions フォルダに移動します。
「物理インタフェースの共有」アクションをダブルクリックします。
このアクションによって、1 つの IP アドレスを持つホストが構成されます。大域ゾーンには一意のアドレスはありません。このシステムは、マルチレベルプリンタサーバーまたは NFS サーバーとして使用できません。
(省略可能) 端末ウィンドウでこのアクションの結果を確認します。
# ifconfig -a |
「物理インタフェースの共有」アクションで、すべてのゾーンに論理 NIC を構成します。これらの論理 NIC は、大域ゾーンで 1 つの物理的な NIC を共有します。
たとえば、次の出力は、すべてのゾーンのネットワークインタフェース 192.168.0.11 の共有物理インタフェース hme0 を示しています。
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ether 0:0:00:00:00:0 hme0: flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 all-zones inet 192.168.0.11 netmask fffffe00 broadcast 192.168.0.255 |
Solaris 10 10/08 リリースから、ループバックインタフェースの lo0 も all-zones インタフェースです。
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 all-zones inet 127.0.0.1 netmask ff000000 ether 0:0:00:00:00:0 ... |
次の作業マップは、システムでのゾーン作成を準備するタスクについて示しています。ゾーンの作成方法については、「Trusted Extensions でのゾーン計画」を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
1. 各ゾーンに名前を付け、ゾーン名とゾーンラベルをリンクします。 |
各ラベル付きゾーンにラベルのバージョンが入った名前を付け、Solaris 管理コンソール で名前とラベルを関連付けます。 | |
2. ゾーンを作成する前にネットワークを構成します。 |
すべてのホストで、ラベルをネットワークインタフェースに割り当て、さらに構成を行います。 |
『Oracle Solaris Trusted Extensions 管理の手順』の「トラステッドネットワークデータベースの構成 (作業マップ)」 |
label_encodings ファイル中のラベルごとにゾーンを作成する必要はありませんが、作成することもできます。tnzonecfg データベースには、そのシステムでゾーンを作成できるラベルが列挙されます。
Trusted_Extensions フォルダに移動します。
ゾーンごとに「ゾーンを構成」アクションを繰り返します。
たとえば、デフォルトの label_encodings ファイルには次のラベルが含まれています。
PUBLIC CONFIDENTIAL: INTERNAL USE ONLY CONFIDENTIAL: NEED TO KNOW CONFIDENTIAL: RESTRICTED SANDBOX: PLAYGROUND MAX LABEL |
「ゾーンを構成」アクションを 6 回実行してラベルごとにゾーンを 1 つ作成した場合でも、次のゾーンを作成することを検討します。
すべてのユーザーのシステムでは、PUBLIC ラベルに 1 つのゾーン、および CONFIDENTIAL ラベルに 3 つのゾーンを作成します。
開発者用のシステムでは、SANDBOX: PLAYGROUND ラベルにゾーンを 1 つ作成します。SANDBOX: PLAYGROUND は開発者用の不連続ラベルとして定義され、開発者が使用するシステムにのみ、このラベルにゾーンが必要です。
MAX LABEL ラベルにはゾーンを作成しないでください。これは認可上限として定義されます。
トラステッドネットワークゾーンツールを開きます。
Solaris 管理コンソールのツールは、ユーザーエラーを防ぐように設計されています。これらのツールは、構文エラーを検査し、自動的に正しい順序でコマンドを実行してデータベースを更新します。
ゾーンごとに、適切なラベルとゾーン名を関連付けます。
「アクション」->「ゾーン構成の追加」を選択します。
ダイアログボックスに、割り当てられているラベルがないゾーンの名前が表示されます。
ゾーン名を確認してから「編集」をクリックします。
ラベルビルダーで、ゾーン名に該当するラベルをクリックします。
間違ったラベルをクリックした場合、そのラベルをもう一度クリックして選択を解除し、正しいラベルをクリックします。
割り当てを保存します。
「トラステッドネットワークゾーンのプロパティー」ダイアログボックスで「了解」をクリックします。
必要なゾーンがすべてパネルに表示されたら終了です。あるいは、「ゾーン構成の追加」メニュー項目をクリックすると、ゾーン名の値がないダイアログボックスが開かれます。
「トラステッドネットワークゾーンのプロパティー」ダイアログボックスで、作成するゾーンが表示されない場合、ゾーンネットワーク構成ファイルが存在しないか、すでに作成されています。
ゾーンネットワーク構成ファイルが存在しないことを確認します。パネルで名前を探します。
ファイルが存在しない場合、「ゾーンを構成」アクションを実行してゾーン名を指定します。次に、手順 5 を繰り返してファイルを作成します。
トラステッドネットワークゾーン構成データベースのエントリごとに、ゾーンを 1 つ作成できます。「CDE アクションを使用してゾーン名とゾーンラベルを指定する」の手順で「ゾーンを構成」アクションを実行することにより、エントリを作成しました。
アプリケーションマネージャーの Trusted_Extensions フォルダには、ラベル付きゾーンを作成する次のアクションが含まれています。
ゾーンを構成 – すべてのゾーン名に対してゾーン構成ファイルを作成します
ゾーンのインストール – 正しいパッケージとファイルシステムをゾーンに追加します
ゾーン端末コンソール – ゾーンのイベントを表示するためのウィンドウです
LDAP 用ゾーンを初期化 – ゾーンを LDAP クライアントにして、ゾーンの起動の準備をします
ゾーンを起動 – ゾーンを起動し、サービス管理フレームワーク (SMF) のすべてのサービスを起動します
ゾーンのシャットダウン – ゾーンの状態を起動から停止に変更します
タスクを次の順序で完了します。
作業 |
説明 |
参照先 |
---|---|---|
1. 1 つのゾーンをインストールして起動します。 |
最初のラベル付きゾーンを作成します。パッケージをインストールし、ゾーンを LDAP クライアントにし、ゾーンのすべてのサービスを起動します。 | |
2. ゾーンをカスタマイズします。 |
不要なサービスを削除します。ゾーンをコピーまたはゾーンのクローンを作成する場合、ゾーン固有の情報を削除します。 | |
3. その他のゾーンを作成します。 |
次のいずれかの方法を使用してその他のゾーンを作成します。方法の選択については、「Trusted Extensions の有効化前にシステムおよびセキュリティーに関する事項を決定する」を参照してください。 |
|
各ゾーンを最初から作成します。 |
「CDE アクションを使用してラベル付きゾーンをインストール、初期化、および起動する」 |
|
最初のラベル付きゾーンを別のラベルにコピーします。すべてのゾーンで繰り返します。 | ||
ZFS スナップショットを使用して、最初のラベル付きゾーンからほかのゾーンのクローンを作成します。 |
ゾーン作成ではオペレーティングシステム全体をコピーしなければならないので、このプロセスには時間がかかります。時間がかからない方法として、1 つのゾーンを作成し、それをほかのゾーンのテンプレートにして、そのゾーンテンプレートをコピーまたはクローンを作成します。
「CDE アクションを使用してゾーン名とゾーンラベルを指定する」を完了しています。
LDAP をネームサービスとして使用している場合は、「Trusted Extensions で大域ゾーンを LDAP クライアントにする」を完了しています。
ゾーンのクローンを作成する場合は、「ゾーンのクローンを作成するために ZFS プールを作成する」を完了しています。次の手順で、準備したゾーンをインストールします。
Trusted_Extensions フォルダで「ゾーンのインストール」アクションをダブルクリックします。
インストールするゾーンの名前を入力します。
このアクションによって、ラベル付き仮想オペレーティングシステムが作成されます。この手順が終了するまでしばらくお待ちください。ゾーンのインストールの実行中は、システムでその他のタスクを実行しないでください。
# zone-name: Install Zone Preparing to install zone <zone-name> Creating list of files to copy from the global zone Copying <total> files to the zone Initializing zone product registry Determining zone package initialization order. Preparing to initialize <subtotal> packages on the zone. Initializing package <number> of <subtotal>: percent complete: percent Initialized <subtotal> packages on zone. Zone <zone-name> is initialized. The file /zone/internal/root/var/sadm/system/logs/install_log contains a log of the zone installation. *** Select Close or Exit from the window menu to close this window *** |
コンソールを開いて、インストールされたゾーンのイベントを監視します。
LDAP を使用している場合は、「LDAP 用ゾーンを初期化」アクションをダブルクリックします。
Zone name: Type the name of the installed zone Host name for the zone: Type the host name for this zone |
たとえば、共有論理インタフェースがあるシステムでは、値は次のようになります。
Zone name: public Host name for the zone: machine1-zones |
このアクションによって、ラベル付きゾーンが、大域ゾーンで動作する同じ LDAP サーバーの LDAP クライアントになります。次の情報が表示されたらこのアクションは完了です。
zone-name zone will be LDAP client of IP-address zone-name is ready for booting Zone label is LABEL *** Select Close or Exit from the window menu to close this window *** |
LDAP を使用していない場合は、次の手順のいずれかを実行して手動でゾーンを初期化します。
Trusted Extensions での手動の手順は、Solaris OS の手順と同一です。システムに少なくとも 1 つの all-zones インタフェースがある場合は、すべてのゾーンに対するホスト名が、大域ゾーンのホスト名に一致する必要があります。一般に、ゾーンの初期化中に発生する質問の回答は、大域ゾーンに対する回答と同じです。
次のいずれかを実行してホスト情報を入力します。
手順 3 でゾーンを起動したあと、ゾーン端末コンソールでシステム特性に関する質問に答えます。
この回答を使用してゾーンに sysidcfg ファイルが生成されます。
ラベル付きゾーンから大域ゾーンへの Trusted CDE デスクトップのルートが存在するようにしてください。手順については、「Trusted CDE でローカルゾーンを大域ゾーンルーティングに解決する」を参照してください。
Step 3 でゾーンを起動する前に、このゾーンの /etc ディレクトリに 手順 3 カスタムファイルを置きます。
プロンプトに答えます。
Zone name: Type the name of the zone that you are configuring |
このアクションによってゾーンが起動されると、そのゾーンで実行されるすべてのサービスが起動されます。サービスの詳細は、smf(5) のマニュアルページを参照してください。
ゾーン端末コンソールは、ゾーン起動の進捗を追跡します。次のようなメッセージがコンソールに表示されます。
[Connected to zone 'public' console] [NOTICE: Zone booting up] ... Hostname: zonename Loading smf(5) service descriptions: number/total Creating new rsa public/private host key pair Creating new dsa public/private host key pair rebooting system due to change(s) in /etc/default/init [NOTICE: Zone rebooting] |
コンソール出力を監視します。
「起動したゾーンを Trusted Extensions でカスタマイズする」に進む前に、ゾーンが再起動されていることを確認します。次のコンソールログインプロンプトは、ゾーンが再起動されたことを示しています。
hostname console login: |
ゾーンのインストールで、警告「Installation of these packages generated errors: SUNW pkgname」が表示された場合、インストールログを読み、パッケージのインストールを終了します。
すべてのゾーンが Trusted CDE にアクセスできるようにするには、DISPLAY 変数を解決してください。Trusted CDE でこの変数を解決するには、ラベル付きゾーンのノード名、大域ゾーンのノード名、および all-zones インタフェースのノード名を同一の名前に解決します。
Trusted CDE を使用して、ラベル付きゾーンを手動で初期化します。
次の方法のいずれかを使用して、Trusted CDE をゾーンのラベルに表示できるようにします。
方法 1: ほかのシステムとの X サーバーのトラフィックを有効にします。
この設定では、ラベル付きゾーンは、大域ゾーンの X サーバーを経由してほかのシステムに到達できます。
/etc/nodename ファイルでシステムの名前を指定する必要があります。
## /etc/nodename machine1 |
/etc/hosts ファイルでシステムの名前を指定する必要があります。
## /etc/hosts 192.168.2.3 machine1 loghost |
ToolTalk サービスを機能させるには、システムの名前が loghost と同じ行にあるようにしてください。
/etc/hostname.interface ファイルでシステムの名前を指定する必要があります。
この設定では、machine1 は Trusted CDE の all-zones インタフェースになります。
## /etc/hostname.bge0 machine1 all-zones |
方法 2: X サーバーのトラフィックをローカルシステムに制限します。
この設定では、ラベル付きゾーンはローカルシステム上の X サーバーと通信できます。ただし、ローカルの X サーバーからネットワーク上のほかのシステムへのルートは存在しません。このルートでは、別のインタフェースを使用します。
/etc/nodename ファイルでシステムの名前を指定する必要があります。
## /etc/nodename machine1 |
/etc/hosts ファイルでシステムの名前を指定する必要があります。
Solaris 10 10/08 リリースから、lo0 は all-zones インタフェースです。この場合、このファイルは次のようになります。
## /etc/hosts 127.0.0.1 localhost machine1 loghost |
また、vni0 インタフェースも使用できます。
ToolTalk サービスを機能させるには、システムの名前を loghost と同じ行に指定してください。
方法 3: ゾーンごとの論理インタフェースでの経路指定可能なアドレスなど、別の方法で DISPLAY 変数を解決します。
この手順については、「ネットワークインタフェースをラベル付きゾーンに追加し、ルーティングする」を参照してください。
ゾーンを起動するには、手順 3の「CDE アクションを使用してラベル付きゾーンをインストール、初期化、および起動する」 に戻ります。
ゾーンのクローンを作成する場合、この手順によって、ゾーンがほかのゾーンのテンプレートになるように構成します。さらに、この手順でゾーンを使用するよう構成します。
ゾーンが完全に起動されていることを確認します。
zone-name: ゾーン端末コンソールで、root としてログインします。
hostname console login: root Password: Type root password |
ゾーンが実行されていることを確認します。
STATUS が running の場合は、ゾーン内で少なくとも 1 つのプロセスが実行中であることを示します。
# zoneadm list -v ID NAME STATUS PATH 2 public running / |
ゾーンが大域ゾーンと通信できることを確認します。
X サーバーが大域ゾーンで実行されます。それぞれのラベル付きゾーンがこのサービスを使用するには、大域ゾーンに接続できなければなりません。そのため、ゾーンネットワークが機能しなければ、ゾーンを使用することはできません。詳細は、「ラベル付きゾーンが X サーバーにアクセスできない」を参照してください。
ゾーン端末コンソールで、ラベル付きゾーンで不要なサービスを無効にします。
このゾーンをコピーまたはクローンを作成する場合、無効にしたサービスは新しいゾーンで無効にされます。システムでオンラインであるサービスは、そのゾーンのサービスマニフェストによって異なります。netservices limited コマンドを使用して、ラベル付きゾーンで必要としないサービスをオフにします。
多数の不要なサービスを削除します。
# netservices limited |
そのほかのサービスを一覧にします。
# svcs ... STATE STIME FMRI online 13:05:00 svc:/application/graphical-login/cde-login:default ... |
グラフィカルログインを無効にします。
# svcadm disable svc:/application/graphical-login/cde-login # svcs cde-login STATE STIME FMRI disabled 13:06:22 svc:/application/graphical-login/cde-login:default |
サービス管理フレームワークの詳細は、smf(5) のマニュアルページを参照してください。
次の方法のいずれかを選択します。
「ゾーンのシャットダウン」アクションを実行します。
ゾーンの名前を入力します。
大域ゾーンの端末ウィンドウで、zlogin コマンドを使用します。
# zlogin zone-name init 0 |
詳細は、zlogin(1) のマニュアルページを参照してください。
ゾーンがシャットダウンされたことを確認します。
zone-name : ゾーン端末コンソールで、次のメッセージによって、ゾーンがシャットダウンされていることが示されます。
[ NOTICE: Zone halted] |
このゾーンをコピーまたはそのクローンを作成するのではない場合、この最初のゾーンを作成したのと同じ方法で残りのゾーンを作成します。
このゾーンをほかのゾーンのテンプレートとして使用する場合、次のとおりに実行します。
ゾーンをコピーしている場合は、「ゾーンのコピー方法を Trusted Extensions で使用する」に進みます。
ゾーンのクローンを作成している場合は、「ゾーンのクローン作成方法を Trusted Extensions で使用する」に進みます。
「CDE アクションを使用してゾーン名とゾーンラベルを指定する」を完了しています。
「CDE アクションを使用したラベル付きゾーンの作成 (作業マップ) 」でクローンを作成するためのテンプレートとなるゾーンをカスタマイズしています。
クローン作成用のテンプレートであるゾーンが、現在実行されていません。
Trusted_Extensions フォルダが表示されています。
作成したいゾーンごとに、「ゾーンをコピー」アクションをダブルクリックします。
プロンプトに答えます。
New Zone Name: Type name of target zone From Zone Name: Type name of source zone |
このタスクの実行中は、ほかのタスクを実行しないでください。
ゾーンが作成されたら、すべてのゾーンのステータスをチェックします。
「ゾーン端末コンソール」アクションをダブルクリックします。
各ゾーンにログインします。
「ゾーンのステータスを確認する」を完了します。
「CDE アクションを使用してゾーン名とゾーンラベルを指定する」を完了しています。
「ゾーンのクローンを作成するために ZFS プールを作成する」を完了しています。
「ゾーンのクローンを作成するために ZFS プールを作成する」を完了して、ゾーンテンプレートを作成しています。
「CDE アクションを使用したラベル付きゾーンの作成 (作業マップ) 」でクローン作成用のテンプレートとなるゾーンをカスタマイズしています。
クローン作成用のテンプレートとなるゾーンは、シャットダウンされています。
Trusted_Extensions フォルダが表示されています。
ゾーンテンプレートの Solaris ZFS スナップショットを作成します。
# cd / # zfs snapshot zone/zone-name@snapshot |
このスナップショットを使用して、そのほかのゾーンのクローンを作成します。public という名前の構成済みゾーンの場合、スナップショットコマンドは次のようになります。
# zfs snapshot zone/public@snapshot |
作成したいゾーンごとに、「ゾーンのクローンを作成」アクションをダブルクリックします。
プロンプトに答えます。
New Zone Name: Type name of source zone ZFS Snapshot: Type name of snapshot |
ダイアログボックスの情報を読みます。
Zone label is <LABEL> zone-name is ready for booting *** Select Close or Exit from the window menu to close this window *** |
ゾーンごとに「ゾーンを起動」アクションを実行します。
別のゾーンに対するアクションを実行する前に、それぞれのゾーンを起動します。
ゾーンが作成されたあと、すべてのゾーンのステータスをチェックします。
「ゾーン端末コンソール」アクションをダブルクリックします。
「ゾーンのステータスを確認する」を完了します。