第24章 ポリシー: SELinux ユーザーマップの定義
Security-enhanced Linux (SELinux) は、システムユーザーがどのプロセス、ファイル、ディレクトリー、およびシステム設定にアクセスできるかを指定するルールを設定します。システム管理者とシステムアプリケーションの両方が、ユーザーアクセス (他のアプリケーションからのアクセスも) を制限または許可るす セキュリティーコンテキストを定義することができます。
Identity Managemen ドメインでの集中化されたセキュリティーポリシー定義の一部として、Identity Management は ldM ユーザーを (既存の) SELinux ユーザーコンテキストにマッピングして、定義された SELinux ポリシーに基づいてホストごとに ldM ドメイン内のクライアントおよびサービスへのアクセスを許可もしくは制限します。
24.1. Identity Management、SELinux、およびユーザーのマッピング
注記
Identity Management は、システムで SELinux コンテキストを作成または変更しません。代わりに、既存のコンテキストをベースとして使用し、ドメイン内の IdM ユーザーをシステム上の SELinux ユーザーにマッピングします。
セキュリティーが強化した Linux は、システム上のその他のリソースとユーザー、プロセス、アプリケーションが対話する仕組みに必須のアクセスコントロールであるカーネルレベルを定義します。これらの対話ルール (contexts) は、システム上の異なるオブジェクトのデータおよび動作の特性を確認し、特定のオブジェクトのセキュリティーへの影響に基づいて ポリシー と呼ばれるルールを設定します。これは、主に、データの重大度や評価動作を考慮せずに、ファイルの所有権とユーザーアイデンティティに関して関係する高レベルのアクセス制御とは対照的です。システム上のすべてのリソース (ユーザー、アプリケーション、ファイル、プロセス) にはコンテキストが割り当てられます。
システムユーザーが、SELinux ロール に関連付けられます。ロールには、マルチレイヤーセキュリティーコンテキスト (MCS) の両方が割り当てられます。MLS/MCS コンテキストは、システムでアクセスできるプロセス、ファイル、および操作に対して、ユーザーを 制限 します。
図24.1 SELinux Manager の SELinux ユーザー
これは、Red Hat Enterprise Linux 6 Security-Enhanced Linux で詳細に説明されています。
SELinux のユーザーとポリシーは、ネットワークレベルではなく、システムレベルで機能します。つまり、SELinux ユーザーは、各システムで個別に設定されます。これは多くの状況で許容されますが、SELinux には定義されているシステムユーザーがあり、SELinux 対応のサービスは独自のポリシーを定義します。ローカルリソースにアクセスするリモートユーザーおよびシステムを処理する際に問題があります。リモートユーザーとサービスは、実際の SELinux ユーザーとロールについて多くの情報なしに、デフォルトのゲストコンテキストにシャッフルされます。
これは、Identity Management が ID ドメインをローカルの SELinux サービスにクリーンに統合する方法です。Identity Management は、IdM ユーザーを、ホストごと に設定した SELinux ロールにマッピングできます。SELinux および IdM ユーザーのマッピングにより、ユーザー管理が改善されます。
- リモートユーザーは、自身の IdM グループ割り当てに基づいて、適切な SELinux ユーザーコンテキストが付与されます。これにより管理者は、ローカルアカウントを作成したり SELinux を再構築することなく一貫して同じポリシーを同じユーザーに適用することもできるようになります。
- ホストが IT 環境に追加されるか、またはローカルシステムを編集しなくても、ユーザーが追加、削除、または変更されると、SELinux ユーザーは自動的に更新されます。
- SELinux ポリシーは、IdM ホストベースのアクセス制御ルールのようなドメイン全体のセキュリティーポリシーと関連付けて計画することができます。
- 管理者は環境全体にわたる可視性を持ち、SELinux でユーザーやシステムが割り当てられる方法を制御します。
SELinux ユーザーマップは、システムの SELinux ユーザー、IdM ユーザー、および IdM ホストの 3 つの部分で構成されます。これらは、2 つの異なる関係を定義します。まず、特定のホスト (ローカルまたはターゲットシステム) の SELinux ユーザーのマップを定義します。次に、SELinux ユーザーと IdM ユーザーのマップを定義します。
この組み合わせにより、管理者はアクセスするホストによって、同一の IdM ユーザーに異なる SELinux ユーザーを設定することが可能になります。
SELinux ユーザーマップは、System Security Services Daemon (SSSD) および
pam_selinux
モジュールと機能します。リモートユーザーがマシンにログインを試みると、SSSD はその IdM ID プロバイダーをチェックして、SELinux マップを含むユーザー情報を収集します。すると PAM モジュールはこのユーザーを処理し、適切な SELinux ユーザーコンテキストを割り当てます。
SELinux のマッピングルールの中核となるのは、SELinux システムユーザーです。各マップは、最初に SELinux ユーザーに関連付けられます。マッピングに利用できる SELinux ユーザーは、IdM ユーザーで設定されます。そのため、中央のユニバーサルなリストがあります。これらは、IdM ドメインのすべてのホストに設定されている SELinux ユーザーです。デフォルトでは、共通の SELinux ユーザーを 5 つ定義しています。
- unconfined_u (IdM ユーザーのデフォルトとしても使用されます)
- guest_u
- xguest_u
- user_u
- staff_u
IdM サーバー設定で、各 SELinux ユーザーはユーザー名とその MLS/MCS 範囲である SELinux_username:MLS[:MCS] の両方で設定されています。この形式は、マップを設定する際に SELinux ユーザーを識別するために使用されます。
IdM のユーザーおよびグループの設定は柔軟性が非常に高くなります。ユーザーとホストは、明示的かつ個別に SELinux ユーザーマップに割り当てることができます。また、ユーザーグループもしくはホストグループを明示的にマップに割り当てることもできます。
ホストベースのアクセス制御ルールを使用すると、追加のセキュリティー層を使用できます。ホストベースのアクセス制御ルールがユーザーとホストを定義する限り、SELinux ユーザーマップに使用することができます。(「22章ポリシー: ホストベースのアクセス制御の設定」で説明しているように) ホストベースのアクセス制御ルールは、SELinux ユーザーマップと IdM 内の他のアクセス制御の統合に役立ち、ローカルセキュリティーのコンテキストを定義するほか、リモートユーザーにおけるホストベースのユーザーアクセスの制限や許可にも役立ちます。
注記
ホストベースのアクセス制御ルールが SELinux ユーザーマップに関連付けられている場合、このルールが SELinux ユーザーマップ設定から除かれるまで削除することはできません。