第47章 SELinux ユーザーマップの定義
IdM における SELinux ユーザーマップの仕組み、Security-Enhanced Linux (SELinux) ユーザーマップの順序とデフォルト値の設定方法、および IdM Web UI または IdM CLI を使用して Identity Management (IdM) ユーザーを SELinux ユーザーにマッピングする方法について説明します。
47.1. SELinux コンテキストと Identity Management リンクのコピーリンクがクリップボードにコピーされました!
Security-Enhanced 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 キャッシングにより、オフライン時でもマッピングが機能します。