systemd服务加固之ProtectControlGroups设置详解

本文深入解析systemd单元设置ProtectControlGroups的功能与配置,该设置用于限制对cgroups目录结构的写入访问,是Linux服务沙箱化的重要安全措施。文章涵盖配置选项、使用场景及实际示例。

ProtectControlGroups设置 - Linux审计

概述

ProtectControlGroups属性是一个用于沙箱化的systemd单元设置,自systemd 232版本起可用。

目的:限制对/sys/fs/cgroup下控制组目录结构的写入访问

为何及何时使用ProtectControlGroups

systemd单元设置ProtectControlGroups减少了对cgroup或Linux控制组的写入访问。关于cgroups的信息通常可在/sys/fs/cgroup下获得。此设置可能限制进程向此目录结构写入任何内容。

配置选项

在systemd 257之前,仅接受布尔值(是/否,真/假)。在systemd 257中,添加了private和strict选项。

通用建议

对于大多数服务,可以开启ProtectControlGroups。只有容器管理器需要对控制组结构进行写入访问。

配置示例

1
2
[Service]
ProtectControlGroups=yes

取值

systemd单元设置ProtectControlGroups期望布尔值(是/否或真/假)或字符串值。

取值 预期操作 可用版本
no 不限制写入访问 - 默认值
yes 限制访问并将控制组目录结构标记为只读
private 将分配新的cgroup命名空间并挂载相关的cgroupsfs 257
strict 将分配新的cgroup命名空间并将其cgroupfs挂载为只读 257

显示当前值的示例

显示ssh服务ProtectControlGroups当前值的示例:

1
systemctl show --property=ProtectControlGroups ssh.service

相关加固配置文件

ProtectControlGroups系统单元设置用于以下systemd加固配置文件中。这些加固配置文件有助于提高常见Linux服务的安全性,通常只需要最少的调整。

  • Apache
  • Dovecot
  • Nginx
  • OpenSMTPD

常见问题

如何使用systemctl edit?

使用’systemctl’命令和’edit’子命令及服务名称:

1
systemctl edit UNIT.service

保护systemd和系统服务

提高系统服务和进程的安全性。使用Lynis执行系统审计,包括systemd单元和服务的配置测试。

Lynis:Lynis是一个经过实战检验的基于Unix系统的技术安全审计工具。它是开源的,免费可用,被全世界的系统管理员使用。其他用户包括安全专业人员、渗透测试人员和IT审计员。

工具信息

  • 成本:免费
  • 许可证:GPLv3
  • 链接:GitHub项目、软件包(deb/rpm)、压缩包
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计