帮助破译audit.log selinux拒绝dbus-daemon DCV

帮助破译audit.log selinux拒绝dbus-daemon DCV

运行 RHEL-8.9 时selinux= enforcing无需在 selinux 中进行任何定制,这是通过 rhel-8.9-x86_64-dvd.iso 进行全新安装的基本设置。

我相信问题源于这样做:

  • semanage login -a -s user_u <username>
  • semanage login -m -S targeted -s "user_u" -r s0 __default__

我们注意到[其他]问题,因此我们通过 Redhat 文章将其回滚,指出semanage login -m -S targeted -s "unconfined_u" -r s0-s0:c0.c1023 __default__

semanage login -l当前显示的内容是从 iso 全新安装 RHEL-8.9 时看到的内容:

Login Name           SELinux User         MLS/MCS Range        Service
__default__          unconfined_u         s0-s0:c0.c1023       *
root                 unconfined_u         s0-s0:c0.c1023       *

在使用 NICE-DCV 时,vnc 客户端与selinux=enforcing用户可以dcv create-session成功执行操作,但是当他们尝试通过 Nice-dcv-client 从 Windows 客户端连接到其会话时,它将失败,并在客户端报告失败的用户名/密码 {这不一定是真的,密码输入正确}。另外值得注意的是,when__default__映射到user_uthen 会导致dcv create-session任何人完全停止工作,因此我们将其全部回滚,然后dcv create-sessionthen 可以工作。

  1. 如果我这样做,setenforce 0那么问题就会立即解决,一切都会正常。
  2. 如果我将用户名放入,wheel:那么/etc/group也可以解决selinux=enforcing.

/var/log/audit/audit.log下面是实际上的一行setenforce 1,它似乎是围绕特别是从 Windows 到 Linux 中现有 dcv 会话失败的连接尝试生成的所有噪音中最相关的一行:

# formatted to multiple lines here for easier reading
node=linux type=USER_AVC msg=audit(): pid=2850 uid=81 auid=4294967295    
subj=system_u:system:r:system_dbusd_t:s0-s0:c0.c0123
msg='avc: denied {send_msg } for msgtype=method_return dest=:1.1072 spid=1 tpid=6521    
    scontext=system_u:system_r:init_t:s0
    tcontext=system_u:system_r:dcvserver_t:s0
    tclass=dbus
    permissive=0
    exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'
UID="dbus"
AUID="unset"
SAUID="dbus"

#  81 is "dbus" in /etc/passwd and /etc/group

任何人都可以理解这一点,除了重新安装 Linux 之外,是否有解决方案来解决此问题(我不能执行 selinux=permissive 或将每个用户放入wheel组)?并能查明造成这种情况的原因吗?我认为这是由于弄乱了 引起的semanage login,因为在另一台从 iso 干净安装 rhel-8.9 的服务器上,具有默认的 selinux=enforcing 布局以及 50+ 用户不在轮子中,这个问题不会发生。

相关内容