如何检查 Linux 中 SELinux 是否启用

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本次实验中,你将学习如何检查 Linux 系统上 SELinux 的状态和配置。SELinux 是一种重要的安全机制,它提供了强制访问控制(Mandatory Access Control)。

你将使用 sestatus 命令来获取当前 SELinux 状态的摘要信息,检查 SELinux 配置文件 /etc/selinux/config 以了解其默认设置,并使用 getenforce 命令快速检查当前的运行模式。通过完成这些步骤,你将对如何确定系统上 SELinux 是否启用以及如何配置有一个基本的了解。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/echo -.-> lab-558802{{"如何检查 Linux 中 SELinux 是否启用"}} linux/cat -.-> lab-558802{{"如何检查 Linux 中 SELinux 是否启用"}} end

使用 sestatus 检查 SELinux 状态

在这一步中,你将学习如何检查系统上 SELinux 的状态。SELinux(Security-Enhanced Linux,安全增强型 Linux)是一种为进程和资源提供强制访问控制(Mandatory Access Control,MAC)的安全机制。它在传统的自主访问控制(Discretionary Access Control,DAC)之上增加了一层额外的安全防护。

要检查 SELinux 的当前状态,我们使用 sestatus 命令。该命令会提供 SELinux 配置及其当前状态的摘要信息。

如果终端尚未打开,请打开它。你可以通过点击桌面左侧的 Xfce Terminal 图标来打开终端。

现在,在终端中输入以下命令并按下回车键:

sestatus

你应该会看到类似以下的输出:

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 version:                 ...
Policy load time:               ...

让我们来分析一下输出中的重要部分:

  • SELinux status:指示系统上的 SELinux 是启用还是禁用。
  • Current mode:显示 SELinux 的当前运行模式。常见的模式有 enforcing(强制模式)、permissive(宽容模式)和 disabled(禁用模式)。
  • Mode from config file:显示在 SELinux 配置文件(/etc/selinux/config)中设置的模式。

在这个输出中,SELinux status: enabled 表示 SELinux 处于活动状态,而 Current mode: enforcing 表示 SELinux 正在积极实施其安全策略。

了解 SELinux 的状态是管理其行为的第一步。

点击 Continue 进入下一步。

使用 cat /etc/selinux/config 验证 SELinux 配置

在上一步中,你使用 sestatus 检查了 SELinux 的当前状态。现在,让我们来查看决定 SELinux 默认行为的配置文件。

SELinux 的主要配置文件位于 /etc/selinux/config。我们可以使用 cat 命令查看该文件的内容。cat 命令用于显示文件的内容。

在终端中输入以下命令并按下回车键:

cat /etc/selinux/config

你应该会看到类似以下的输出:

## This file controls the state of SELinux on the system.
## SELINUX= can take one of these three values:
##     enforcing - SELinux security policy is enforced.
##     permissive - SELinux prints warnings instead of enforcing.
##     disabled - No SELinux policy is loaded.
SELINUX=enforcing
## SELINUXTYPE= can take one of these three values:
##     targeted - Targeted processes are protected,
##               for more information see selinux-policy-targeted(8)
##     strict - Full SELinux protection, see selinux-policy(8)
##     mls - Multi-Level Security protection.
SELINUXTYPE=targeted

你可以在这个文件中配置 SELinux 的默认模式(SELINUX=)和策略类型(SELINUXTYPE=)。

  • SELINUX=enforcing:这一行表明系统默认配置为以 enforcing(强制)模式启动。
  • SELINUXTYPE=targeted:这一行指定使用 targeted(目标)策略。目标策略是最常用的策略,用于保护特定的系统进程。

此文件中的设置通常在系统启动时应用。虽然你可以临时更改当前模式(我们将在下一步中看到),但对 /etc/selinux/config 所做的更改需要重启系统才能完全生效。

了解配置文件有助于你了解系统预期的 SELinux 状态。

点击 Continue 继续。

使用 getenforce 检查 SELinux 模式

在前面的步骤中,你使用 sestatus 详细了解了 SELinux 的状态,并通过 cat /etc/selinux/config 查看了默认配置。现在,让我们使用一个更简单的命令 getenforce 来快速检查 SELinux 的 当前 模式。

getenforce 命令专门用于输出 SELinux 的当前运行模式。这对于快速检查非常有用,无需查看 sestatus 的完整输出。

在终端中输入以下命令并按下回车键:

getenforce

你应该会看到类似以下的输出:

Enforcing

输出将是以下之一:

  • Enforcing:SELinux 处于活动状态并正在实施其策略。任何违反策略的操作都将被阻止。
  • Permissive:SELinux 处于活动状态,但不实施策略。它会记录在强制模式下 被阻止的操作的警告信息,但允许这些操作继续执行。此模式对于测试和故障排除很有用。
  • Disabled:SELinux 未处于活动状态,且未加载任何策略。

在这种情况下,输出 Enforcing 确认 SELinux 当前正在以强制模式运行,这与我们使用 sestatus 命令看到的结果一致。

getenforce 命令是快速检查 SELinux 状态的便捷工具。

点击 Continue 完成此实验。

总结

在本实验中,你学习了如何检查 Linux 系统上 SELinux 的状态。你使用 sestatus 命令获取了 SELinux 配置的概要信息,包括它是否已启用、当前的运行模式(强制、宽容或禁用)以及配置文件中设置的模式。

你还学习了如何使用 cat 命令检查 /etc/selinux/config 文件来验证 SELinux 配置,该文件显示了系统启动时将应用的默认 SELinux 模式。最后,你使用 getenforce 命令快速检查了 SELinux 的当前模式。这些步骤为你了解 SELinux 的当前状态和配置提供了重要方法。