近期,微软已经更新了其内部开源容器 CBL-Mariner。此次更新将内核升级到了 5.10.52.1 版本,并启用/dev/mcelog
。除了大量的安全修复外,cronie 和 logrotate 已添加到图像中,就像 Microsoft 的存储库一样。Moby-containerd 已更新至 1.4.4 版,swig 已更新至 4.0.2。
微软的 CBL-Mariner Linux 在 GitHub 上发布即将一周年,开发人员在此期间一直保持维护和更新,并在今年 7 月将其开源。不过,CBL-Mariner 目前还是以微软内部自用为主。
CBL-Mariner 是由微软的 Linux 系统组创建,也就是 WindowsSubsystem for Linux 2 背后的技术团队。作为微软云基础设施和边缘产品和服务的内部 Linux 发行版,CBL-Mariner 旨在为设备和服务提供统一平台,但主要用于服务器端而非桌面端。
据官方介绍,CBL-Mariner 项目是微软对各种 Linux 技术不断增加投资的一部分,例如 SONiC、Azure Sphere OS 和 Windows Subsystem for Linux (WSL)。此外,CBL-Mariner 不会改变他们对任何现有第三方 Linux 发行版的态度或承诺。
CBL-Mariner 是一款非常轻量级的 Linux,可以将其用作容器或容器主机。CBL-Mariner 的设计理念是,一组小的通用核心包可以满足第一方云和边缘服务的普遍需求,同时允许各个团队在通用核心之上分层附加包,为他们的工作负载生成镜像。这可以通过一个简单的构建系统实现,该系统支持:
包生成:从 SPEC 文件和源文件中生成所需的一组 RPM 包。
镜像生成:从给定的一组包中生成所需的镜像,如 ISO 或 VHD。
CBL-Mariner 软件包系统基于 RPM,软件包更新系统同时使用 dnf 和 tdnf,后者全称 Tiny DNF,是一个基于 dnf 的软件包管理器,来自 VMware 的 Photon OS。CBL-Mariner 还支持基于镜像的更新机制,其使用 RPM-OSTree 来实现,rpm-ostree 是一个基于 OSTree 的开源工具,用于管理可启动的、不可变的、版本化的文件系统树。rpm-ostree 背后的想法是使用一个客户-服务器架构,以可靠的方式保持 Linux 主机的更新和与最新的软件包同步。
微软认为,操作系统的精简特性有助于提高安全性:通过将核心映像功能集中到内部云客户所需功能上,加载的服务会更少,攻击媒介也更少。
CBL-Mariner 遵循 "默认安全"原则,操作系统的大部分方面都是以安全为重点的。它有一个加固的内核、签名更新、ASLR、基于编译器的加固和防篡改日志等许多功能。由于大小有限、攻击面很小,用户很容易通过 RPM 向其部署安全补丁。
一旦出现安全漏洞,CBL-Mariner 可以支持基于包的更新模型和基于镜像的更新模型。利用通用的 RPM 包管理器系统,CBL-Mariner 提供最新的安全补丁和修复程序,以实现快速周转时间的目标。
微软没有给出 CBL-Mariner 的 ISO 镜像,不过微软 Azure 工程师 Juan Manuel Rey 发布了详细教程:
https://blog.jreypo.io/2021/07/09/a-look-into-cbl-mariner-microsoft-internal-linux-distribution/
在过去,红帽的 CoreOS 曾经是 Linux 容器的首选主机,但最近被废弃了,所以用户亟需一个替代方案。CBL 的代表的则是“Common Base Linux”,也被外界解读为 CoreOS 的替代。通过为其云服务创建自己的发行版,微软可以根据自己的时间表来更新和管理主机和容器实例。
微软方面已经成立了一个正式的 Linux Systems Group 来处理公司的大部分 Linux 相关工作,CBL-Mariner 就是其推出的项目之一。此外,Linux Systems Group 开发的与 Linux 相关的可交付成果还包括有:
WSL2 随附的 WSL2 Linux 内核;
一个 Azure-tuned Linux 内核,可作为许多常见 Linux 发行版的补丁程序进行使用,对其进行优化以与微软的 Hyper-V 虚拟机管理程序配合使用;
以及企业和安全团队提出的 Linux 安全模块(LSM)Integrity Policy Enforcement(IPE)。
评论 1 条评论