开启或关闭SELinux

安全增强型Linux(SELinux)是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制。本文介绍如何开启或关闭SELinux,并且避免系统无法启动的问题。

背景信息

一般情况下,开启SELinux会提高系统的安全性,但是会破坏操作系统的文件,造成系统无法启动。如果您所在的企业或团队具有十分严格的安全策略,要求在Linux操作系统中开启SELinux,您可以参考本文的步骤开启,避免系统无法启动的问题。

前提条件

  • 已使用移动云公共镜像(BCLinux镜像或者Centos镜像)或者自定义镜像创建了ECS实例。
说明
请确保自定义镜像中的SELinux是禁用状态。

开启SELinux

您可以根据需求修改参数,开启SELinux有以下两种模式:

■ 强制模式SELINUX=enforcing:表示所有违反安全策略的行为都将被禁止。

■ 宽容模式SELINUX=permissive:表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。

  1. 开启permissive模式

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

# vi /etc/selinux/config

    b. 找到SELINUX=disabled,按i进入编辑模式,通过修改该参数开启SELinux。

   

    c. 修改完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

    d. 运行以下命令,在根目录下新建隐藏文件autorelabel,实例重启后,SELinux会自动重新标记所有系统文件。避免直接重启实例将会出现系统无法启动的错误。

# touch /.autorelabel

    e. 运行以下命令,重启ECS实例。

# shutdown -r now
  1. 开启enforcing模式

如果系统从禁用模式启动,您可以重新引导并重新标记系统两次,首先开启permissive模式下,然后开启enforcing模式。

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

# vi /etc/selinux/config

    b. 找到SELINUX=disabled,按i进入编辑模式,通过修改该参数开启SELinux。

   

    c. 修改成permissive模式完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

    d. 运行以下命令,在根目录下新建隐藏文件autorelabel。

# touch /.autorelabel

    e. 运行以下命令,重启ECS实例。

# shutdown -r now

    f. 重新登录ECS实例,编辑SELinux的config文件。

# vi /etc/selinux/config

    g. 打开找到SELINUX=permissive,按i进入编辑模式,修改成enforcing。

   

    h. 修改成enforcing模式完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

    i. 运行以下命令,在根目录下新建隐藏文件autorelabel。

# touch /.autorelabel

    j. 运行以下命令,重启ECS实例。

# shutdown -r now

验证SELinux状态

1. 运行命令getenforce,验证SELinux状态。

2. 返回状态应为enforcing或者permissive,本教程当前状态为enforcing。

关闭SELinux

1. 运行命令getenforce,验证SELinux状态。

    返回状态如果是enforcing,表明SELinux已开启。

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

    a. 执行命令setenforce 0临时关闭SELinux。

    b. 永久关闭SELinux。

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

# vi /etc/selinux/config

    d. 找到SELINUX=enforcing,按i进入编辑模式,将参数修改为SELINUX=disabled。

    e. 修改完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

    f. 运行以下命令,重启ECS实例。

# shutdown -r now

    g. 重启后,运行命令getenforce,验证SELinux状态为disabled,表明SELinux已关闭。

本文档内容整理自移动云官方帮助中心(查看原文),仅供参考。