Linux之SELinux详解(如何关闭、查看是否关闭)

1、SELinux 作用

  SELinux(Security-Enhanced Linux)是 Linux 系统的一个安全模块,主要用于加强系统的安全性。它通过强制访问控制(MAC)来限制进程和用户对系统资源(如文件、端口等)的访问。即使某个进程或用户具有某些权限,SELinux 也可以通过策略来限制其操作,防止潜在的安全风险。

主要作用:

  • 增强安全性:SELinux 通过策略限制进程的行为,防止系统受到攻击或被恶意软件破坏。
  • 最小化攻击面:即使攻击者获取了系统的一部分权限,SELinux 也可以防止其进行进一步的破坏。
  • 细粒度权限控制:SELinux 允许对每个进程和文件设置访问规则,提升系统的安全性。

2、关闭SELinux好处及风险

关闭 SELinux 的好处

  1. 减少兼容性问题:一些旧的应用程序或服务可能与 SELinux 不兼容,关闭 SELinux 可以避免这些问题。
  2. 简化配置和管理:SELinux 配置和管理较为复杂,关闭它可以简化系统管理,减少安全配置的工作量。
  3. 提高系统性能:虽然性能影响通常较小,但在高负载的情况下,SELinux 的安全检查可能会带来额外的性能开销,关闭它可以稍微提高系统性能。

关闭 SELinux 的风险

  关闭 SELinux 会降低系统的安全性,特别是在遭遇外部攻击时,可能增加系统被入侵的风险。因此,如果没有特别的兼容性需求,建议在生产环境中保持 SELinux 启用。

3、如何关闭SELinux

sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && sudo setenforce 0

4、查看SELinux是否已关闭

Linux 中,查看 SELinux 是否关闭可以通过以下几种方式:

方法 1: 使用 sestatus 命令

sestatus 是查看 SELinux 当前状态的最常用命令。运行以下命令:

sestatus

输出:

SELinux status:disabled
  • 如果输出是 SELinux status: disabled,则表示 SELinux 已关闭。
  • 如果输出是 SELinux status: enabled,则表示 SELinux 已启用。
    在这里插入图片描述

方法 2: 查看 /etc/selinux/config 文件

另一个方法是检查 /etc/selinux/config 文件中 SELinux 的配置。

cat /etc/selinux/config

输出:

SELINUX=disabled
SELINUXTYPE=targeted
  • 如果 SELINUX=disabled,则表示 SELinux 被禁用。
  • 如果 SELINUX=enforcingSELINUX=permissive,则表示 SELinux 处于启用状态。

在这里插入图片描述

方法 3: 使用 getenforce 命令

getenforce 命令可以直接返回当前 SELinux 的状态。运行以下命令:

getenforce

输出示例:

  • Disabled:SELinux 已禁用。
  • Enforcing:SELinux 处于启用并强制执行模式。
  • Permissive:SELinux 处于启用但不强制执行模式。

在这里插入图片描述

方法 4: 检查 /sys/fs/selinux/enforce 文件

可以直接查看 /sys/fs/selinux/enforce 文件的内容来确认 SELinux 的状态:

cat /sys/fs/selinux/enforce

在这里插入图片描述

输出示例:

  • 0:表示 SELinux 被禁用。
  • 1:表示 SELinux 处于强制执行模式(enforcing)。
  • 2:表示 SELinux 处于宽容模式(permissive)。