跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Linux系统针对守护进程的权限最小化安全加固实践指南

守护进程安全加固需遵循权限最小化原则:创建专用低权限用户、用CAP_NET_BIND_SERVICE替代root绑定低端口、ProtectSystem=strict和ProtectHome=true限制文件访问、CapabilityBoundingSet禁用危险能力、seccomp-bpf过滤系统调用、PrivateTmp=true等隔离环境,并重启服务验证。

守护进程(Daemon)在Linux系统中以非交互方式长期运行,常承担关键服务功能。权限最小化是其安全加固的核心原则——即仅授予完成任务所必需的权限,避免以root身份过度运行,降低被提权或横向渗透的风险。

明确进程运行身份,禁用root直接执行绝大多数守护进程无需root权限即可工作。应为每个服务创建专用低权限用户(如nginx、redis),并通过User和Group指令在systemd unit文件或启动脚本中强制指定:编辑/etc/systemd/system/myapp.service

,添加:

User=myapp Group=myapp确保该用户无登录Shell(/sbin/nologin)、无家目录、不属wheel或sudo组若进程需绑定低端口(如80/443),改用CAP_NET_BIND_SERVICE

能力替代root身份:

CapabilityBoundingSet=CAP_NET_BIND_SERVICE AmbientCapabilities=CAP_NET_BIND_SERVICE限制文件系统访问范围通过命名空间与路径约束,防止进程读写无关路径:启用ProtectSystem=strict:挂载/usr、/boot、/etc为只读使用ProtectHome=true屏蔽/home、/root、/run/user对必须写入的目录(如日志、缓存),显式声明:ReadWritePaths=/var/log/myapp /var/cache/myapp必要时启用RestrictSUIDSGID=true,阻止进程设置SUID/SGID位收紧系统调用与资源能力利用seccomp-bpf过滤非必要系统调用,结合capability机制剥离特权:通义灵码 Linux版通义灵码 Linux版是阿里云推出的一款AI智能编码助手,专为Linux开发者设计。它支持在Linux操作系统下的JetBrains IDEs、Visual Studio Code等主流集成开发环境中运行。该工具基于通义大模型,提供代码智能生成、实时续写、单元测试生成、代码优化以及研发智能问答等功能,旨在帮助Linux用户在编码过程中提升效率。

下载

默认禁用危险能力:

CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_MODULE CAP_SYS_PTRACE CAP_SYS_BOOT CAP_AUDIT_WRITE按需保留最小集合,例如日志服务可保留CAP_SYSLOG,网络服务保留CAP_NET_BIND_SERVICE启用SystemCallFilter=@system-service(预定义白名单),或自定义seccomp策略文件(JSON格式)并用SystemCallFilter=@myfilter引用添加NoNewPrivileges=true,禁止进程通过execve提升权限隔离运行环境,阻断隐式攻击面借助cgroup v2与namespace实现深度隔离:启用PrivateTmp=true:为进程分配独立/tmp,避免临时文件竞争启用PrivateDevices=true:隐藏/dev下敏感设备节点(如/dev/kvm、/dev/mem)

启用ProcSubset=pid:使/proc仅显示本进程及子进程信息

设置内存与CPU限制:

MemoryMax=512M CPUQuota=50%实际加固需结合服务特性逐项验证——修改unit配置后务必执行systemctl daemon-reload && systemctl restart myapp,并检查journalctl -u myapp -f确认无权限拒绝日志。不复杂但容易忽略。

相关文章