Oracle Solaris Trusted Extensions 管理の手順

Trusted Extensions での経路の構成とネットワーク情報のチェック (作業マップ)

次の作業マップでは、ネットワークの構成と構成の確認を行うためのタスクについて説明します。

作業 

説明 

参照先 

静的経路を構成します。 

ホスト間の最適な経路を手動で記述します。 

「セキュリティー属性を使用して経路を構成する」

ローカルネットワークデータベースの正しさをチェックします。 

tnchkdb コマンドを使用して、ローカルネットワークデータベースの構文の妥当性をチェックします。

「トラステッドネットワークデータベースの構文をチェックする」

ネットワークデータベースエントリと、カーネルキャッシュ内のエントリを比較します。 

tninfo コマンドを使用して、カーネルキャッシュが最新のデータベース情報で更新されたかどうかを判定します。

「トラステッドネットワークデータベース情報とカーネルキャッシュを比較する」

カーネルキャッシュとネットワークデータベースの同期をとります。 

tnctl コマンドを使用して、カーネルキャッシュを、実行中のシステム上の最新ネットワークデータベース情報で更新します。

「カーネルキャッシュとトラステッドネットワークデータベースを同期する」

Procedureセキュリティー属性を使用して経路を構成する

始める前に

大域ゾーンでセキュリティー管理者役割になります。

  1. トラステッドネットワーク上でのパケットの経路指定に使用する宛先のホストとゲートウェイをすべて追加します。

    アドレスは、ローカルの /etc/hosts ファイル、または LDAP サーバー上の同等のファイルに追加されます。Solaris 管理コンソール の「コンピュータとネットワーク」ツールを使用します。ファイルの有効範囲は /etc/hosts ファイルを修正します。LDAP の有効範囲は LDAP サーバー上のエントリを修正します。詳細は、「システムの既知のネットワークにホストを追加する」を参照してください。

  2. 宛先の各ホスト、ネットワーク、ゲートウェイをセキュリティーテンプレートに割り当てます。

    アドレスは、ローカルの /etc/security/tsol/tnrhdb ファイル、または LDAP サーバー上の同等のファイルに追加されます。Solaris 管理コンソール の「セキュリティーテンプレート」ツールを使用します。詳細は、「セキュリティーテンプレートをホストまたはホストのグループに割り当てる」を参照してください。

  3. 経路を設定します。

    端末ウィンドウで、route add コマンドを使用して経路を指定します。

    最初のエントリでデフォルトの経路が設定されます。このエントリは、ホストにもパケットの宛先にも特定の経路が定義されていない場合に使用するゲートウェイのアドレス、192.168.113.1 を指定します。


    # route add default 192.168.113.1  -static
    

    詳細は、route(1M) のマニュアルページを参照してください。

  4. 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
    
  5. 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
    

例 13–14 CONFIDENTIAL : INTERNAL USE ONLY から CONFIDENTIAL : RESTRICTED までのラベル範囲を持つ経路の追加

次の 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
...

Procedureトラステッドネットワークデータベースの構文をチェックする

tnchkdb コマンドでは、各ネットワークデータベースの構文が正確かどうかをチェックします。「セキュリティーテンプレート」ツールまたは「トラステッドネットワークゾーン」ツールを使用すると、Solaris 管理コンソールは自動的にこのコマンドを実行します。一般的に、このコマンドを実行すると、将来の使用に備えて構成しているデータベースファイルの構文をチェックできます。

始める前に

ネットワーク設定をチェックできる役割で、大域ゾーンにいる必要があります。セキュリティー管理者役割とシステム管理者役割が、これらの設定をチェックできます。

  1. 端末ウィンドウで、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 ...

例 13–15 評価ネットワークデータベースの構文テスト

この例では、セキュリティー管理者がネットワークデータベースファイルをテストします。最初は、管理者が誤ったオプションを使用します。チェックの結果は、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 ...

Procedureトラステッドネットワークデータベース情報とカーネルキャッシュを比較する

ネットワークデータベースには、カーネルにキャッシュされない情報が含まれている場合があります。この手順では、情報が同じことをチェックします。Solaris 管理コンソールを使用してネットワークを更新すると、カーネルキャッシュはネットワークデータベース情報を含み更新されます。tninfo コマンドはテスト時およびデバッグ時に役立ちます。

始める前に

ネットワーク設定をチェックできる役割で、大域ゾーンにいる必要があります。セキュリティー管理者役割とシステム管理者役割が、これらの設定をチェックできます。

  1. 端末ウィンドウで、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) 構成を表示します。


例 13–16 ホスト上のマルチレベルポートの表示

この例のシステムには、複数のラベル付きゾーンが設定されています。すべてのゾーンが、同じ 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

Procedureカーネルキャッシュとトラステッドネットワークデータベースを同期する

カーネルがトラステッドネットワークデータベースの情報で更新されていない場合、カーネルキャッシュを更新する方法はいくつかあります。「セキュリティーテンプレート」ツールまたは「トラステッドネットワークゾーン」ツールを使用すると、Solaris 管理コンソールは自動的にこのコマンドを実行します。

始める前に

大域ゾーンでセキュリティー管理者役割になります。

  1. カーネルキャッシュをネットワークデータベースと同期するには、次のコマンドのいずれかを実行します。

    • 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 コマンドは実行しないでください。このコマンドにより、現在続行中の通信が中断される場合があります。



例 13–17 最新の tnrhdb エントリを使用してカーネルを更新する

この例では、管理者はローカル 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


例 13–18 カーネルでのネットワーク情報の更新

この例では、管理者が公共プリンタサーバーを使用してトラステッドネットワークを更新し、カーネル設定が正しいことをチェックします。


$ 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