Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第32章 SELinux ユーザーマップの定義

Security-enhanced Linux(SELinux)は、システムユーザーがどのプロセス、ファイル、ディレクトリー、およびシステム設定にアクセスできるかを指定するルールを設定します。システム管理者とシステムアプリケーションの両方が、他のアプリケーションからのアクセスを制限または許可するセキュリティーコンテキストを定義することができます
Identity Management ドメインで集中セキュリティーポリシーを定義する一環として、Identity Management は IdM ユーザーを既存の SELinux ユーザーコンテキストにマッピングし、定義された SELinux ポリシーに基づいてホストごとに IdM ドメイン内のクライアントおよびサービスへのアクセスを許可または制限する方法を提供します。

32.1. Identity Management、SELinux、およびユーザーのマッピング

Identity Management は、システムで SELinux コンテキストを作成または変更しません。代わりに、ドメインの IdM ユーザーをシステム上の SELinux ユーザーにマッピングするための基盤として、ターゲットホストで既存のコンテキストに一致する文字列を使用します。
セキュリティーが強化した Linux は、プロセスがシステム上の他のリソースと相互作用できるかについての必須のアクセス制御を定義します。システムのプロセスの予想される動作に基づいて、そのセキュリティーへの影響に基づいて、ポリシーと呼ばれる特定のルールが設定されます。これは、主にファイルの所有権とユーザーアイデンティティーに関連する高レベルのアクセス制御とは対照的です。システム上のすべてのリソースにはコンテキストが割り当てられます。リソースには、ユーザー、アプリケーション、ファイル、プロセスが含まれます。
システムユーザーは、SELinux ロール に関連付けられます。ロールには、マルチレイヤーセキュリティーコンテキスト(MLS)とマルチカテゴリーセキュリティーコンテキスト(MCS)の両方が割り当てられます。MLS および MCS コンテキストは、ユーザーがシステム上の特定のプロセス、ファイル、および操作のみにアクセスできるように制限します。
利用可能な SELinux ユーザーの詳細一覧を取得するには、次のコマンドを実行します。
[root@server1 ~]# semanage user -l

                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 のユーザーとポリシーは、ネットワークレベルではなく、システムレベルで機能します。つまり、SELinux ユーザーは、各システムで個別に設定されます。これは多くの状況で許容されますが、SELinux には定義されているシステムユーザーがあり、SELinux 対応のサービスは独自のポリシーを定義するため、リモートユーザーおよびシステムがローカルリソースにアクセスする場合に問題が発生します。リモートユーザーとサービスは、実際の SELinux ユーザーとロールを把握せずに、デフォルトのゲストコンテキストに割り当てることができます。
Identity Management は、ID ドメインをローカルの SELinux サービスに統合できます。Identity Management は、IdM ユーザーを、ホストごと、ホストグループごと、または HBAC ルールに基づいて、ホストごとに設定した SELinux ロールにマッピングできます。SELinux および IdM ユーザーのマッピングにより、ユーザー管理が改善されます。
  • リモートユーザーは、自身の IdM グループ割り当てに基づいて、適切な SELinux ユーザーコンテキストが付与されます。これにより、管理者は、ローカルアカウントを作成したり SELinux を再設定せずに同じポリシーを同じユーザーに適用することもできます。
  • ユーザーに関連付けられた SELinux コンテキストは集中化されています。
  • SELinux ポリシーは、IdM ホストベースのアクセス制御ルールのようなドメイン全体のセキュリティーポリシーと関連付けて計画することができます。
  • 管理者は環境全体にわたる可視性を持ち、SELinux でユーザーとシステムがどのように割り当てられるかを制御します。
SELinux ユーザーマップは、システムの SELinux ユーザー、IdM ユーザー、および IdM ホストという 3 つの部分に存在する関係を 2 つ定義します。まず、SELinux ユーザーマップは SELinux ユーザーと IdM ホスト(ローカルシステムまたはターゲットシステム)の関係を定義します。次に、SELinux ユーザーと IdM ユーザーの間の関係を定義します。
この組み合わせにより、管理者は、アクセスするホストに応じて、同一の IdM ユーザーに異なる SELinux ユーザーを設定できます。
SELinux のマッピングルールの中核となるのは、SELinux システムユーザーです。各マップは、最初に SELinux ユーザーに関連付けられます。マッピングに利用できる SELinux ユーザーは、IdM サーバーに設定されているので、中央のユニバーサルなリストがあります。このようにして、IdM は SELinux ユーザーのセットを定義します。このユーザーが認識し、ログイン時に IdM ユーザーに関連付けることができます。デフォルトでは、以下の特徴があります。
  • unconfined_u(IdM ユーザーのデフォルトとしても使用されます)
  • guest_u
  • xguest_u
  • user_u
  • staff_u
ただし、このデフォルト一覧は、一元的な IdM SELinux ユーザーリストで、すべてのネイティブ SELinux ユーザーを変更または削除できます 「Identity Management、SELinux、およびユーザーのマッピング」)。
IdM サーバー設定では、各 SELinux ユーザーはユーザー名だけでなく、MLS と MCS 範囲である SELinux_user:MLS[:MCS] のみで設定されます。IPA サーバーはこの形式を使用して、マップの設定時に SELinux ユーザーを特定します。
IdM のユーザーおよびグループの設定は柔軟性が非常に高くなります。ユーザーとホストは、明示的に、SELinux ユーザーマップに個別に割り当てるか、またはユーザーグループまたはホストグループを明示的にマップに割り当てることができます。
また、SELinux マッピングルールをホストベースのアクセス制御ルールに関連付けて、管理が容易になり、2 つの場所で同じルールが重複しないようにし、ルールを同期させることができます。ホストベースのアクセス制御ルールがユーザーとホストを定義する限り、SELinux ユーザーマップにそれを使用できます。ホストベースのアクセス制御ルール( 31章ホストベースのアクセス制御の設定)は、SELinux ユーザーマップと IdM 内の他のアクセス制御の統合に役立ちます。また、リモートユーザーに対するホストベースのユーザーアクセスの制限や許可やローカルセキュリティーコンテキストの定義に役立ちます。
注記
ホストベースのアクセス制御ルールが SELinux ユーザーマップに関連付けられている場合、ホストベースのアクセス制御ルールは、SELinux ユーザーマップ設定から削除されるまで削除できません。
SELinux ユーザーマップは、SSSD(System Security Services Daemon)および pam_selinux モジュールと連携します。リモートユーザーがマシンにログインを試みると、SSSD はその IdM ID プロバイダーをチェックして、SELinux マップを含むユーザー情報を収集します。次に PAM モジュールはユーザーを処理し、適切な SELinux ユーザーコンテキストを割り当てます。SSSD キャッシュを使用すると、マッピングがオフラインで動作できるようになります。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。