32.3. SELinux ユーザーの IdM ユーザーへのマッピング

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

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 コマンドを使うと、すべての情報があるルールを 1 度で作成できます。selinuxusermap-add-user および selinuxusermap-add-host のコマンドを使用すると、ルール作成後にユーザーとホストをそれぞれ追加できます。

例32.3 新規 SELinux マップの作成

--selinuxuser の値は、IdM サーバー設定で表示される SELinux ユーザー名と全く同一にする必要があります。SELinux ユーザーの形式は、SELinux_user:MLS[:MCS] となります。
SELinux のマッピングが有効になるには、ユーザー、またはユーザーグループ、ホスト、またはホストグループを指定する必要があります。ユーザー、ホスト、およびグループのオプションは複数回使用するか、--option={val1,val2,val3} のように中括弧内でコンマ区切りにして 1 回の使用とすることができます。
[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マッピングからの削除

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