Menu Close

3.5. 限制常规用户

您可以通过将系统映射到 user_u SELinux 用户来限制系统中的所有常规用户。

默认情况下,Red Hat Enterprise Linux 中的所有 Linux 用户(包括管理权限的用户)都会映射到无限制的 SELinux 用户 unconfined_u。您可以通过将用户分配给受 SELinux 限制的用户来提高系统安全性。这对遵守 V-71971 安全技术实施指南非常有用。

步骤

  1. 显示 SELinux 登录记录列表。这个列表显示了 Linux 用户与 SELinux 用户的映射:

    # semanage login -l
    
    Login Name    SELinux User  MLS/MCS Range   Service
    
    __default__   unconfined_u  s0-s0:c0.c1023       *
    root          unconfined_u  s0-s0:c0.c1023       *
  2. 将 __default__ user(代表所有没有显式映射的用户)映射到 user_u SELinux 用户:

    # semanage login -m -s user_u -r s0 __default__

验证

  1. 检查 __default__ 用户是否已映射到 user_u SELinux 用户:

    # semanage login -l
    
    Login Name    SELinux User   MLS/MCS Range    Service
    
    __default__   user_u         s0               *
    root          unconfined_u   s0-s0:c0.c1023   *
  2. 验证新用户的进程在 user_u:user_r:user_t:s0 SELinux 上下文中运行。

    1. 创建一个新用户:

      # adduser example.user
    2. 定义 example.user 的密码:

      # passwd example.user
    3. 注销 root,然后以新用户身份登录。
    4. 显示用户 ID 的安全上下文:

      [example.user@localhost ~]$ id -Z
      user_u:user_r:user_t:s0
    5. 显示用户当前进程的安全上下文:

      [example.user@localhost ~]$ ps axZ
      LABEL                           PID TTY      STAT   TIME COMMAND
      -                                 1 ?        Ss     0:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
      -                              3729 ?        S      0:00 (sd-pam)
      user_u:user_r:user_t:s0        3907 ?        Ss     0:00 /usr/lib/systemd/systemd --user
      -                              3911 ?        S      0:00 (sd-pam)
      user_u:user_r:user_t:s0        3918 ?        S      0:00 sshd: example.user@pts/0
      user_u:user_r:user_t:s0        3922 pts/0    Ss     0:00 -bash
      user_u:user_r:user_dbusd_t:s0  3969 ?        Ssl    0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
      user_u:user_r:user_t:s0        3971 pts/0    R+     0:00 ps axZ