我正在尝试学习 SELinux 并阅读 RHEL 7 的 Red Hat 文档。我偶然发现了多层安全性(MLS)的文档并想尝试一下,因此我设置了 SELINUXTYPE=mls 和 SELINUX=permissive ,触摸了 /.autorelabel (在其中回显了 -F )并重新启动。
我能够登录,但想检查审计日志以确保没有发生任何故障或拒绝,从而阻止我使用强制模式登录。我发现了以下内容:
type=AVC msg=audit(1457127380.826:208): avc: denied { dyntransition } for pid=2109 comm="sshd" scontext=system_u:system_r:sshd_t:s0-s15:c0.c1023 tcontext=root:sysadm_r:sysadm_t:s0 tclass=process
所以,我认为没什么可担心的(仍在学习),所以我将 SELINUX 设置为强制执行并重新启动。把自己锁在外面了!
我能够通过一些黑客攻击重新进入并将 SELINUX 重新设置为宽容,但我不确定为什么它不起作用......
我已尝试 restorecon /usr/sbin/sshd 并且它确实具有正确的上下文:
ls -Z /usr/sbin/sshd
-rwxr-xr-x. root root system_u:object_r:sshd_exec_t:s0 /usr/sbin/sshd
但是如果你看一下错误中的 tcontect,它很奇怪:
tcontext=root:sysadm_r:sysadm_t:s0
无论如何,正如我所说的,我仍在学习,所以任何建议都会有帮助...如果能提供文档来解释任何示例或解决方案,我将不胜感激 - “授人以鱼不如授人以渔...”
非常感谢!乔
答案1
看起来root
不允许在 MLS 系统上直接通过 ssh 登录。
您需要以staff_t
用户身份通过 ssh 登录,然后sudo
以 root 身份登录。