Red Hat Training

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

32.3. SELinux ユーザーおよび IdM ユーザーのマッピング

SELinux マップは、ローカルシステム上の SELinux ユーザーコンテキストをドメイン内の 単一または複数の IdM ユーザーに関連付けます。SELinux マップは、SELinux ユーザーコンテキストと IdM ユーザー/ホストのペアという 3 つの部分で設定されています。この ldM ユーザー/ホストのペアは、以下のいずれかの方法で定義できます。明示的なホストまたはホストグループ上の明示的なユーザーまたはユーザーグループに設定するか、ホストベースのアクセス制御ルールを使用して定義できます。

32.3.1. Web UI での設定

  1. トップメニューで Policy メインタブをクリックし、SELinux User Mappings サブタブをクリックします。
  2. マッピングのリストで Add をクリックして新規マップを作成します。
  3. マップ名と SELinux ユーザー名を入力します。SELinux ユーザーの形式は、IdM サーバー設定での表示と同じである必要があります。SELinux ユーザーの形式は、SELinux_user:MLS[:MCS] です。
  4. Add and Edit をクリックして、IdM ユーザー情報を追加します。
  5. ホストベースのアクセス制御ルールを設定するには、設定の General エリアでドロップダウンメニューからルールを選択します。ホストベースのアクセス制御ルールを使用すると、リモートユーザーがターゲットマシンにアクセスする際に使用するホストでアクセス制御が導入されます。割り当て可能なホストベースのアクセス制御ルールは、1 つのみです。
    注記
    ホストベースのアクセス制御ルールには、サービスだけでなく、ユーザーとホストも含める必要があります。
    別の方法では、UsersHosts のエリアでスクロールダウンし、Add をクリックしてユーザー、ユーザーグループ、ホスト、もしくはホストグループを SELinux マップに割り当てます。
    左側のユーザー (またはホストもしくはグループ) を選択し、右矢印 >> をクリックして Prospective コラムに移動します。Add をクリックして、それらをルールに追加します。
    注記
    オプションは 1 つのみ使用できます。ホストベースのアクセス制御ルールを指定するか、ユーザーおよびホストを手動で設定できます。両方のオプションを同時に使用することはできません。
  6. 上部の Update リンクをクリックして、SELinux ユーザーマップへの変更を保存します。

32.3.2. コマンドラインでの設定

SELinux マップルールには、以下の 3 つの基礎的部分があります。
  • SELinux ユーザー (--selinuxuser)
  • SELinux ユーザーに関連付けられたユーザーもしくはユーザーグループ (--users または --groups)
  • SELinux ユーザーと関連づけられたホストまたはホストグループ (--hosts または --hostgroups)
  • 代替方法として、ホストおよびユーザーを指定しているホストベースのアクセス制御ルール (--hbacrule):
ルールは、selinuxusermap-add コマンドを使用して、すべての情報を一度に追加できます。ユーザーとホストは、selinuxusermap-add-user および selinuxusermap-add-host コマンドを使用してそれぞれ作成した後にルールに追加できます。

例32.3 新規 SELinux マップの作成

この --selinuxuser 値は、IdM サーバー設定に表示されているとおりに SELinux ユーザー名である必要があります。SELinux ユーザーの形式は、SELinux_user:MLS[:MCS] です。
SELinux マッピングを有効にするには、ユーザー、ユーザーグループ、およびホストグループを指定する必要があります。user オプション、host オプション、および group オプションは、複数回使用することも、--option={val1,val2,val3} などのように、一度にまとめて、中括弧で囲んだコンマ区切りにして使用することもできます。
[user1@server ~]$ ipa selinuxusermap-add --selinuxuser="xguest_u:s0" selinux1
[user1@server ~]$ ipa selinuxusermap-add-user --users=user1 --users=user2 --users=user3 selinux1
[user1@server ~]$ ipa selinuxusermap-add-host --hosts=server.example.com --hosts=test.example.com selinux1

例32.4 ホストベースのアクセス制御ルールでの SELinux マップ作成

--hbacrule 値は、マッピングに使用するホストベースのアクセス制御ルールを識別します。また、リモートユーザーがターゲットマシンにログインすると、SELinux コンテキストが適用されます。
アクセス制御ルールでユーザーとホストの両方が適切に指定されると、SELinux マップは SELinux ユーザー、IdM ユーザー、およびホストの 3 つを構築できます。
指定可能なホストベースのアクセス制御ルールは、1 つのみです。
[user1@server ~]$ ipa selinuxusermap-add --hbacrule=webserver --selinuxuser="xguest_u:s0" selinux1
ホストベースのアクセス制御ルールは、31章ホストベースのアクセス制御の設定で説明しています。

例32.5 ユーザーを SELinux マッピングに追加する

ユーザーおよびホストは、既存のマップに追加できます。これは、selinuxusermap-add-user または selinuxusermap-add-host など、特定のコマンドを使用して行われます。
[user1@server ~]$ ipa selinuxusermap-add-user --users=user1 selinux1
selinuxusermap-mod コマンドに --hbacrule オプションを指定して、既存の SELinux マップを変更すると、新しい SELinux マップにより、以前の SELinux マップが上書きされます。

例32.6 ユーザーの SELinux マッピングからの削除

特定のユーザーまたはホストは、selinuxusermap-remove-host または selinuxusermap-remove-user コマンドを使用して SELinux マップから削除できます。以下に例を示します。
[user1@server ~]$ ipa selinuxusermap-remove-user --users=user2 selinux1