この章では、Solaris Trusted Extensions ネットワークを保護するための実装の詳細と手順について説明します。
一般的なトラステッドネットワーキング手順の作業マップは、次の表のとおりです。
作業 |
説明 |
参照先 |
---|---|---|
ネットワークデータベースを構成します。 |
遠隔ホストテンプレートを作成し、ホストをテンプレートに割り当てます。 | |
経路指定の構成と、ネットワークデータベースおよびカーネルのネットワーク情報をチェックします。 |
ラベル付きまたはラベルなしゲートウェイ経由で、ラベル付きパケットを宛先に到達させる、静的送信経路を構成します。 ネットワークの状態も表示します。 | |
ネットワークの問題をトラブルシューティングします。 |
ラベル付きパケットに関連したネットワークの問題を診断するときの手順です。 |
Trusted Extensions ソフトウェアには、tnrhtp および tnrhdb データベースが含まれています。これらのデータベースが、システムに接続する遠隔ホストにラベルを提供します。Solaris 管理コンソールには、これらのデータベースの管理に使用する GUI が用意されています。
次の作業マップでは、セキュリティーテンプレートを作成し、それらをホストに適用するための作業について説明します。
作業 |
説明 |
参照先 |
---|---|---|
カスタマイズしたセキュリティーテンプレートがサイトに必要かどうかを判断します。 |
サイトのセキュリティー要件に照らし合わせて、既存のテンプレートを評価します。 | |
Solaris 管理コンソールの「セキュリティーテンプレート」ツールへのアクセス |
トラステッドネットワークデータベースを修正するツールにアクセスします。 | |
セキュリティーテンプレートを修正します。 |
トラステッドネットワークデータベースを修正して、トラステッドネットワークのセキュリティー属性の定義を修正します。 | |
DOI を 1 以外の値に変更します。 | ||
ほかのホストとの間の通信をシングルラベルに制限するラベル付きホスト用のセキュリティーテンプレートを作成します。 | ||
シングルラベルゲートウェイとして動作するラベルなしホスト用のセキュリティーテンプレートを作成します。 | ||
ラベル範囲が制限されているホスト用のセキュリティーテンプレートを作成します。 | ||
ラベル範囲内で個別一連のラベルを指定するホスト用のセキュリティーテンプレートを作成します。 | ||
ラベルなしのシステムとネットワーク用のセキュリティーテンプレートを作成します。 | ||
2 つの開発者システム用のセキュリティーテンプレートを作成します。 | ||
既知のネットワークへホストを追加します。 |
システムとネットワークをトラステッドネットワークに追加します。 | |
ワイルドカードエントリによる遠隔ホストアクセスを提供します。 |
各ホストを同じセキュリティーテンプレートに間接的に割り当てることによって、IP アドレスの一定範囲内にあるホストがシステムと通信することを許可します。 | |
tnrhdb ファイルで admin_low ワイルドカードエントリを変更します。 |
ワイルドカードエントリを、起動時に接続するホストの特定アドレスに置き換えることによって、セキュリティーを引き上げます。 | |
ワイルドカードエントリを、デフォルトとしてラベル付きホストのネットワークで置き換えることによって、セキュリティーを引き上げます。 | ||
ホストアドレス 0.0.0.0 のエントリを作成します。 |
遠隔クライアントからの初期接続を受け入れるように Sun Ray サーバーを構成します。 | |
セキュリティーテンプレートを割り当てます。 |
テンプレートに IP アドレス、または連続する IP アドレスのリストを関連付けます。 |
大域ゾーンでセキュリティー管理者役割になります。
Trusted Extensions のテンプレートを十分に理解します。
ローカルホストにある tnrhtp ファイルをお読みください。ファイル内のコメントが役に立ちます。セキュリティー属性値は、Solaris 管理コンソールの「セキュリティーテンプレート」ツールでも確認できます。
デフォルトのテンプレートは、どのインストールにも一致します。各テンプレートのラベル範囲は、ADMIN_LOW から ADMIN_HIGH までです。
cipso テンプレートでは、DOI が 1 である CIPSO ホストタイプが定義されます。テンプレートのラベル範囲は、ADMIN_LOW から ADMIN_HIGH までです。
admin_low テンプレートでは、DOI が 1 であるラベルなしホストが定義されます。テンプレートのデフォルトラベルは ADMIN_LOW です。テンプレートのラベル範囲は、ADMIN_LOW から ADMIN_HIGH までです。デフォルト構成では、アドレス 0.0.0.0 がこのテンプレートに割り当てられます。したがって、CIPSO 以外のすべてのホストは、ADMIN_LOW のセキュリティーラベルで動作するホストとして扱われます。
デフォルトのテンプレートを確保しておきます。
サポートの目的上、デフォルトのテンプレートは削除したり修正したりしないでください。これらのデフォルトのテンプレートが割り当てられているホストは変更できます。例については、「トラステッドネットワーク上で接続できるホストを制限する」を参照してください。
次のいずれかの操作が必要な場合は、新しいテンプレートを作成します。
ホスト、またはホストのグループのラベル範囲を制限します。
シングルラベルホストを作成します。
複数の個別のラベルを認識するホストを作成します。
1 以外の DOI を使用します。
ADMIN_LOW でないラベルなしホストにデフォルトのラベルを要求します。
詳細は、「遠隔ホストテンプレートを構築する」を参照してください。
ネットワークセキュリティーを修正できる役割で、大域ゾーンにいる必要があります。たとえば、Information Security または Network Security の権利プロファイルを割り当てられた役割は、セキュリティー設定を修正することができます。セキュリティー管理者役割には、これらのプロファイルが含まれています。
LDAP ツールボックスを使用する場合は、『Oracle Solaris Trusted Extensions 構成ガイド』の「LDAP のための Solaris 管理コンソールの設定 (作業マップ)」を完了しておいてください。
Solaris 管理コンソールを起動します。
詳細は、『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions で Solaris 管理コンソールサーバーを初期化する」を参照してください。
適切なツールを使用します。
テンプレートを修正するには、「セキュリティーテンプレート」ツールを使用します。
現在定義されているすべてのテンプレートが右側の区画に表示されます。テンプレートを選択または作成すると、左側の区画でオンラインヘルプを使用できます。
テンプレートにホストを割り当てるには、「セキュリティーテンプレート」ツールを使用します。
テンプレートに割り当て可能なホストを作成するには、「コンピュータとネットワーク」ツールを使用します。
ゾーンにラベルを割り当てるには、「トラステッドネットワークゾーン」ツールを使用します。Trusted Extensions のゾーンについては、第 10 章Trusted Extensions でのゾーンの管理 (手順)を参照してください。
ネットワークセキュリティーを修正できる役割で、大域ゾーンにいる必要があります。たとえば、Information Security または Network Security の権利プロファイルを割り当てられた役割は、セキュリティー設定を修正することができます。セキュリティー管理者役割には、これらのプロファイルが含まれています。
Solaris 管理コンソールで、「セキュリティーテンプレート」ツールを開きます。
詳細な手順については、「トラステッドネットワーキングのツールを開く」を参照してください。
「コンピュータとネットワーク」の下の「セキュリティーテンプレート」をダブルクリックします。
既存のテンプレートは、「表示」区画に表示されます。これらのテンプレートには、このシステムが接続できるホストのセキュリティー属性が記述されています。このようなホストには、Trusted Extensions を実行している CIPSO ホストや、ラベルなしホストがあります。
cipso テンプレートを調べます。
このテンプレートがすでに割り当てられているホストとネットワークを表示します。
admin_low テンプレートを調べます。
このテンプレートがすでに割り当てられているホストとネットワークを表示します。
テンプレートを作成します。
用意されているテンプレートで、このシステムと通信できるホストに関する記述が不十分な場合、「アクション」メニューから「テンプレートの追加」を選択します。
詳細はオンラインヘルプを参照してください。ホストをテンプレートに割り当てる前に、サイトで必要なテンプレートをすべて作成します。
(省略可能) デフォルトのテンプレートでない既存のテンプレートを修正します。
テンプレートをダブルクリックします。詳細はオンラインヘルプを参照してください。割り当てられているホストまたはネットワークを変更することができます。
この例では、セキュリティー管理者のネットワークに、1 以外の値を持つ DOI が含まれています。最初にシステムを構成したチームは、『Oracle Solaris Trusted Extensions 構成ガイド』の「解釈ドメインの構成」を完了しています。
最初に、セキュリティー管理者が /etc/system ファイルに含まれる DOI の値を確認します。
# grep doi /etc/system set default_doi = 4 |
次に、「セキュリティーテンプレート」ツールで、管理者がテンプレートを作成するたびに、doi の値が 4 に設定されます。例 13–2 で説明されているシングルラベルシステムの場合、セキュリティー管理者は次のテンプレートを作成します。
template: CIPSO_PUBLIC host_type: CIPSO doi: 4 min_sl: PUBLIC max_sl: PUBLIC |
この例では、セキュリティー管理者が、シングルラベル PUBLIC でのみパケットを通過させることのできるゲートウェイを作成します。管理者は、Solaris 管理コンソールの「セキュリティーテンプレート」ツールを使用して、テンプレートを作成し、ゲートウェイホストをテンプレートに割り当てます。
最初に、ゲートウェイホストと IP アドレスが、「コンピュータとネットワーク」ツールに追加されます。
gateway-1 192.168.131.75 |
次に、テンプレートが「セキュリティーテンプレート」ツールで作成されます。 テンプレート内の値は次のとおりです。
template: CIPSO_PUBLIC host_type: CIPSO doi: 1 min_sl: PUBLIC max_sl: PUBLIC |
ツールで、PUBLIC の 16 進値 0X0002-08-08 が提供されます。
最後に、gateway-1 のホストは、その名前と IP アドレスでテンプレートに割り当てられます。
gateway-1 192.168.131.75 |
ローカルホストで、tnrhtp エントリが次のようになります。
cipso_public:host_type=cipso;doi=1;min_sl=0X0002-08-08;max_sl=0X0002-08-08; |
ローカルホストで、tnrhdb エントリが次のようになります。
# gateway-1 192.168.131.75:cipso_public |
IP ルーターは、明示的にラベルをサポートしていない場合でも、CIPSO ラベルの付いたメッセージを転送することができます。このようなラベルなしルーターには、ルーターへの接続 (多くの場合ルーター管理のため) を処理するレベルを定義するデフォルトラベルが必要です。この例では、セキュリティー管理者が、任意のラベルでトラフィックを転送できるルーターを作成しますが、ルーターとの直接の通信はデフォルトラベル PUBLIC で処理されます。
Solaris 管理コンソールで、管理者がテンプレートを作成し、ゲートウェイホストをテンプレートに割り当てます。
最初に、ルーターとその IP アドレスが、「コンピュータとネットワーク」ツールに追加されます。
router-1 192.168.131.82 |
次に、テンプレートが「セキュリティーテンプレート」ツールで作成されます。テンプレート内の値は次のとおりです。
Template Name: UNL_PUBLIC Host Type: UNLABELED DOI: 1 Default Label: PUBLIC Minimum Label: ADMIN_LOW Maximum Label: ADMIN_HIGH |
ツールで、ラベルの 16 進値が提供されます。
最後に、router-1 のルーターは、その名前と IP アドレスでテンプレートに割り当てられます。
router-1 192.168.131.82 |
この例では、セキュリティー管理者が、パケットを狭いラベル範囲に制限するゲートウェイを作成します。Solaris 管理コンソールで、管理者がテンプレートを作成し、ゲートウェイホストをテンプレートに割り当てます。
最初に、ホストとその IP アドレスが、「コンピュータとネットワーク」ツールに追加されます。
gateway-ir 192.168.131.78 |
次に、テンプレートが「セキュリティーテンプレート」ツールで作成されます。テンプレート内の値は次のとおりです。
Template Name: CIPSO_IUO_RSTRCT Host Type: CIPSO DOI: 1 Minimum Label: CONFIDENTIAL : INTERNAL USE ONLY Maximum Label: CONFIDENTIAL : RESTRICTED |
ツールで、ラベルの 16 進値が提供されます。
最後に、gateway-ir のゲートウェイは、その名前と IP アドレスでテンプレートに割り当てられます。
gateway-ir 192.168.131.78 |
この例では、セキュリティー管理者が、2 つのラベルのみを認識するセキュリティーテンプレートを作成します。Solaris 管理コンソールで、管理者がテンプレートを作成し、ゲートウェイホストをテンプレートに割り当てます。
最初に、このテンプレートを使用する各ホストと IP アドレスが、「コンピュータとネットワーク」ツールに追加されます。
host-slset1 192.168.132.21 host-slset2 192.168.132.22 host-slset3 192.168.132.23 host-slset4 192.168.132.24 |
次に、テンプレートが「セキュリティーテンプレート」ツールで作成されます。テンプレート内の値は次のとおりです。
Template Name: CIPSO_PUB_RSTRCT Host Type: CIPSO DOI: 1 Minimum Label: PUBLIC Maximum Label: CONFIDENTIAL : RESTRICTED SL Set: PUBLIC, CONFIDENTIAL : RESTRICTED |
ツールで、ラベルの 16 進値が提供されます。
最後に、IP アドレスの範囲をテンプレートに割り当てるには、「ワイルドカード」ボタンと接頭辞を使用します。
192.168.132.0/17 |
この例では、セキュリティー管理者が、Solaris システムのサブネットワークにトラステッドネットワークで PUBLIC ラベルを付けることができるようにします。テンプレートには次の値があります。
Template Name: public Host Type: Unlabeled Default Label: Public Minimum Label: Public Maximum Label: Public DOI: 1 Wildcard Entry: 10.10.0.0 Prefix: 16 |
10.10.0.0 サブネットワーク上のすべてのシステムは、PUBLIC ラベルで処理されます。
この例では、セキュリティー管理者が SANDBOX テンプレートを作成します。このテンプレートは、トラステッドソフトウェアの開発者が使うシステムに割り当てられます。このテンプレートを割り当てられた 2 つのシステムでは、ラベル付きプログラムを作成およびテストします。ただし、そのテストでほかのラベル付きシステムが影響を受けることはありません。SANDBOX ラベルはネットワーク上のほかのラベルから独立しているからです。
Template Name: cipso_sandbox Host Type: CIPSO Minimum Label: SANDBOX Maximum Label: SANDBOX DOI: 1 Hostname: DevMachine1 IP Address: 196.168.129.129 Hostname: DevMachine2 IP Address: 196.168.129.102 |
これらのシステムを使用する開発者は、SANDBOX ラベルで相互に通信できます。
Solaris 管理コンソールの「コンピュータ」ツールは、Solaris OS の「コンピュータ」ツールと同じです。この手順は、利便性を考慮して記載されています。ホストが既知になったら、ホストをセキュリティーテンプレートに割り当てます。
ネットワークを管理できる管理者である必要があります。たとえば、Network Management または System Administrator の権利プロファイルを持つ役割が、ネットワークを管理できます。
Solaris 管理コンソールで、「コンピュータ」ツールを開きます。
詳細は、「トラステッドネットワーキングのツールを開く」を参照してください。
「コンピュータ」ツールで、ネットワーク上のすべてのコンピュータを表示することを確定します。
このシステムが接続できるホストを追加します。
静的ルーターや監査サーバーなど、このシステムが接続する可能性のあるホストをすべて追加する必要があります。
このシステムが接続できるホストのグループを追加します。
オンラインヘルプに従い、ネットワーク IP アドレスを使用して、ホストのグループを追加します。
大域ゾーンでセキュリティー管理者役割になります。
テンプレートに割り当てるホストはすべて、「コンピュータとネットワーク」ツールに存在する必要があります。詳細は、「システムの既知のネットワークにホストを追加する」を参照してください。
Solaris 管理コンソールで、「セキュリティーテンプレート」ツールを開きます。
詳細は、「トラステッドネットワーキングのツールを開く」を参照してください。
適切なテンプレート名をダブルクリックします。
「テンプレートに割り当てるホスト」タブをクリックします。
1 つのホストにテンプレートを割り当てるには、次のようにします。
アドレスが連続しているホストのグループにテンプレートを割り当てるには、次のようにします。
この例では、セキュリティー管理者が複数の IPv4 サブネットワークを、同じセキュリティーテンプレートに割り当てます。「テンプレートに割り当てるホスト」タブで、管理者は次のワイルドカードエントリを追加します。
IP Address: 192.168.113.0 IP address: 192.168.75.0 |
次の例では、セキュリティー管理者が、オクテット境界にない連続 IPv4 アドレスを、同じセキュリティーテンプレートに割り当てます。「テンプレートに割り当てるホスト」タブで、管理者は次のワイルドカードエントリを追加します。
IP Address: 192.168.113.100 Prefix Length: 25 |
このワイルドカードエントリは、192.168.113.0 から 192.168.113.127 までのアドレス範囲をカバーします。このアドレスには、192.168.113.100 が含まれます。
この例では、セキュリティー管理者が連続する IPv6 アドレスを、同じセキュリティーテンプレートに割り当てます。「テンプレートに割り当てるホスト」タブで、管理者は次のワイルドカードエントリを追加します。
IP Address: 2001:a08:3903:200::0 Prefix Length: 56 |
このワイルドカードエントリは、2001:a08:3903:200::0 から 2001:a08:3903:2ff:ffff:ffff:ffff:ffff までのアドレス範囲をカバーします。このアドレスには、2001:a08:3903:201:20e:cff:fe08:58c が含まれます。
この手順では、任意のラベルなしホストによる接続から、ラベル付きホストを保護します。Trusted Extensions をインストールする場合、このデフォルトのテンプレートでネットワーク上のすべてのホストが定義されます。この手順を使って、特定のラベルなしホストを列挙します。
各システム上のローカルの tnrhdb ファイルは、起動時のネットワーク接続に使用されます。デフォルトでは、CIPSO テンプレートで提供されない各ホストはadmin_low テンプレートで定義されます。このテンプレートは、ほかで定義されていない各システム ( 0.0.0.0) を、admin_low のデフォルトラベルでラベルなしシステムとして割り当てます。
デフォルトの admin_low テンプレートは、Trusted Extensions ネットワークでセキュリティー上のリスクになる場合があります。サイトのセキュリティーに強い保護が必要な場合、セキュリティー管理者はシステムのインストール後に 0.0.0.0 ワイルドカードエントリを削除することができます。このエントリは、起動時にシステムが接続する各ホストのエントリに置き換える必要があります。
たとえば、0.0.0.0 ワイルドカードエントリを削除したあとに、DNS サーバー、ホームディレクトリサーバー、監査サーバー、ブロードキャストおよびマルチキャストアドレス、およびルーターがローカルの tnrhdb ファイルになければなりません。
アプリケーションが最初にクライアントをホストアドレス 0.0.0.0 で認識する場合には、0.0.0.0/32:admin_low というホストエントリを tnrhdb データベースに追加する必要があります。たとえば、潜在的な Sun Ray クライアントからの初期接続要求を受信するには、Sun Ray サーバーにこのエントリを含めます。すると、サーバーはクライアントを認識したとき、クライアントに IP アドレスを付与して、クライアントを CIPSO クライアントとして接続します。
大域ゾーンでセキュリティー管理者役割になります。
起動時に接続されるすべてのホストは、「コンピュータとネットワーク」ツールに存在している必要があります。
Solaris 管理コンソールのファイルの有効範囲で、「セキュリティーテンプレート」ツールを開きます。
ファイルの有効範囲は、起動中にシステムを保護します。「セキュリティーテンプレート」ツールへのアクセスについては、「トラステッドネットワーキングのツールを開く」を参照してください。
admin_low テンプレートに割り当てられているホストを修正します。
admin_low テンプレートをダブルクリックします。
追加される各ホストには、ラベル ADMIN_LOW で起動中に接続できます。
「テンプレートに割り当てるホスト」タブをクリックします。
追加される各ホストには、ラベル ADMIN_LOW で起動中に接続できます。
起動時に接続する必要のある各ラベルなしホストを追加します。
詳細は、「セキュリティーテンプレートをホストまたはホストのグループに割り当てる」を参照してください。
このホストが通信時に経由する必要のある、Trusted Extensions を実行していないオンリンクルーターをすべて追加します。
起動時に接続する必要のあるホストの範囲を追加します。
0.0.0.0 エントリを削除します。
cipso テンプレートに割り当てられているホストを修正します。
cipso テンプレートをダブルクリックします。
追加される各ホストには、起動時に接続できます。
「テンプレートに割り当てるホスト」タブをクリックします。
追加される各ホストには、ラベル ADMIN_LOW で起動中に接続できます。
起動時に接続する必要のある各ラベル付きホストを追加します。
詳細は、「セキュリティーテンプレートをホストまたはホストのグループに割り当てる」を参照してください。
LDAP サーバーを追加します。
このホストが通信時に経由する必要のある、 Trusted Extensions を実行してしていないオンリンクルーターをすべて追加します。
すべてのネットワークインタフェースがテンプレートに割り当てられていることを確認します。
ブロードキャストアドレスを追加します。
起動時に接続する必要のあるホストの範囲を追加します。
ホスト割り当てによってシステムの起動が許可されていることを確認します。
この例では、セキュリティー管理者が公共ゲートウェイシステムを作成します。管理者は、admin_low テンプレートから 0.0.0.0 エントリを削除し、そのエントリを public という名前のラベルなしテンプレートに割り当てます。システムは、その tnrhdb ファイルにリストされていないシステムを、public セキュリティーテンプレートのセキュリティー属性を持つラベルなしシステムとして認識するようになります。
公共ゲートウェイ用に特別に作成されたラベルなしテンプレートは、次のとおりです。
Template Name: public Host Type: Unlabeled Default Label: Public Minimum Label: Public Maximum Label: Public DOI: 1 |
次の例は、2 つのネットワークインタフェースを持つ LDAP クライアント用のエントリを持つローカルの tnrhdb データベースを示しています。クライアントは、ほかのネットワークおよびルーターと通信します。
127.0.0.1:cipso Loopback address 192.168.112.111:cipso Interface 1 of this host 192.168.113.111:cipso Interface 2 of this host 10.6.6.2:cipso LDAP server 192.168.113.6:cipso Audit server 192.168.112.255:cipso Subnet broadcast address 192.168.113.255:cipso Subnet broadcast address 192.168.113.1:cipso Router 192.168.117.0:cipso Another Trusted Extensions network 192.168.112.12:public Specific network router 192.168.113.12:public Specific network router 224.0.0.2:public Multicast address 255.255.255.255:admin_low Broadcast address |
この例では、セキュリティー管理者は、潜在的なクライアントからの初期接続要求を受け入れるように Sun Ray サーバーを構成します。サーバーは、プライベートトポロジおよび標準設定を使用します。
# utadm -a bge0 |
まず、管理者は Solaris 管理コンソールのドメイン名を決定します。
SMCserver # /usr/sadm/bin/dtsetup scopes Getting list of managable scopes... Scope 1 file:/machine1.ExampleCo.COM/machine1.ExampleCo.COM |
次に、管理者は、Sun Ray サーバーの tnrhdb データベースにクライアントの初期接続用のエントリを追加します。管理者がテストしている段階なので、すべての不明なアドレスに対してデフォルトのワイルドカードアドレスを使用します。
SunRayServer # /usr/sadm/bin/smtnrhdb \ add -D file:/machine1.ExampleCo.COM/machine1.ExampleCo.COM \ -- -w 0.0.0.0 -p 32 -n admin_low Authenticating as user: root Please enter a string value for: password :: ... from machine1.ExampleCo.COM was successful. |
このコマンドの実行後、tnhrdb データベースは次のようになります。smtnrhdb コマンドの結果は強調表示されています。
## tnrhdb database ## Sun Ray server address 192.168.128.1:cipso ## Sun Ray client addresses on 192.168.128 network 192.168.128.0/24:admin_low ## Initial address for new clients 0.0.0.0/32:admin_low ## Default wildcard address 0.0.0.0:admin_low Other addresses to be contacted at boot |
# tnchkdb -h /etc/security/tsol/tnrhdb |
テストがこの段階まで成功したあと、管理者は、構成の安全性を高めるためにデフォルトのワイルドカードアドレスを削除し、tnrhdb データベースの構文をチェックしてから再度テストを実行します。最終的な tnhrdb データベースは次のようになります。
## tnrhdb database ## Sun Ray server address 192.168.128.1:cipso ## Sun Ray client addresses on 192.168.128 network 192.168.128.0/24:admin_low ## Initial address for new clients 0.0.0.0/32:admin_low ## 0.0.0.0:admin_low - no other systems can enter network at admin_low Other addresses to be contacted at boot |
次の作業マップでは、ネットワークの構成と構成の確認を行うためのタスクについて説明します。
作業 |
説明 |
参照先 |
---|---|---|
静的経路を構成します。 |
ホスト間の最適な経路を手動で記述します。 | |
ローカルネットワークデータベースの正しさをチェックします。 |
tnchkdb コマンドを使用して、ローカルネットワークデータベースの構文の妥当性をチェックします。 | |
ネットワークデータベースエントリと、カーネルキャッシュ内のエントリを比較します。 |
tninfo コマンドを使用して、カーネルキャッシュが最新のデータベース情報で更新されたかどうかを判定します。 | |
カーネルキャッシュとネットワークデータベースの同期をとります。 |
tnctl コマンドを使用して、カーネルキャッシュを、実行中のシステム上の最新ネットワークデータベース情報で更新します。 |
大域ゾーンでセキュリティー管理者役割になります。
トラステッドネットワーク上でのパケットの経路指定に使用する宛先のホストとゲートウェイをすべて追加します。
アドレスは、ローカルの /etc/hosts ファイル、または LDAP サーバー上の同等のファイルに追加されます。Solaris 管理コンソール の「コンピュータとネットワーク」ツールを使用します。ファイルの有効範囲は /etc/hosts ファイルを修正します。LDAP の有効範囲は LDAP サーバー上のエントリを修正します。詳細は、「システムの既知のネットワークにホストを追加する」を参照してください。
宛先の各ホスト、ネットワーク、ゲートウェイをセキュリティーテンプレートに割り当てます。
アドレスは、ローカルの /etc/security/tsol/tnrhdb ファイル、または LDAP サーバー上の同等のファイルに追加されます。Solaris 管理コンソール の「セキュリティーテンプレート」ツールを使用します。詳細は、「セキュリティーテンプレートをホストまたはホストのグループに割り当てる」を参照してください。
経路を設定します。
端末ウィンドウで、route add コマンドを使用して経路を指定します。
最初のエントリでデフォルトの経路が設定されます。このエントリは、ホストにもパケットの宛先にも特定の経路が定義されていない場合に使用するゲートウェイのアドレス、192.168.113.1 を指定します。
# route add default 192.168.113.1 -static |
詳細は、route(1M) のマニュアルページを参照してください。
1 つ以上のネットワークエントリを設定します。
-secattr フラグを使用して、セキュリティー属性を指定します。
次のコマンドリストでは、2 行目がネットワークエントリを示しています。3 行目は、PUBLIC ... CONFIDENTIAL : INTERNAL USE ONLY のラベル範囲を持つネットワークエントリを示しています。
# route add default 192.168.113.36 # route add -net 192.168.102.0 gateway-101 # route add -net 192.168.101.0 gateway-102 \ -secattr min_sl=“PUBLIC”,max_sl=”CONFIDENTIAL : INTERNAL USE ONLY”,doi=1 |
1 つ以上のホストエントリを設定します。
新しい 4 行目は、シングルラベルホスト gateway-pub のホストエントリを示しています。gateway-pub のラベル範囲は PUBLIC から PUBLIC までです。
# route add default 192.168.113.36 # route add -net 192.168.102.0 gateway-101 # route add -net 192.168.101.0 gateway-102 \ -secattr min_sl="PUBLIC",max_sl="CONFIDENTIAL : INTERNAL USE ONLY",doi=1 # route add -host 192.168.101.3 gateway-pub \ -secattr min_sl="PUBLIC",max_sl="PUBLIC",doi=1 |
次の route コマンドは、192.168.118.39 をゲートウェイとして 192.168.115.0 のホストを経路指定テーブルに追加します。ラベル範囲は CONFIDENTIAL : INTERNAL USE ONLY ... CONFIDENTIAL : RESTRICTED で、DOI は 1 です。
$ route add -net 192.168.115.0 192.168.118.39 \ -secattr min_sl="CONFIDENTIAL : INTERNAL USE ONLY",max_sl="CONFIDENTIAL : RESTRICTED",doi=1 |
追加したホストの結果は、netstat -rR コマンドを使用して表示されます。次の抜粋コードでは、ほかの送信経路は省略されて (...) で示されています。
$ netstat -rRn ... 192.168.115.0 192.168.118.39 UG 0 0 min_sl=CNF : INTERNAL USE ONLY,max_sl=CNF : RESTRICTED,DOI=1,CIPSO ... |
tnchkdb コマンドでは、各ネットワークデータベースの構文が正確かどうかをチェックします。「セキュリティーテンプレート」ツールまたは「トラステッドネットワークゾーン」ツールを使用すると、Solaris 管理コンソールは自動的にこのコマンドを実行します。一般的に、このコマンドを実行すると、将来の使用に備えて構成しているデータベースファイルの構文をチェックできます。
ネットワーク設定をチェックできる役割で、大域ゾーンにいる必要があります。セキュリティー管理者役割とシステム管理者役割が、これらの設定をチェックできます。
端末ウィンドウで、tnchkdb コマンドを実行します。
$ tnchkdb [-h tnrhdb-path] [-t tnrhtp-path] [-z tnzonecfg-path] checking /etc/security/tsol/tnrhtp ... checking /etc/security/tsol/tnrhdb ... checking /etc/security/tsol/tnzonecfg ... |
この例では、セキュリティー管理者がネットワークデータベースファイルをテストします。最初は、管理者が誤ったオプションを使用します。チェックの結果は、tnrhdb ファイルの行に出力されます。
$ tnchkdb -h /opt/secfiles/trial.tnrhtp checking /etc/security/tsol/tnrhtp ... checking /opt/secfiles/trial.tnrhtp ... line 12: Illegal name: min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH line 14: Illegal name: min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH checking /etc/security/tsol/tnzonecfg ... |
セキュリティー管理者が -t オプションを使用してファイルをチェックすると、tnrhtp データベースの構文が正確であることが確認されます。
$ tnchkdb -t /opt/secfiles/trial.tnrhtp checking /opt/secfiles/trial.tnrhtp ... checking /etc/security/tsol/tnrhdb ... checking /etc/security/tsol/tnzonecfg ... |
ネットワークデータベースには、カーネルにキャッシュされない情報が含まれている場合があります。この手順では、情報が同じことをチェックします。Solaris 管理コンソールを使用してネットワークを更新すると、カーネルキャッシュはネットワークデータベース情報を含み更新されます。tninfo コマンドはテスト時およびデバッグ時に役立ちます。
ネットワーク設定をチェックできる役割で、大域ゾーンにいる必要があります。セキュリティー管理者役割とシステム管理者役割が、これらの設定をチェックできます。
端末ウィンドウで、tninfo コマンドを実行します。
tninfo -h hostname は、指定したホストの IP アドレスとテンプレートを表示します。
tninfo -t templatename は、次の情報を表示します。
template: template-name host_type: either CIPSO or UNLABELED doi: 1 min_sl: minimum-label hex: minimum-hex-label max_sl: maximum-label hex:maximum-hex-label |
tninfo -m zone-name は、ゾーンのマルチレベルポート (MLP) 構成を表示します。
この例のシステムには、複数のラベル付きゾーンが設定されています。すべてのゾーンが、同じ IP アドレスを共有します。一部のゾーンは、ゾーン固有のアドレスでも構成されます。この構成では、Web ブラウザ用の TCP ポートであるポート 8080 が、Public ゾーンの共有インタフェース上の MLP です。管理者は、telnet、TCP ポート 23 も、Public ゾーンの MLP として設定します。これら 2 つの MLP は共有インタフェース上にあるので、大域ゾーンも含めたほかのゾーンは、ポート 8080 および 23 の共有インタフェース上ではパケットを受信できません。
さらに、ssh 用の TCP ポートであるポート 22 は、Public ゾーンのゾーンごとの MLP です。Public ゾーンの ssh サービスは、ゾーン固有のアドレスで、そのアドレスのラベル範囲にあるどのパケットも受信できます。
次のコマンドが Public ゾーンの MLP を示します。
$ tninfo -m public private: 22/tcp shared: 23/tcp;8080/tcp |
次のコマンドが大域ゾーンの MLP を示します。大域ゾーンは Public ゾーンと同じアドレスを共有するため、ポート 23 および 8080 は大域ゾーンでは MLP になれません。
$ tninfo -m global private: 111/tcp;111/udp;514/tcp;515/tcp;631/tcp;2049/tcp; 6000-6003/tcp;38672/tcp;60770/tcp; shared: 6000-6003/tcp |
カーネルがトラステッドネットワークデータベースの情報で更新されていない場合、カーネルキャッシュを更新する方法はいくつかあります。「セキュリティーテンプレート」ツールまたは「トラステッドネットワークゾーン」ツールを使用すると、Solaris 管理コンソールは自動的にこのコマンドを実行します。
大域ゾーンでセキュリティー管理者役割になります。
カーネルキャッシュをネットワークデータベースと同期するには、次のコマンドのいずれかを実行します。
tnctl サービスを再起動します。
この方法は、トラステッドネットワークデータベースの情報を LDAP サーバーから取得するシステムでは使用しないでください。LDAP サーバーから取得された情報がローカルデータベース情報で上書きされる可能性があります。
$ svcadm restart svc:/network/tnctl |
このコマンドでは、ローカルのトラステッドネットワークデータベースからカーネルにすべての情報を読み込みます。
最近追加したエントリのカーネルキャッシュを更新します。
$ tnctl -h hostname |
このコマンドでは、選択したオプションからの情報だけをカーネルに読み込みます。各オプションについては、例 13–17 および tnctl(1M) のマニュアルページを参照してください。
tnd サービスを変更します。
tnd サービスが実行されているのは、ldap サービスが実行されている場合だけです。
tnd ポーリング間隔を変更します。
これによって、カーネルキャッシュは更新されません。ただし、ポーリング間隔を短くすることによって、カーネルキャッシュの更新頻度を高くすることはできます。詳細は、tnd(1M) のマニュアルページの例を参照してください。
tnd をリフレッシュします。
このサービス管理機能 (SMF) コマンドは、トラステッドネットワークデータベースの最新の変更とともにカーネルの即時更新をトリガーします。
$ svcadm refresh svc:/network/tnd |
SMF を使用して tnd を再起動します。
$ svcadm restart svc:/network/tnd |
tnd を再起動する場合、tnd コマンドは実行しないでください。このコマンドにより、現在続行中の通信が中断される場合があります。
この例では、管理者はローカル tnrhdb データベースに 3 つのアドレスを追加しました。まず、管理者は 0.0.0.0 ワイルドカードエントリを削除しました。
$ tnctl -d -h 0.0.0.0:admin_low |
次に、管理者は、/etc/security/tsol/tnrhdb データベースにある最後の 3 つのエントリの書式を表示します。
$ tail /etc/security/tsol/tnrhdb #\:\:0:admin_low 127.0.0.1:cipso #\:\:1:cipso 192.168.103.5:admin_low 192.168.103.0:cipso 0.0.0.0/32:admin_low |
さらに、管理者はカーネルキャッシュを更新します。
$ tnctl -h 192.168.103.5 tnctl -h 192.168.103.0 tnctl -h 0.0.0.0/32 |
最後に、管理者は、カーネルキャッシュが更新されていることを確認します。最初のエントリの出力は、次のようになります。
$ tninfo -h 192.168.103.5 IP Address: 192.168.103.5 Template: admin_low |
この例では、管理者が公共プリンタサーバーを使用してトラステッドネットワークを更新し、カーネル設定が正しいことをチェックします。
$ tnctl -h public-print-server $ tninfo -h public-print-server IP Address: 192.168.103.55 Template: PublicOnly $ tninfo -t PublicOnly ================================== Remote Host Template Table Entries ---------------------------------- template: PublicOnly host_type: CIPSO doi: 1 min_sl: PUBLIC hex: 0x0002-08-08 max_sl: PUBLIC hex: 0x0002-08-08 |
次の作業マップでは、ネットワークをデバッグするためのタスクについて説明します。
作業 |
説明 |
参照先 |
---|---|---|
2 つのホストが通信できない原因を特定します。 |
1 台のシステムでインタフェースが稼働していることを確認します。 | |
2 つのホストが相互に通信できないときにデバッグ用のツールを使用します。 | ||
LDAP クライアントが LDAP サーバーに到達できない原因を特定します。 |
LDAP サーバーとクライアントの間の接続障害をトラブルシューティングします。 |
システムが期待どおりにほかのシステムと通信しない場合は、この手順を使います。
ネットワーク設定をチェックできる役割で、大域ゾーンにいる必要があります。セキュリティー管理者役割とシステム管理者役割が、これらの設定をチェックできます。
システムのネットワークインタフェースが稼働していることを確認します。
次の出力は、システムに hme0 と hme0:3 の 2 つのネットワークインタフェースがあることを示しています。どちらのインタフェースも稼働していません。
# ifconfig -a ... hme0: flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.0.11 netmask ffffff00 broadcast 192.168.0.255 hme0:3 flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.0.12 netmask ffffff00 broadcast 192.168.0.255 |
インタフェースが稼動していない場合、インタフェースを起動させて、稼動していることを確認します。
次の出力は、両方のインタフェースが稼動していることを示します。
# ifconfig hme0 up # ifconfig -a ... hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,... hme0:3 flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,.. |
期待どおりに通信していない 2 つのホストをデバッグする場合、Trusted Extensions と Solaris のデバッグ用のツールを使用できます。たとえば、snoop や netstat など Solaris のネットワークデバッグコマンドを使用できます。詳細は、snoop(1M) および netstat(1M) のマニュアルページを参照してください。Trusted Extensions に固有のコマンドについては、表 2–4 を参照してください。
ラベル付きゾーンを接続するときの問題については、「ゾーンの管理 (作業マップ)」 を参照してください。
NFS マウントのデバッグについては、「Trusted Extensions でマウントの失敗をトラブルシューティングする」を参照してください。
LDAP 通信のデバッグについては、「LDAP サーバーへのクライアント接続をデバッグする」を参照してください。
ネットワーク設定をチェックできる役割で、大域ゾーンにいる必要があります。セキュリティー管理者役割またはシステム管理者役割が、これらの設定をチェックできます。
tnd デーモンをトラブルシューティングするには、ポーリング間隔を変更し、デバッグ情報を収集します。
tnd サービスが実行されているのは、ldap サービスが実行されている場合だけです。
詳しくは、tnd(1M) のマニュアルページを参照してください。
通信できないホスト同士が同じネームサービスを使用していることを確認します。
各ホストで、nsswitch.conf ファイルを確認します。
nsswitch.conf ファイルで、Trusted Extensions データベースの値を確認します。
たとえば、ネットワークの管理に LDAP を使用するサイトでは、エントリは次のようになります。
# Trusted Extensions tnrhtp: files ldap tnrhdb: files ldap |
値が異なる場合、nsswitch.conf ファイルを修正します。
これらのエントリを修正する場合、システム管理者は「ネームサービススイッチ」アクションを使用します。詳細は、「Trusted Extensions の CDE 管理アクションを起動する」を参照してください。このアクションでは、必要な DAC および MAC ファイルのアクセス権が維持されます。
LDAP ネームサービスが構成されていることを確認します。
$ ldaplist -l |
両方のホストが LDAP ネームサービスにあることを確認します。
$ ldaplist -l hosts | grep hostname |
各ホストが正しく定義されていることを確認します。
Solaris 管理コンソールを使用して定義を確認します。
「セキュリティーテンプレート」ツールで、各ホストが他方のホストのセキュリティーテンプレートと互換性のあるセキュリティーテンプレートに割り当てられていることを確認します。
ラベルなしシステムの場合、デフォルトのラベル割り当てが正しいことを確認します。
「トラステッドネットワークゾーン」ツールで、マルチレベルポート (MLP) が正しく構成されていることを確認します。
コマンド行を使用して、カーネルのネットワーク情報が最新であることを確認します。
各ホストのカーネルキャッシュでの割り当てが、ネットワーク上およびほかのホスト上の割り当てに一致することを確認します。
伝送のソース、宛先、ゲートウェイホストのセキュリティー情報を取得するには、tninfo コマンドを使用します。
任意のホストの IP アドレスと、割り当てられたセキュリティーテンプレートを表示します。
$ tninfo -h hostname IP Address: IP-address Template: template-name |
テンプレート定義を表示します。
$ tninfo -t template-name template: template-name host_type: one of CIPSO or UNLABELED doi: 1 min_sl: minimum-label hex: minimum-hex-label max_sl: maximum-label hex: maximum-hex-label |
ゾーンの MLP を表示します。
$ tninfo -m zone-name private: ports-that-are-specific-to-this-zone-only shared: ports-that-the-zone-shares-with-other-zones |
正しくない情報があれば修正します。
ネットワークセキュリティー情報を変更または確認するには、Solaris 管理コンソール ツールを使用します。詳細は、「トラステッドネットワーキングのツールを開く」を参照してください。
カーネルキャッシュを更新するには、情報が最新でないホストで tnctl サービスを再起動します。このプロセスが完了するにはしばらく時間がかかります。次に、tnd サービスをリフレッシュします。リフレッシュに失敗した場合は、tnd サービスの再起動を試みます。詳細は、「カーネルキャッシュとトラステッドネットワークデータベースを同期する」を参照してください。
tnd サービスが実行されているのは、ldap サービスが実行されている場合だけです。
再起動するとカーネルキャッシュが消去されます。起動時に、キャッシュにデータベース情報が生成されます。カーネルへの情報生成にローカルデータベースと LDAP データベースのどちらが使用されるかは、nsswitch.conf ファイルで決まります。
デバッグに役立つ伝送情報を収集します。
経路指定構成を確認します。
route コマンドの get サブコマンドを使用します。
$ route get [ip] -secattr sl=label,doi=integer |
詳細は、route(1M) のマニュアルページを参照してください。
パケットのラベル情報を表示します。
snoop -v コマンドを使用します。
-v オプションを使用すると、ラベル情報などパケットヘッダーの詳細が表示されます。このコマンドでは多くの情報が表示されるため、コマンドで調べられるパケットを制限したい場合があります。詳細は、snoop(1M) のマニュアルページを参照してください。
経路指定テーブルのエントリとソケットのセキュリティー属性を表示します。
netstat -a|-r コマンドで、-R オプションを使用します。
-aR オプションを使用すると、ソケットの拡張セキュリティー属性が表示されます。-rR オプションを使用すると、経路指定テーブルのエントリが表示されます。詳細は、netstat(1M) のマニュアルページを参照してください。
LDAP サーバーでクライアントエントリの構成が誤っていると、クライアントがサーバーと通信できない場合があります。同様に、クライアント上のファイルの構成が誤っていると通信できない場合があります。クライアントサーバー間の通信問題をデバッグするときは、次のエントリとファイルを確認します。
LDAP クライアント上の大域ゾーンで、セキュリティー管理者役割である必要があります。
LDAP サーバーと LDAP サーバーへのゲートウェイの遠隔ホストテンプレートが正しいことを確認します。
# tninfo -h LDAP-server # route get LDAP-server # tninfo -h gateway-to-LDAP-server |
遠隔ホストテンプレートの割り当てが正しくない場合、Solaris 管理コンソールの「セキュリティーテンプレート」ツールを使用して、ホストを正しいテンプレートに割り当てます。
/etc/hosts ファイルを確認し、修正します。
使用しているシステム、システム上のラベル付きゾーンのインタフェース、LDAP サーバーへのゲートウェイ、および LDAP サーバーがファイルに一覧表示されている必要があります。さらに多くのエントリがあるかもしれません。
重複しているエントリを捜します。ほかのシステムのラベル付きゾーンであるエントリを削除します。たとえば、Lserver が LDAP サーバーの名前であり、LServer-zones がラベル付きゾーンの共有インタフェースである場合、/etc/hosts から LServer-zones を削除します。
DNS を使用している場合、resolv.conf ファイルのエントリを確認し修正します。
# more resolv.conf search list of domains domain domain-name nameserver IP-address ... nameserver IP-address |
nsswitch.conf ファイルの tnrhdb および tnrhtp エントリが正しいことを確認します。
サーバー上で、クライアントが正しく構成されていることを確認します。
# ldaplist -l tnrhdb client-IP-address |
ラベル付きゾーンのインタフェースが LDAP サーバー上で正しく構成されていることを確認します。
# ldaplist -l tnrhdb client-zone-IP-address |
現在実行中のすべてのゾーンから LDAP サーバーを ping できること確認します。
# ldapclient list ... NS_LDAP_SERVERS= LDAP-server-address # zlogin zone-name1 ping LDAP-server-address LDAP-server-address is alive # zlogin zone-name2 ping LDAP-server-address LDAP-server-address is alive ... |
LDAP を構成して再起動します。
手順については、『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions で大域ゾーンを LDAP クライアントにする」を参照してください。
各ラベル付きゾーンで、ゾーンを LDAP サーバーのクライアントとして再構築します。
# zlogin zone-name1 # ldapclient init \ -a profileName=profileName \ -a domainName=domain \ -a proxyDN=proxyDN \ -a proxyPassword=password LDAP-Server-IP-Address # exit # zlogin zone-name2 ... |
すべてのゾーンを停止し、ファイルシステムをロックして再起動します。
Solaris ZFS を使用している場合は、再起動の前にゾーンを停止し、ファイルシステムをロックします。ZFS を使用していない場合は、ゾーンの停止とファイルシステムのロックを行わずに再起動することができます。
# zoneadm list # zoneadm -z zone-name halt # lockfs -fa # reboot |