Linux系统安全:深入解析systemd的ExecPaths沙箱配置

本文详细介绍了systemd的ExecPaths设置,用于限制程序执行路径以增强服务安全性。包括配置示例、测试方法及相关加固方案,适用于系统管理员和安全专业人员。

ExecPaths 设置 - Linux 审计

概述

ExecPaths 是 systemd 单元设置,用于沙箱化。自 systemd 248 版本起可用。

目的:定义允许执行程序的路径。

初次接触保护和调优 systemd 服务?请从如何加固 systemd 服务单元开始,逐步学习调优,包括相关工具的使用。

为何及何时使用 ExecPaths

systemd 设置 ExecPaths 定义了允许程序执行的路径。它与 NoExecPaths 相反,通常一起使用。常见做法是先用 NoExecPaths 禁用根路径 ‘/’ 的执行,然后在 ExecPaths 中定义服务相关二进制文件所在的路径。

ExecPaths 的配置选项

定义允许程序执行的路径。通常在已使用 NoExecPaths 定义更通用的“阻止”路径(如根路径)后进行。

示例

仅允许执行位于 /usr/sbin/myprogram 的二进制文件及 /usr/lib 中的库。

1
2
NoExecPaths=/
ExecPaths=/usr/lib /usr/sbin/myprogram

测试

要测试程序是否与此属性兼容,考虑使用 systemd-run 命令。

1
systemd-run --pty --property=NoExecPaths=/tmp --property=ExecPaths=/tmp/testing /tmp/testing/mytestfile

确保此示例正确工作,路径 /tmp/testing 必须存在。mytestfile 可以是类似 /bin/ps 文件的副本。

相关加固配置文件

ExecPaths systemd 单元设置用于以下 systemd 加固配置文件。这些加固配置文件有助于提高常见 Linux 服务的安全性,通常只需最小调优。

  • Apache
  • Dovecot
  • Nginx
  • OpenSMTPD

常见问题

如何使用 systemctl edit?

运行带有 ’edit’ 子命令和服务的 systemctl。

1
systemctl edit UNIT.service

完整答案请参见如何使用 systemctl edit 更改服务?

保护 systemd 和系统服务

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

Lynis

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

工具信息

  • 成本:免费
  • 许可证:GPLv3

链接

反馈

本文由我们的 Linux 安全专家 Michael Boelen 撰写。他专注于创建高质量文章和相关示例,旨在改进 Linux 安全领域。不再有充满复制粘贴博客文章的网页。

发现过时信息或有疑问?分享您的想法。感谢您的贡献!

相关文章

想了解更多?以下是同一类别或具有相似标签的文章列表。

  • PrivateUsers 设置
  • KeyringMode 设置
  • PrivatePIDs 设置
  • NoNewPrivileges 设置
  • ReadOnlyPaths 设置

◄ 上一篇文章:NoExecPaths 设置 ► 下一篇文章:PrivateTmp 设置

页面详情及相关文章

页面信息 本文词数为 153,最后更改或审阅于 2025-07-13。

隐私优先,无跟踪,无 cookies!

我们的绿色倡议:可持续网页设计

保持更新 @mboelen 在 Mastodon RSS Atom feed 或 JSON Feed 网站地图 最新更改

Linux Audit 是专注于系统管理和安全的高质量文章的 Linux 安全博客。读者包括系统管理员、安全专业人员和审计员,所有人都旨在保护其系统安全。

联系

[联系信息]

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计