本篇是第六部分“安全篇”的第三篇,在这个部分,我将用四篇内容为你介绍包括镜像,容器和 Linux 内核的 LSM 等内容。前面两篇,我为你介绍了镜像及容器安全相关的内容。本篇,我们将重点放在 Linux 内核为容器提供的安全保障上。
上一篇,我为你介绍了如何通过 Linux capabilities 来为容器提供安全的能力。本篇,我们继续将焦点放在容器安全上。
注意:本文所用的 Linux 内核为 5.4.10-100.fc30.x86_64,不同版本内核略有差异。
LSM 基础
LSM 即 Linux Security Modules,翻译为 Linux 安全模块。可能很多人都没有接触过它,我先来介绍下 LSM 出现的背景及它具体是什么。
LSM 出现的背景
上一篇我已经为你介绍过 Linux 的权限模型,最初它只支持检查是否为特权用户,之后的演进中逐步增加了 capabilities 相关的功能。
但仅仅是这样还不足以称其为一个“安全”操作系统。各种组织和机构在使用 Linux 时,对它提出了多种安全方面相关的需求。
此时也有不少人实现了一些安全方面的功能。大多数实现都是通过给内核打 patch 实现的,并没有合并进 Linux 内核的主线中。
这对于普通用户而言是无法接受的,大多数用户是没有编译和定制