如何检查 Linux 内核锁定模式是否激活

LinuxLinuxBeginner
立即练习

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

简介

在这个实验中,你将学习如何检查 Linux 系统中内核锁定模式 (Kernel Lockdown Mode) 是否处于激活状态。内核锁定是一项安全功能,它会限制某些内核功能,以增强系统安全性。

你可以通过以下方法实现这一目标:使用 cat 命令通过 /proc 文件系统检查内核的锁定状态;使用 dmesg 命令验证内核环形缓冲区中与锁定相关的消息;检查 /sys/kernel/security 目录中的安全设置。通过这些步骤,你将全面了解 Linux 系统当前的锁定状态。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/ls -.-> lab-558794{{"如何检查 Linux 内核锁定模式是否激活"}} linux/cat -.-> lab-558794{{"如何检查 Linux 内核锁定模式是否激活"}} linux/grep -.-> lab-558794{{"如何检查 Linux 内核锁定模式是否激活"}} end

使用 cat /proc/sys/kernel/lockdown 检查锁定状态

在这一步中,我们将检查 Linux 内核的当前锁定状态。内核锁定是一项安全功能,它会限制某些内核功能以增强安全性,特别是在需要关注物理访问的系统上。

锁定状态通过 /proc 文件系统公开,具体路径为 /proc/sys/kernel/lockdown/proc 文件系统是一个虚拟文件系统,用于提供有关进程和其他系统信息。

为了检查锁定状态,我们将使用 cat 命令。cat 命令用于显示文件内容。

如果终端尚未打开,请打开它。你可以在桌面左侧找到 Xfce Terminal 图标。

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

cat /proc/sys/kernel/lockdown

你将看到类似以下的输出:

[none] integrity confidentiality

输出在方括号中显示当前的锁定模式(在这个例子中是 [none])以及可用的锁定模式。

  • none:内核未处于锁定模式。
  • integrity:限制可能允许用户空间修改正在运行的内核的功能。
  • confidentiality:限制可能允许用户空间从内核中提取机密信息的功能。

具体的输出可能会因内核配置而异,但结构会类似。了解锁定状态对于评估 Linux 系统的安全状况非常重要。

点击 继续 进入下一步。

使用 dmesg 验证锁定状态

除了检查 /proc 文件系统外,与锁定状态更改相关的内核消息通常会记录在内核环形缓冲区中。我们可以使用 dmesg 命令查看这些消息。

dmesg 命令用于检查或控制内核环形缓冲区。它会显示内核在启动和运行期间产生的消息。

要查看是否有与内核锁定相关的消息,我们可以将 dmesg 的输出通过管道传递给 grep 命令,并搜索 "lockdown" 这个关键词。管道符号 (|) 用于将一个命令的输出作为另一个命令的输入。

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

dmesg | grep lockdown

你可能会看到类似以下的输出:

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro ... lockdown=none
[    0.000000] Kernel lockdown: Lockdown is disabled.

这个输出显示了包含 "lockdown" 一词的内核消息。它可以确认启动时设置的锁定状态或后续发生的任何更改。具体的消息将取决于系统的启动和配置方式。

如果你没有看到任何输出,这可能意味着缓冲区中没有记录关于锁定的特定内核消息,或者如果缓冲区已满,这些消息已被覆盖。不过,检查 dmesg 是验证内核级事件的常见做法。

点击 继续 进入下一步。

检查 /sys/kernel/security 中的安全设置

在这最后一步,我们将探索 /sys/kernel/security 目录。/sys 文件系统是另一个虚拟文件系统,它提供了访问内核数据结构的接口。/sys/kernel/security 目录专门包含与内核加载的 Linux 安全模块(Linux Security Modules,LSMs)相关的信息和控制项。

LSMs 是允许内核支持各种安全模型的框架。例如 SELinux、AppArmor 等。

让我们使用 ls 命令列出该目录的内容。ls 命令用于列出目录内容。

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

ls /sys/kernel/security/

根据加载的 LSMs,你将看到类似以下的输出:

apparmor  lockdown  lsm  selinux

这个输出显示了 /sys/kernel/security 内的子目录。每个子目录通常对应一个已加载的 LSM 或像 lockdown 这样的安全特性。

你可以使用 lscat 进一步检查这些子目录的内容。例如,要查看 /sys/kernel/security 内的 lockdown 目录的内容,你可以使用:

ls /sys/kernel/security/lockdown/

要查看该目录内某个文件的内容,例如 lockdown 文件本身(它可能包含与 /proc/sys/kernel/lockdown 类似的信息),你可以使用:

cat /sys/kernel/security/lockdown

探索 /sys/kernel/security 目录能让你更深入地了解系统上的活跃安全模块及其配置。

你现在已经学会了如何使用不同方法检查内核锁定状态,并探索了 /sys 文件系统中的内核安全接口。

点击 继续 完成实验。

总结

在本次实验中,我们学习了如何检查 Linux 中的内核锁定状态。我们使用 cat /proc/sys/kernel/lockdown 命令查看当前的锁定模式以及可用模式,如 noneintegrityconfidentiality。了解这些模式对于评估系统安全性至关重要。

我们还探索了如何使用 dmesg 命令验证内核环形缓冲区中与锁定相关的消息,该命令能让我们深入了解内核事件和状态变化,包括与锁定激活或停用相关的情况。最后,我们检查了 /sys/kernel/security 目录中的安全设置,该目录能让我们更详细地了解各种安全模块及其配置,包括特定于锁定的设置。