0

0

如何配置服务资源隔离 systemd沙盒功能实践

P粉602998670

P粉602998670

发布时间:2025-07-11 12:32:02

|

911人浏览过

|

来源于php中文网

原创

systemd 提供多种沙盒机制提升服务安全性,具体方法包括:1. 使用 privatenetwork 和 privateusers 实现网络和用户空间隔离;2. 通过 restrictaddressfamilies 限制网络协议栈,控制服务的网络访问能力;3. 利用 readonlypaths 和 inaccessiblepaths 控制文件系统访问权限,防止敏感目录被读写;4. 设置 memorylimit 和 cpuquota 限制资源使用,避免资源过度占用。这些配置可根据服务需求灵活启用,实现轻量级安全隔离。

如何配置服务资源隔离 systemd沙盒功能实践

Linux 系统中,systemd 不仅仅是服务管理工具,它还提供了一些沙盒机制来实现服务资源隔离。通过合理配置,可以限制服务的访问权限、网络能力以及资源使用,提升系统安全性。下面是一些实用的配置方法和建议。

如何配置服务资源隔离 systemd沙盒功能实践

1. 使用 PrivateNetworkPrivateUsers 实现基础隔离

这两个选项可以快速为服务创建一个独立的网络空间和用户空间,避免服务直接访问主机资源。

如何配置服务资源隔离 systemd沙盒功能实践
  • PrivateNetwork:启用后会为服务分配一个私有网络命名空间,服务无法访问主机的网络接口。
  • PrivateUsers:启用后服务运行在一个独立的用户命名空间中,即使以 root 权限启动,也不会拥有主机上的 root 权限。
示例:[Service] PrivateNetwork=yes PrivateUsers=yes

这些设置适合对安全性要求较高但不需要复杂容器化部署的服务。

如何配置服务资源隔离 systemd沙盒功能实践

2. 利用 RestrictAddressFamilies 限制网络协议栈

如果你希望进一步控制服务的网络行为,可以使用这个选项限制服务只能使用某些地址族(如仅允许 IPv4 或禁用所有网络)。

常见用法包括:

  • AF_UNIX:只允许本地通信
  • AF_INET:仅允许 IPv4
  • 完全禁用网络:AF_UNSPEC

示例:

RestrictAddressFamilies=AF_UNIX

这在部署非网络依赖型服务时非常有用,比如定时任务或本地日志处理程序。

Artbreeder
Artbreeder

创建令人惊叹的插画和艺术

下载

3. 控制文件系统访问权限:ReadOnlyPathsInaccessiblePaths

通过限制服务对文件系统的访问,可以有效防止其读写敏感目录。

  • ReadOnlyPaths:将指定路径挂载为只读
  • InaccessiblePaths:将指定路径设为不可访问(通常挂载为空目录)

示例:

ReadOnlyPaths=/etc /usr
InaccessiblePaths=/home /root

这种做法可以防止服务意外或恶意修改系统配置或用户数据。


4. 设置资源限制:MemoryLimitCPUQuota

除了安全隔离,还可以通过 systemd 控制服务使用的系统资源,防止某个服务占用过多内存或 CPU。

  • MemoryLimit:限制最大内存使用量
  • CPUQuota:限制 CPU 占比(例如限制为 50%)

示例:

MemoryLimit=512M
CPUQuota=50%

这对于多服务共存环境尤其重要,可以避免单个服务拖垮整个系统。


基本上就这些常用配置项了。systemd 的沙盒功能虽然不如容器那样全面,但在轻量级场景下已经足够强大。关键是要根据服务的实际需求,按需开启对应的安全限制,既不过度也不遗漏。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1017

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

62

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

400

2025.12.29

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

387

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

571

2023.08.10

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1348

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

701

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.1万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号