RedHat 和 CetOS 中的 SELinux 是什么?你应该禁用它吗?
本教程展示如何在 CentOS 和其他 Linux 发行版中禁用 SELinux。您还将了解什么是 SELinux 以及为什么应尽量避免禁用它的基本信息。
如果您已经了解 SELinux 并且完全了解禁用它会遇到的风险,请按照以下步骤操作。
打开配置文件/etc/selinux/config或其符号链接/etc/sysconfig/selinux。
将行从 SELINUX=enforcing 更改为 SELINUX=disabled
重新启动系统或使用setenforce 0立即调用更改。
阅读本文,了解有关什么是 SELinux、如何禁用 SELinux 以及为什么禁用 SELinux 并不总是一个好主意的更多详细信息。
什么是 SELinux?
SELinux 代表安全增强型 Linux。它是一种标记机制,可为系统中的文件和其他对象提供高度安全性,使其免受未经授权的进程以及没有或不需要此类访问权限的授权进程的影响,以避免误用。
人们可以在任何现有的 Linux 系统中安装 SELinux。这种用法并不对所有个人用户都有用,但对服务器系统至关重要。
它的安全刚性可以通过以下事实来理解:使用 SELinux,根拥有的进程即使被黑客攻击也无法访问未授予访问权限的文件。
SELinux 是如何工作的?
每当进程需要访问文件或对象时,SELinux 都会强制执行内核将遵循的访问策略。根据该策略,每个文件或进程都被分配一个标签。因此,当带有标签 a:a:a 的进程需要访问文件(带有标签 b:b:b)时,两者都应该匹配(MLS 配置除外,其中将根据策略遵循层次结构)。
在此处和此处阅读有关标签的更多信息。
请注意,在服务器中禁用 SELinux 会给系统带来很多威胁。确保您这样做既不是为了方便,也不是出于文章中推测的内容,而是有正当理由。
禁用 SE Linux 的缺点
禁用 SELinux 后,每个进程都可以像普通 Linux 系统中一样访问文件。滥用权利是无法防止的。被黑客攻击的进程可以访问其原始目的不需要的秘密文件,并且可能会被滥用。这是一个严重的问题。
如果具有 root 权限的进程受到损害,则整个系统都将面临风险。 SELinux提供的是更严格的安全性。在此了解有关风险的更多信息。
如果 SELinux 是一项安全功能,为什么要禁用它呢?
因为极端的安全功能通常会成为一种痛苦。 SELinux 也是如此。
因为它对哪些进程可以访问哪些文件过于严格,所以您将很难让各种服务在您的服务器上正常工作。
例如,如果 /var/lib 中的文件归 root 所有且文件权限为 000,则需要这些文件的程序将无法运行。
此外,当您调试应用程序时,SELinux 也会变得很痛苦。禁用它可以让您省去麻烦。
提示:在 SELinux 中使用宽松模式
相对更好的做法是在部署应用程序或调试问题之前将 SELinux 置于宽容模式,然后再次启用它。
宽容模式的工作方式就像 SELinux 被禁用一样,但同时,它会像启用 SELinux 一样记录日志。
这样您就可以从 /var/log/messages 日志中了解如果启用 SELinux,您的应用程序会发生什么情况。检查拒绝消息。
请注意,您的系统在宽容模式下不受 SELinux 策略的保护。
在 CentOS 和其他 Linux 发行版中禁用 SELinux
您可以使用以下步骤禁用 SELinux。虽然这些命令是在 CentOS 中测试的,但它应该可以在 Fedora 和 Red Hat Linux 中完美运行。
我认为相同的步骤也应该适用于其他 Linux 发行版。如果没有,请在评论部分告诉我们。
首先,使用 sestatus
命令检查 SELinux 状态。
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
如果 SELinux 已启用且处于强制模式,您可以使用以下步骤禁用它。
第1步:打开配置文件 /etc/selinux/config或其符号链接/etc /sysconfig/selinux
第 2 步:将该行从 SELINUX=enforcing
更改为 SELINUX=disabled
。
第3步:重新启动系统或使用setenforce 0
更改当前会话的SELinux模式,更改将在重新启动时生效。
注意:要将 SELinux 置于宽容模式,请将配置文件更改为 SELINUX=permissive
如何再次启用SELinux?
如前所述,您可能希望在调试问题或部署应用程序后再次启用 SELinux。事实上,暂时禁用 SELinux 或许是最好的主意。
您可以通过恢复之前所做的更改来重新启用 SELinux。
第1步:再次打开/etc/selinux/config或/etc/sysconfig/selinux文件。
第 2 步: 这次将该行更改为 SELINUX=enforcing
第3步:最后,重新启动系统或使用命令setenforce 1立即强制执行SELinux。
我希望我澄清了一些有关 SELinux 的事情,例如宽容模式与强制模式、禁用 SELinux 等。
如果您对改进本文有疑问或建议,请在下面的评论部分告诉我们。还请分享您对禁用 SELinux 的想法。