期待どおりに通信していない 2 つのホストをデバッグする場合、Trusted Extensions と Oracle Solaris のデバッグ用のツールを使用できます。たとえば、snoop や netstat など Oracle Solaris のネットワークデバッグコマンドを使用できます。詳細は、snoop(1M) および netstat(1M) のマニュアルページを参照してください。Trusted Extensions に固有のコマンドについては、Appendix D, Trusted Extensions マニュアルページのリストを参照してください。
ラベル付きゾーンを接続するときの問題については、ゾーンの管理を参照してください。
NFS マウントのデバッグについては、Trusted Extensions でマウントの失敗をトラブルシューティングするを参照してください。
始める前に
ネットワーク属性値をチェックできる役割で、大域ゾーンにいる必要があります。セキュリティー管理者役割またはシステム管理者役割が、これらの値をチェックできます。ファイルを編集できるのは、root 役割だけです。
# svccfg -s name-service/switch listprop config config/value_authorization astring solaris.smf.value.name-service.switch config/default astring ldap ... config/tnrhtp astring "files ldap" config/tnrhdb astring "files ldap"
# svccfg -s name-service/switch setprop config/tnrhtp="files ldap" # svccfg -s name-service/switch setprop config/tnrhdb="files ldap"
# svcadm restart name-service/switch
コマンド行を使用してネットワーク情報が正しいことを確認します。各ホストの割り当てがネットワーク上のほかのホストの割り当てと一致していることを確認します。必要な表示形式に応じて tncfg コマンド、tninfo コマンド、txzonemgr GUI のいずれかを使用します。
tninfo -t コマンドは、ラベルを文字列形式と 16 進形式で表示します。
# 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
tncfg -t コマンドは、ラベルを文字列形式で表示し、割り当てられているホストを一覧表示します。
# tncfg -t template info name=<template-name> host_type=<one of cipso or unlabeled> doi=1 min_label=<minimum-label> max_label=<maximum-label> host=127.0.0.1/32 /** Localhost **/ host=192.168.1.2/32 /** LDAP server **/ host=192.168.1.22/32 /** Gateway to LDAP server **/ host=192.168.113.0/24 /** Additional network **/ host=192.168.113.100/25 /** Additional network **/ host=2001:a08:3903:200::0/56/** Additional network **/
tninfo -h コマンドは、指定されたホストの IP アドレスと、そのホストに割り当てられたセキュリティーテンプレートの名前を表示します。
# tninfo -h hostname IP Address: IP-address Template: template-name
tncfg get host= コマンドは、指定されたホストを定義するセキュリティーテンプレートの名前を表示します。
# tncfg get host=hostname|IP-address[/prefix] template-name
tncfg -z コマンドは、MLP を 1 行に 1 つずつ一覧表示します。
# tncfg -z zone-name info [mlp_private | mlp_shared] mlp_private=<port/protocol-that-is-specific-to-this-zone-only> mlp_shared=<port/protocol-that-the-zone-shares-with-other-zones>
tninfo -m コマンドは、1 行目にプライベート MLP を、2 行目に共有 MLP をそれぞれ表示します。各 MLP はセミコロンで区切られます。
# tninfo -m zone-name private: ports-that-are-specific-to-this-zone-only shared: ports-that-the-zone-shares-with-other-zones
MLP を GUI で表示するには、txzonemgr コマンドを使用します。ゾーンをダブルクリックしたあと、「マルチレベルポートを構成」を選択します。
たとえば次の出力は、テンプレート名 internal_cipso が未定義であることを示しています。
# tnchkdb checking /etc/security/tsol/tnrhtp ... checking /etc/security/tsol/tnrhdb ... tnchkdb: unknown template name: internal_cipso at line 49 tnchkdb: unknown template name: internal_cipso at line 50 tnchkdb: unknown template name: internal_cipso at line 51 checking /etc/security/tsol/tnzonecfg ...
このエラーから、internal_cipso セキュリティーテンプレートの作成や割り当てを行うときに、tncfg コマンドや txzonemgr コマンドが使用されなかったことがわかります。
修復するには、tnrhdb ファイルを元のファイルで置き換えたあと、tncfg コマンドを使用してセキュリティーテンプレートの作成や割り当てを行います。
ブート時に、キャッシュにデータベース情報が生成されます。SMF サービス name-service/switch によって、カーネルへのデータ設定時にローカルデータベースと LDAP データベースのどちらが使用されるかが決まります。
# route get [ip] -secattr sl=label,doi=integer
詳しくは、route(1M) のマニュアルページを参照してください。
# snoop -v
–v オプションを使用すると、ラベル情報などパケットヘッダーの詳細が表示されます。このコマンドでは多くの情報が表示されるため、コマンドで調べられるパケットを制限できます。詳細は、snoop(1M) のマニュアルページを参照してください。
# netstat -aR
–aR オプションを使用すると、ソケットの拡張セキュリティー属性が表示されます。
# netstat -rR
–rR オプションを使用すると、ルーティングテーブルのエントリが表示されます。詳しくは、netstat(1M) のマニュアルページを参照してください。