Go to main content

Oracle® Solaris ゾーンの作成と使用

印刷ビューの終了

更新: 2018 年 8 月
 
 

非大域ゾーンが含まれているシステムのセキュリティー対策

Oracle Solaris では、大域ゾーンと非大域ゾーンに同じようなセキュリティー対策を施しています。IPsec と IKE によってネットワークを保護し、権利と監査によってリソースの不正使用を防ぎ、不変ゾーンによって管理のセキュリティーを強化しています。次の各セクションでは、非大域ゾーンへのこれらのセキュリティー機能の実装について説明します。

ゾーン管理者向けの権利プロファイルの概要

root 役割には、すべての管理権利が含まれています。デフォルトでは、大域ゾーン管理者 (root) はすべての非大域ゾーンを管理できます。

セキュリティーのため、root 役割は、信頼できるユーザーが必要な権利だけでゾーンを管理できるように権利を委任するべきです。Oracle Solaris の権利は特権コマンドと承認であり、個々の責任分野の権利プロファイルにまとめられます。Oracle Solaris では、ゾーン向けにいくつかの権利プロファイルを提供しています。

root 役割には、ゾーン内で管理権利を制限する別の方法も含まれています。各非大域ゾーンには admin リソースが含まれています。root では、admin リソース内にユーザー名と必要な承認を指定することで、そのゾーンへのアクセスを制限できます。サイトのセキュリティー対策として責務を分離する必要がある場合、この方法によって root で非大域ゾーンにアクセスできないようにすることが可能です。

root 役割では権利プロファイルをユーザーに直接割り当てることも、管理役割を作成し、権利プロファイルをその役割に割り当てることもできます。ユーザーは役割を割り当てられると、その役割を引き受けてゾーンを管理する必要があります。

root 以外のユーザーへのゾーンを管理する権利の割り当て

    さまざまな理由から、大域ゾーンの管理者はゾーンを管理する権利を選ばれたユーザーに割り振ることが必要になる場合があります。これらの理由には次があります。

  • root がほかの管理操作に専念できるようにするため

  • ゾーンの管理にスペシャリストを割り当てるため

  • 攻撃のエントリポイントの数を減らすため

  • 責務の分離を可能にして root の権限が制限されるようにするため

  • PCI-DSS や HIPAA コンプライアンスなど、サイトのセキュリティー要件を実装するため

ゾーンの管理を委任するために root 役割で割り当てられる権利には、次の権利プロファイルが含まれます。

ゾーンのコールド移行

管理者が installed 状態または suspended 補助状態のゾーンを移行できるようにします。

ゾーンのコールド移行プロファイルを使用して、ゾーン管理者がコールド移行およびウォーム移行を実行できますが、ライブ移行は実行できません。

admin リソースタイプの auths プロパティーが管理対象ゾーンに構成されている場合、この権利プロファイルはゾーンの移行に十分ではありません。さらに、ゾーン管理者が admin リソースタイプの user プロパティーに指定されており、solaris.zone.migrate.cold 承認も割り当てられている必要があります。ログインが制限されている場合、ゾーン管理者に solaris.zone.login 承認も割り当てられている必要があります。

ゾーン構成

管理者がホスト上の任意のゾーン構成を作成、変更、または削除できるようにします。

ゾーン構成権利プロファイルを使用して、ゾーン管理者はゾーンを構成できます。移行されるゾーンでは、ゾーンの構成がまだターゲットシステムに存在していない場合、移行を完了するために、管理者にターゲットシステム上のこの権利プロファイルが付与されている必要があります。ゾーン構成権利プロファイルには、zonecfg コマンドのみが含まれます。

admin リソースタイプの auths プロパティーが管理対象ゾーンに構成されている場合、この権利プロファイルはゾーンの構成に十分ではありません。さらに、ゾーン管理者が admin リソースタイプの user プロパティーに指定されており、solaris.zone.config 承認も割り当てられている必要があります。ログインが制限されている場合、ゾーン管理者に solaris.zone.login 承認も割り当てられている必要があります。

ゾーン管理

管理者が既存のゾーンを管理できるようにします。

ゾーン管理権利プロファイルには、zlogin および zoneadm コマンドが含まれます。

admin リソースタイプの auths プロパティーが管理対象ゾーンに構成されている場合、この権利プロファイルはゾーンの管理に十分ではありません。さらに、ゾーン管理者が admin リソースタイプの user プロパティーに指定されており、ゾーンにログインして管理するために solaris.zone.* 承認も割り当てられている必要があります。

ゾーンの移行

管理者が任意のタイプのゾーンを移行できるようにします。

ゾーン移行権利プロファイルを使用して、ゾーン管理者はインストール済みまたは実行中のゾーンの移行を実行できます。このプロファイルが割り当てられているゾーン管理者はライブ移行、ウォーム移行、またはコールド移行を実行できます。ゾーン移行権利プロファイルには、zoneadm および zonecfg コマンドが含まれます。

admin リソースの auths プロパティーが管理対象ゾーンに構成されている場合、この権利プロファイルはゾーンの移行に十分ではありません。さらに、ゾーン管理者が admin リソースに user として指定されており、solaris.zone.migrate 承認も割り当てられている必要があります。ログインが制限されている場合、ゾーン管理者に solaris.zone.login 承認も割り当てられている必要があります。

ゾーンのセキュリティー

管理者がホスト上に、Trusted Extensions で構成されたゾーンを含む任意のゾーン構成を作成、変更、または削除できるようにします。

ゾーンセキュリティー権利プロファイルには、zonecfg または txzonemgr コマンドとすべての solaris.zone.* 承認が含まれます。割り当て対象者はゾーン管理を委任できます。txzonemgr については、Trusted Extensions 構成と管理 の Creating Labeled Zonesを参照してください。

admin リソースタイプの auths プロパティーが管理対象ゾーンに構成されている場合、この権利プロファイルはゾーンの作成、ログイン、および構成に十分ではありません。さらに、ゾーン管理者が admin リソースタイプの user プロパティーに指定されており、solaris.zone.* 承認も割り当てられている必要があります。

ゾーンを管理する権利を制限する場合の一般的なコマンド

    権利プロファイルの内容を確認したり、権利プロファイルを割り当てたりするには、次のコマンドを使用します。

  • 権利プロファイルの内容を一覧表示します。

    $ profiles -p "rights-profile-name" info
  • Zone 権利プロファイル内のコマンドに付与されている権利または特権を表示します。

    $ getent exec_attr | grep Zone

    このコマンドでは、「Zone」という語を含む権利プロファイル内の特権コマンドを検索します。

  • 権利プロファイルをユーザーに割り当てます。

    # usermod -K profiles+="rights-profile-name" username

非大域ゾーン内の特権

プロセスは、特権のサブセットに制限されています。特権を制限することで、ほかのゾーンに影響を及ぼす可能性がある操作がゾーンで実行されないようにします。特権セットにより、特権が付与されたユーザーがゾーン内で実行可能な機能が制限されます。

特定のゾーンで利用可能な特権のリストを表示するには、ppriv ユーティリティーを使用します。ゾーン内からは ppriv -l コマンドを使用します。大域ゾーンからは、このコマンドにゾーン名を追加します (ppriv -l zonename)。

次の表に、Oracle Solaris の特権すべて、およびゾーン内での各特権のステータスを示します。省略可能な特権は、デフォルト特権セットの一部ではありませんが、limitpriv プロパティーを使って指定できます。必須の特権が、生成される特権セットに含まれている必要があります。禁止された特権を、生成される特権セットに含めることはできません。

表 1  ゾーン内のオプションの特権
特権
ステータス
注意事項
cpc_cpu
オプション
特定の cpc カウンタへのアクセスを可能にします
dtrace_proc
オプション
fasttrappid、および plockstat プロバイダ用
dtrace_user
オプション
profile および syscall プロバイダ用
file_flag_set
オプション
ファイルを変更できないようにするため
graphics_access
オプション
ioctl による agpgart_io へのアクセスを可能にします
graphics_map
オプション
mmap による agpgart_io へのアクセスを可能にします
proc_clock_highres
オプション
高解像度タイマー用
proc_priocntl
オプション
スケジューリングの制御および priocntl プロバイダ用
sys_ipc_config
オプション
IPC メッセージキューバッファーのサイズを大きくするため
表 2  ゾーン内の禁止された特権
特権
ステータス
注意事項
dtrace_kernel
禁止
現在、未サポート
proc_zone
禁止
現在、未サポート
sys_config
禁止
現在、未サポート
sys_devices
禁止
現在、未サポート
sys_dl_config
禁止
現在、未サポート
sys_linkdir
禁止
現在、未サポート
sys_net_config
禁止
現在、未サポート
sys_res_config
禁止
現在、未サポート
sys_smb
禁止
現在、未サポート
sys_suser_compat
禁止
現在、未サポート
表 3  ゾーン内の必須のデフォルトの特権
特権
ステータス
注意事項
file_read
必須、デフォルト
モード/ACL によってプロセスの読み取り権限が許可されているファイルまたはディレクトリの読み取りに必要
file_write
必須、デフォルト
モード/ACL によってプロセスの書き込み権限が許可されているファイルまたはディレクトリの書き込みに必要
net_access
必須、デフォルト
ネットワークエンドポイントを開くために必要
proc_exec
必須、デフォルト
init の起動に必要
proc_fork
必須、デフォルト
init の起動に必要
sys_flow_config
必須、排他的 IP ゾーンではデフォルト
フローの構成に必要
sys_ip_config
必須、排他的 IP ゾーンではデフォルト
共有 IP ゾーンでは禁止
ゾーンのブートおよび IP ネットワークの初期化に必要
sys_iptun_config
必須、排他的 IP ゾーンではデフォルト
共有 IP ゾーンでは禁止
IP トンネルリンクの構成に必要
sys_mount
必須、デフォルト
必須ファイルシステムのマウントに必要
表 4  ゾーン内のオプションのデフォルトの特権
特権
ステータス
注意事項
cmi_access
デフォルト
CMI セグメントに使用
cmi_owner
デフォルト
CMI セグメントの表示と変更に使用
contract_event
デフォルト
契約ファイルシステムで使用
contract_identity
デフォルト
プロセス契約テンプレートのサービス FMRI の設定用
contract_observer
デフォルト
UID に依存しない契約観察に使用
file_audit
デフォルト
ファイル単位の監査用
file_chown
デフォルト
ファイル所有権の変更用
file_chown_self
デフォルト
所有するファイルの所有者/グループの変更用
file_dac_execute
デフォルト
モード/ACL に依存しない実行アクセス用
file_dac_read
デフォルト
モード/ACL に依存しない読み取りアクセス用
file_dac_search
デフォルト
モード/ACL に依存しない検索アクセス用
file_dac_write
デフォルト
モード/ACL に依存しない書き込みアクセス用
file_link_any
デフォルト
所有者に依存しないリンクの設定用
file_owner
デフォルト
所有者に依存しない other によるアクセス用
file_setid
デフォルト
setidsetgidsetuid ファイルの権限の変更用
ipc_dac_owner
デフォルト
モードに依存しない IPC 書き込みアクセス用
ipc_dac_read
デフォルト
モードに依存しない IPC 読み取りアクセス用
ipc_dac_write
デフォルト
モードに依存しない IPC 書き込み権限用
ipc_owner
デフォルト
モードに依存しない other によるアクセス用
kstat_manage
デフォルト
kstats の管理用
kstat_rd_sensitive
デフォルト
機密性の高い kstats の読み取りを許可します
net_icmpaccess
デフォルト
ICMP パケットアクセス (ping) 用
net_observability
デフォルト
ネットワークトラフィックの受信用 (トラフィックの送信は禁止されています)
net_rawaccess
排他的 IP ゾーンではデフォルト
raw PF_INET/PF_INET6 パケットアクセスを許可します
proc_audit
デフォルト
監査レコードの生成用
proc_chroot
デフォルト
root ディレクトリの変更用
proc_info
デフォルト
プロセスの検査を許可します
proc_lock_memory
デフォルト
メモリーのロック用 (shmctl および mlock)
ゾーンに割り当てられている場合は、ゾーンがすべてのメモリーをロックするのを防ぐために zone.max-locked-memory リソース制御の設定も検討してください。
proc_owner
デフォルト
所有者に依存しないプロセス制御用
proc_session
デフォルト
セッションに依存しないプロセス制御用
proc_setid
デフォルト
ユーザー/グループ ID の任意設定を許可します
proc_taskid
デフォルト
呼び出し元へのタスク ID の割り当てを許可します
sys_acct
デフォルト
アカウンティングの管理用
sys_admin
デフォルト
単純なシステム管理タスク用
sys_audit
デフォルト
監査の管理用
sys_nfs
デフォルト
NFS クライアントのサポート用
sys_ppp_config
排他的 IP ゾーンではデフォルト
共有 IP ゾーンでは禁止
PPP (sppp) インタフェースの作成および削除用、PPP トンネル (sppptun) の構成用
sys_resource
デフォルト
リソース制限の変更用
sys_share
デフォルト
ファイルシステムの共有に必要。割り当てられていない場合、ゾーン内での NFS 共有は禁止されます。
sys_time
デフォルト
ゾーンの時間の設定用 (xntp)

次の表に、Oracle Solaris Trusted Extensions の特権すべて、および各特権のゾーン内のステータスを示します。省略可能な特権は、デフォルト特権セットの一部ではありませんが、limitpriv プロパティーを使って指定できます。


注 -  Trusted Extensions の特権が解釈されるのは、システムが Trusted Extensions を使って構成されている場合だけです。
表 5  ゾーン内での Oracle Solaris Trusted Extensions の特権のステータス
Trusted Extensions の特権
ステータス
注意事項
file_downgrade_sl
オプション
高いラベルから低いラベルへのファイルのダウングレードを可能にします
file_upgrade_sl
オプション
高いラベルへのファイルのアップグレードを可能にします
net_bindmlp
デフォルト
マルチレベルポート (MLP) へのバインドを可能にします
net_mac_aware
デフォルト
NFS を使用した読み取りの可能にします
sys_trans_label
オプション
プロセスのラベルの範囲外にあるラベルの変換を可能にします

非大域ゾーンで利用できる特権を変更する場合は、ゾーンの特権を変更する方法を参照してください。

特権の詳細は、ppriv(1) のマニュアルページおよびOracle Solaris 11.4 でのユーザーとプロセスのセキュリティー保護 の プロセス権管理を参照してください。

不変ゾーンについて

不変ゾーンは、読み取り専用の root ファイルシステムを持つゾーンです。このゾーンは、非大域ゾーンにも大域ゾーンにもできます。読み取り専用の root では、ゾーンの構成が維持されます。また、実行時環境に追加の制限を加えることにより、ゾーンのセキュアな実行時の境界が拡張されます。保守操作は可能ですが、保守を行うにあたっては、管理者は慎重な手順でゾーンにアクセスする必要があります。システムバイナリまたはシステム構成への変更は、必須書き込みアクセス制御 (MWAC) セキュリティーポリシーによってブロックされます。

MWAC を使用すると、SMF プロパティー file-mac-profile を介してファイルシステム書き込み権限を適用できます。MWAC セキュリティーポリシーを指定するには、zonecfg コマンドで file-mac-profile 値を変更します。このポリシーはカーネルで適用されます。大域ゾーンは非大域ゾーンの MWAC ポリシーの対象ではないため、大域ゾーンではインストール、イメージの更新、および保守のために非大域ゾーンのファイルシステムに書き込むことができます。

ゾーンが ready 状態になると、MWAC ポリシーがダウンロードされます。このポリシーはゾーンのブート時に有効になります。インストール後のアセンブリと構成を行うには、一時的な書き込み可能ルートファイルシステムのブート処理を使用します。ゾーンの MWAC 構成への変更は、ゾーンをリブートしたときにのみ反映されます。

ゾーン内での IPsec アーキテクチャーの使用

IP データグラムの保護を提供する IPsec (Internet Protocol Security Architecture) は、排他的 IP ゾーン内で使用できます。IPsec については、Securing the Network in Oracle Solaris 11.4 の IPsec Referenceに説明されています。IKE (Internet Key Exchange) プロトコルを使用して、認証および暗号化に必要な鍵材料が自動的に管理されます。

詳細は、ipsecconf(8) および ipseckey(8) のマニュアルページを参照してください。

共有 IP ゾーン内の IP セキュリティーアーキテクチャー

IPsec は、大域ゾーン内で使用できます。ただし、非大域ゾーン内では、IPsec で IKE を使用することはできません。そのため、大域ゾーンで Internet Key Exchange (IKE) プロトコルを使用して、非大域ゾーンの IPsec キーおよび IPSec ポリシーを管理する必要があります。構成中の非大域ゾーンに対応するソースアドレスを使用します。

排他的 IP ゾーン内の IP セキュリティーアーキテクチャー

IPsec は、排他的 IP ゾーン内で使用できます。

ゾーン内での Oracle Solaris 監査の使用

Oracle Solaris 監査はすべてのゾーン内でデフォルトで有効になっています。

    監査には、ゾーンを実行しているシステムでの次の 2 つの監査モデルが用意されています。

  • すべてのゾーンを大域ゾーンから一元的に監査します。このモデルは、すべてのゾーンが大域ゾーンによって管理される場合 (たとえば、ゾーンを使用してサービスの隔離を実現する場合) に使用されます。

  • 各ゾーンを大域ゾーンから独立して監査します。このモデルは、各ゾーンが別々に管理される場合 (たとえば、ゾーンごとにサーバーの統合を実現する場合) に使用されます。