十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

第33篇-安全配置与最佳实践

第33篇-安全配置与最佳实践 【Hermes Agent 从入门到精通】第 33 篇安全配置与最佳实践本系列定位零基础入门从安装配置到高级架构全覆盖。无论你是开发者、运维工程师、还是技术爱好者本系列带你彻底掌握 Hermes Agent。本篇你将学到危险命令审批机制详解密钥脱敏配置PII 保护容器隔离部署生产环境安全检查清单学完本篇你的 Hermes 部署将达到生产级安全标准。一、危险命令审批1.1 三种审批模式hermes configsetapprovals.mode manual# 手动默认hermes configsetapprovals.mode smart# 智能推荐hermes configsetapprovals.mode off# 关闭不推荐模式低风险命令ls/cat高风险命令rm/git push说明manual询问询问每次都问最安全smart自动放行询问辅助 LLM 判断风险off自动放行自动放行完全信任1.2 Smart 模式详解Smart 模式用一个辅助 LLM 在执行命令前评估风险命令ls -la /home/user/project → 辅助 LLM 判断只读操作低风险 → 自动放行 命令rm -rf /home/user/project/node_modules → 辅助 LLM 判断删除操作中风险 → 询问用户 命令git push --force origin main → 辅助 LLM 判断强制覆盖远程高风险 → 询问用户1.3 安全扫描Tirith# 启用安全扫描默认开启hermes configsetsecurity.tirith_enabledtrueTirith 安全扫描器检查命令注入风险路径遍历不安全的网络请求敏感信息泄露下面用流程图总结命令审批的决策逻辑manualsmartoff低风险如 ls、cat中风险如 rm 目录高风险如 git push --force用户发送命令审批模式每次都询问用户辅助 LLM 评估风险直接执行不推荐用户确认后执行风险评估结果自动放行弹窗询问用户弹窗警告 询问用户命令直接执行二、密钥保护2.1 密钥脱敏hermes configsetsecurity.redact_secretstrue效果原始输出 OPENAI_API_KEYsk-proj-abc123def456ghi789 DATABASE_URLpostgresql://user:passwordhost:5432/db 脱敏后 OPENAI_API_KEYsk-***REDACTED*** DATABASE_URLpostgresql://user:***host:5432/db重要redact_secrets在进程启动时读取修改后需要重启 Hermes。这防止 Agent 在会话中自己关闭脱敏。2.2 PII 脱敏hermes configsetprivacy.redact_piitrue效果原始消息我的手机号是 13800138000邮箱是 zhangsantest.com 脱敏后我的手机号是 [REDACTED_PHONE]邮箱是 [REDACTED_EMAIL]PII 脱敏只影响到达模型的内容——你在终端看到的是原文。2.3 .env 安全# 确保 .env 不被 Git 跟踪echo.env.gitignore# 检查权限chmod600~/.hermes/.env# 只有所有者可读写三、网站黑名单3.1 禁止访问特定网站security:website_blocklist:-facebook.com# 禁止访问-twitter.com-*.gambling-*# 通配符匹配3.2 效果当 Hermes 尝试用 web 工具访问黑名单中的网站时请求被阻止。四、容器隔离4.1 Docker 隔离部署# docker-compose.ymlservices:hermes:image:nousresearch/hermes-agent:latestvolumes:-./workspace:/workspace# 只暴露工作目录cap_drop:-ALL# 丢弃所有 Linux 能力security_opt:-no-new-privileges:true# 禁止提权read_only:falsenetwork_mode:bridge# 限制网络4.2 隔离效果措施效果cap_drop: ALL不能执行特权操作如 mount、iptablesno-new-privileges不能通过 setuid 提权只挂载 workspace宿主机其他目录不可访问限制网络可以通过防火墙规则限制出站目标五、终端后端安全5.1 三种终端后端terminal:backend:local# 本地默认# backend: docker # Docker 隔离# backend: ssh # 远程 SSH后端安全级别说明local低直接在宿主机执行命令docker中在 Docker 容器内执行ssh高在远程服务器上执行5.2 Docker 终端后端terminal:backend:dockerdocker:image:ubuntu:22.04# 执行环境镜像workdir:/workspacevolumes:-~/workspace:/workspace# 只挂载工作目录Docker 终端后端让所有命令在隔离容器中执行——即使执行了危险命令也不影响宿主机。六、生产环境安全清单上线前逐项检查## Hermes 生产安全清单 ### 访问控制 - [ ] 网关只响应授权用户 - [ ] 管理员列表已配置 - [ ] DM Pairing 已启用 - [ ] 普通用户的工具权限受限 ### 命令审批 - [ ] approvals.mode 设为 manual 或 smart - [ ] Tirith 安全扫描已启用 - [ ] --yolo 未被持久化设置 ### 密钥保护 - [ ] redact_secrets 已启用 - [ ] .env 权限 600 - [ ] .env 在 .gitignore 中 - [ ] API Key 未暴露在日志中 ### 隔离 - [ ] 终端后端为 docker 或 ssh - [ ] 工作目录限制在 workspace - [ ] 容器 cap_drop: ALL ### 网络 - [ ] PII 脱敏已启用如需要 - [ ] 网站黑名单已配置 - [ ] 网关端口不直接暴露公网用 Nginx 反代 ### 审计 - [ ] 日志保留策略已配置 - [ ] Token 用量监控已设置 - [ ] 异常告警已配置本篇小结知识点核心内容approvals.modemanual / smart / offSmart 模式辅助 LLM 自动判断风险Tirith安全扫描器redact_secrets工具输出密钥脱敏redact_pii个人信息脱敏网站黑名单security.website_blocklistDocker 隔离cap_drop 只挂载 workspace终端后端local / docker / ssh生产清单访问控制 审批 密钥 隔离 网络 审计下篇预告第 34 篇性能调优与磁盘管理Hermes 运行久了变慢磁盘占用越来越大下一篇学习性能优化和维护清理。如果本篇内容对你有帮助欢迎点赞收藏有任何疑问欢迎在评论区交流。
返回列表