Red Hat Training

A Red Hat training course is available for RHEL 8

3.8. sysadm_u にマッピングして管理者を制限する

SELinux ユーザー sysadm_u に直接マッピングすることで、管理者権限を持つユーザーを制限できます。ユーザーがログインすると、セッションは SELinux コンテキスト sysadm_u:sysadm_r:sysadm_t で実行されます。

デフォルトでは、管理者権限を持つユーザーを含め、Red Hat Enterprise Linux のすべての Linux ユーザーは、制限のない SELinux ユーザー unconfined_u にマッピングされます。SELinux の制限のあるユーザーにユーザーを割り当てることで、システムのセキュリティーを強化できます。これは、V-71971 Security Technical Implementation Guide に準拠するのに役立ちます。

前提条件

  • root ユーザーは制限なしで実行します。これは、Red Hat Enterprise Linux のデフォルトです。

手順

  1. 必要に応じて、sysadm_u ユーザーが SSH を使用してシステムに接続できるようにするには、次のコマンドを実行します。

    # setsebool -P ssh_sysadm_login on
  2. 新しいユーザーまたは既存のユーザーを sysadm_u SELinux ユーザーにマップします。

    • 新しいユーザーをマップするには、wheel ユーザーグループに新しいユーザーを追加し、そのユーザーを sysadm_u SELinux ユーザーにマップします。

      # adduser -G wheel -Z sysadm_u <example_user>
    • 既存のユーザーをマップするには、ユーザーを wheel ユーザーグループに追加し、そのユーザーを sysadm_u SELinux ユーザーにマップします。

      # usermod -G wheel -Z sysadm_u <example_user>
  3. ユーザーのホームディレクトリーのコンテキストを復元します。

    # restorecon -R -F -v /home/<example_user>

検証

  1. <example_user> が、SELinux ユーザー sysadm_u にマッピングされていることを確認します。

    # semanage login -l | grep <example_user>
    <example_user>     sysadm_u    s0-s0:c0.c1023   *
  2. SSH などを使用して <example_user> としてログインし、ユーザーのセキュリティーコンテキストを表示します。

    [<example_user>@localhost ~]$ id -Z
    sysadm_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
  3. root ユーザーに切り替えます。

    $ sudo -i
    [sudo] password for <example_user>:
  4. セキュリティーコンテキストが変更されていないことを確認します。

    # id -Z
    sysadm_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
  5. sshd サービスを再起動するなど、管理タスクを実行します。

    # systemctl restart sshd

    出力がない場合は、コマンドが正常に完了します。

    コマンドが正常に完了しない場合は、以下のメッセージが表示されます。

    Failed to restart sshd.service: Access denied
    See system logs and 'systemctl status sshd.service' for details.