第52章 SELinux ユーザーマップの定義
IdM における SELinux ユーザーマップの仕組み、Security-Enhanced Linux (SELinux) ユーザーマップの順序とデフォルト値の設定方法、Web UI または IdM CLI を使用して Identity Management (IdM) ユーザーを SELinux ユーザーにマッピングする方法について学びます。
52.1. SELinux コンテキストと Identity Management リンクのコピーリンクがクリップボードにコピーされました!
セキュリティー強化 Linux (SELinux) のコンテキストとポリシーが各ホスト上に保持され、同時に Identity Management (IdM) がログイン時にドメインユーザーを SELinux ユーザー文字列にマッピングする仕組みを学びましょう。
SELinux は、プロセスがシステムリソースとどのようにやり取りするかを制御するために、カーネルレベルの強制アクセス制御 (MAC) を提供します。プロセスの想定される動作とセキュリティー上の影響に基づいて、管理者とポリシー作成者は セキュリティーコンテキスト を定義します。これらは、システム上のプロセスなどの主体、およびファイル、ソケット、ハードウェアなどのオブジェクトに割り当てられるラベルです。
カーネルは主体 (プロセス) とオブジェクト (ファイルまたはソケット) しか認識しませんが、セキュリティーの連鎖は 人間のアイデンティティー から始まります。ユーザーが IdM 経由でログインすると、そのユーザーのネットワークアカウントが特定の SELinux ユーザーにマッピングされます。このマッピングは橋渡し役を果たし、その人物によって開始されたすべてのプロセスが特定のセキュリティーコンテキストを継承することを保証します。
したがって、人間は単にファイルにアクセスできるだけでなく、人間のアイデンティティーによって SELinux ラベルが決定され、そのラベルによって、そのプロセスがアクセスできるリソースが正確に規定される。管理者、開発者、ゲストなど、異なるグループの人々に異なるコンテキストを割り当てることで、組織は、たとえ人間のセッションが侵害されたとしても、セキュリティー侵害の影響範囲を効果的に最小限に抑えることができる。
IdM は、クライアントシステム上で SELinux のコンテキストやポリシーを作成または変更しません。その代わりに、IdM は、対象ホストにすでに存在するコンテキストと一致する文字列を基準として、ドメイン内の IdM ユーザーをシステム上の SELinux ユーザーにマッピングします。
IdM で SELinux ユーザーマップを作成しても、ホスト上の SELinux ポリシーは変更されません。
-
IdM はホストに新しいセキュリティールールを適用しません。SELinux ポリシーはローカルに留まります。
staff_u がuser_uと比べて何ができるかを定義するルールは、中央の IdM データベースではなく、個々の Linux ホストに保存されます。 システムは、IdM ユーザーを
staff_uなどの SELinux ユーザー文字列にマッピングします。ユーザーがターゲットホストにログインすると、ホストはこの文字列をローカルの SELinux ポリシーに対して評価します。- 文字列がローカルの SELinux ユーザーに一致する場合、ホストは対応する制限を適用します。
- 文字列がローカルの SELinux ユーザーと一致しない場合、ホストはデフォルトの SELinux コンテキストを適用します。
各 SELinux ユーザーは、1 つ以上の SELinux ロールに関連付けられています。このロールには、多層セキュリティー (MLS) コンテキストとマルチカテゴリーセキュリティー (MCS) コンテキストの両方が割り当てられます。MLS および MCS コンテキストは、ユーザーがシステム上の特定のプロセス、ファイル、および操作のみにアクセスできるように制限します。
以下のリストは、システム上で利用可能な SELinux ユーザーと、それらに許可されているロールを対応付けたものです。
Labelling MLS/ MLS/
SELinux User Prefix MCS Level MCS Range SELinux Roles
guest_u user s0 s0 guest_r
root user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r
staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r
sysadm_u user s0 s0-s0:c0.c1023 sysadm_r
system_u user s0 s0-s0:c0.c1023 system_r unconfined_r
unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r
user_u user s0 s0 user_r
xguest_u user s0 s0 xguest_r
SELinux のユーザーマップは、System Security Services Daemon (SSSD) および pam_selinux PAM モジュールと連携して動作します。リモートユーザーがマシンにログインすると、SSSD は IdM アイデンティティープロバイダーに問い合わせて、SELinux マップを含むユーザー情報を取得します。PAM モジュールは、適切な SELinux ユーザーコンテキストを割り当てます。SSSD キャッシングにより、オフライン時でもマッピングが機能します。