selinux的实际应用

Atu*_*tul 2 selinux

我见过的几乎所有教程和大多数系统似乎都禁用了 selinux。现实世界中是否有 selinux 安全的实际实现?

Hax*_*iel 5

SELinux 是强制访问控制的一种形式,其中使用一组标签来控制进程可以做什么或不能做什么。Linux 上涉及ugo权限的默认访问控制方法是自由决定的——它让用户自行决定实际确定哪些权限应该去哪里。使用 SELinux 的强制访问控制的一个“问题”是应用程序有时会拒绝按您希望的方式工作,原因显然很神秘。

我们以rsyslog守护进程为例。下面的目录和文件/var/log有正确的 SELinux 标签可以使用rsyslog。但是,如果您尝试在系统的其他位置定义日志文件,例如/optrsyslog将无法写入该文件,因为该文件上的 SELinux 上下文错误。由于访问控制是强制性的,即使您777在新日志文件上设置权限,也会发生这种情况。在这种特定情况下,可以使用chcon. 但是等等,这些上下文将在下一次重新标记文件系统时丢失。所以你真正需要的是semanage fcontext.

正如我试图用上面的例子说明的那样,SELinux 具有很强的学习曲线。即使您了解了其工作原理的基础知识,您仍然需要使用大量命令(semanagesestatussealertchconrestoreconaudit2allow)来实现预期的结果。即便如此,文档有时也会让您对自己出错的地方感到困惑。

鉴于实际使用 SELinux 的挑战,大多数人只是发现禁用它是一个更方便的选择。事实上,U&L 上 SELinux 标签下投票最高的问题是关于禁用 SELinux。

还有一点需要注意的是,与 Red Hat 相关的发行版启用了 SELinux(Fedora、RHEL 及其衍生产品)。这些系统附带的 SELinux 策略已经足够好,以至于很多人通常不会注意到他们系统上运行的 SELinux。