3.7. 在 SELinux 中限制常规用户
您可以通过将系统映射到 user_u
SELinux 用户来限制系统中的所有常规用户。
默认情况下,Red Hat Enterprise Linux 中的所有 Linux 用户(包括管理权限的用户)都会映射到无限制的 SELinux 用户 unconfined_u
。您可以通过将用户分配给受 SELinux 限制的用户来提高系统安全性。这对遵守 V-71971 安全技术实施指南非常有用。
步骤
显示 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 *
将
__default__
用户(表示没有显式映射的所有用户)映射到user_u
SELinux 用户:# semanage login -m -s user_u -r s0 __default__
验证
检查
__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 *
验证新用户的进程在
user_u:user_r:user_t:s0
SELinux 上下文中运行。创建一个新用户:
# adduser <example_user>
为
<example_user>
定义一个密码:# passwd <example_user>
-
注销
root
,然后以新用户身份登录。 显示用户 ID 的安全上下文:
[<example_user>@localhost ~]$ id -Z user_u:user_r:user_t:s0
显示用户当前进程的安全上下文:
[<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