开启或关闭SELinux

SELinux是Linux内核的安全子系统,通过严格的访问控制机制增强系统安全性。一般情况下,建议开启SELinux来限制进程的权限,防止恶意程序通过提权等方式对系统进行攻击;然而,由于SELinux的严格访问控制机制,可能会导致一些应用程序或服务无法启动,因此在特定情况下(如开发、调试等),需暂时关闭SELinux。

说明

关于SELinux的工作原理和详细说明,请参见什么是SELinux?

操作须知

本教程以下述镜像版本为例,介绍如何开启和关闭SELinux。

  • Alibaba Cloud Linux 3.2104 LTS 64位

  • CentOS 7.6 64位

说明

如果您使用的是其他Linux发行版,如Fedora、RHEL 9、Debian或Ubuntu等,请参照各自的官方文档或社区指南进行操作。不同的Linux发行版可能会有不同的配置方法和工具。您可以访问相应操作系统的官方网站或查阅社区论坛获取针对特定版本的详细指导。

开启SELinux

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 运行以下命令,查看SELinux状态。

    sestatus

    若系统返回的参数信息SELinux status显示为disabled,则表示SELinux已关闭。image.png

  3. 在ECS实例上运行以下命令,编辑SELinux的config文件。

    sudo vi /etc/selinux/config
  4. 找到SELINUX=disabled字段,按i进入编辑模式,通过修改该参数取值来开启SELinux。

    您可以根据实际需求自行调整参数取值来选择启用SELinux的其中一种模式 :

    模式

    参数取值

    说明

    强制执行模式

    SELINUX=enforcing

    表示所有违反安全策略的行为都将被禁止。

    宽容模式

    SELINUX=permissive

    表示所有违反安全策略的行为不被禁止,但会在日志中做记录。

    SELINUX状态

  5. 修改完成后,按Esc键退出编辑模式,输入:wq后按下回车键,保存并退出文件。

    重要

    完成修改config文件后,需要重启ECS实例使配置生效,但直接重启实例将会出现系统无法启动的错误。因此,在重启之前需要在根目录下新建autorelabel文件,以避免出现该问题。

  6. 执行以下命令,在根目录下新建隐藏文件autorelabel

    sudo touch /.autorelabel
  7. 重启ECS实例。具体操作,请参见重启实例

    说明

    在ECS实例重启过程中,SELinux将自动执行系统文件的重新标记操作。请注意,重新标记系统文件是一个全面的扫描过程,具体时长取决于系统文件的数量和大小。建议您在重启实例后,预留适当的时间,以便该过程能够完整地进行,确保文件安全设置的正确性。

关闭SELinux

重要

关闭SELinux可能会降低系统的安全性,使系统更容易受到潜在的安全漏洞和攻击。在关闭之前,您应该仔细评估潜在的风险,并确保系统中其他安全措施的有效性。因此,在解决问题后,建议尽快重新启用SELinux,以恢复系统的安全性保护。

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 运行以下命令,查看SELinux状态。

    sestatus

    若系统返回的参数信息SELinux status显示为enabled,则表示SELinux已启动。更多SELinux信息

  3. 选择临时关闭或者永久关闭SELinux。

    说明

    临时关闭SELinux仅影响当前会话,系统重启后将重置为原始状态;要实现永久关闭,必须更改配置文件,确保SELinux在重启之后维持禁用。

    临时关闭SELinux

    执行以下命令,临时将SELinux的模式从强制执行模式(enforcing)切换到宽容模式(permissive)

    sudo setenforce 0

    永久关闭SELinux

    1. 运行以下命令,编辑SELinux的config文件。

      sudo vi /etc/selinux/config
    2. 找到SELINUX=enforcingSELINUX=permissive字段,按i进入编辑模式,将参数修改为SELINUX=disabled更改SELinux状态

    3. 修改完成后,按Esc键退出编辑模式,输入:wq后按下回车键,保存并退出文件。

    4. 重启ECS实例。

      具体操作,请参见重启实例

    5. 完成重启后,运行以下命令,验证SELinux状态。

      sestatus

      若系统返回的参数信息SELinux status显示为 disabled,则表明SELinux已永久关闭。

      image.png

相关文档

您可以在宽容模式下,审查日志以发现安全策略违规事件,并调整SELinux策略规则,确保后续切换至强制执行模式时无误阻拦行为。具体操作,请参见查看实例的系统日志和屏幕截图