直接运行 systemd-analyze security 可评估系统核心服务沙箱安全等级,按exposure分数从高到低排序;支持 --no-pager 和 --user 等选项,指定服务如 ssh 可查看 privatenetwork、protecthome 等配置启用状态,未启用项标“❌”并提示风险,依据 privatetmp、protectsystem、deviceallow 等机制评分,加固需编辑 unit 文件并重载服务。

直接运行 systemd-analyze security 即可评估系统中所有核心服务的沙箱安全等级。该命令会为每个服务打分(EXPOSURE 分数),分数越低越安全,越高说明暴露面越大、防护越弱。
查看整体服务安全概况
在终端中执行:
-
systemd-analyze security—— 列出所有已加载服务的安全评分,按暴露分数从高到低排序 -
systemd-analyze security --no-pager—— 避免输出被分页器截断,方便快速浏览 - 加
--user可检查当前用户的 session 服务,加--system(默认)检查系统级服务
聚焦关键服务做深度分析
Apache、SSH、Nginx 等常驻服务是重点评估对象。指定服务名可获取其详细加固项检查结果:
systemd-analyze security sshsystemd-analyze security apache2- 输出中会逐项说明是否启用:PrivateNetwork、ProtectHome、NoNewPrivileges、SystemCallFilter 等关键沙箱配置
- 未启用的项会标为“❌”,并提示风险类型(如“网络暴露”“文件系统可写”)
理解评分依据与常见高风险项
EXPOSURE 分数基于以下 systemd 沙箱机制的实际启用状态:
- PrivateTmp=yes:隔离临时目录,防止敏感临时文件泄露
- ProtectSystem=full:禁止写入 /usr、/boot、/etc 等关键路径
- DeviceAllow=:显式限制设备节点访问(如禁用 /dev/kvm、/dev/mem)
- CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_NET_RAW:移除高危能力,避免提权或原始包操作
- RestrictAddressFamilies=AF_UNIX AF_INET:禁止使用 AF_PACKET 等危险协议族
后续加固建议
发现高分服务后,不要仅看分数,要结合实际业务调整 unit 文件:
- 编辑服务文件:
sudo systemctl edit --full ssh或修改/etc/systemd/system/ssh.service.d/hardening.conf - 添加至少三项基础防护:
PrivateTmp=yes、NoNewPrivileges=yes、ProtectHome=read-only - 修改后务必执行:
sudo systemctl daemon-reload && sudo systemctl restart ssh - 再运行
systemd-analyze security ssh验证分数是否下降











