名称: 健康检查 描述: 为OpenClaw部署提供主机安全加固和风险容忍度配置。当用户请求安全审计、防火墙/SSH/更新加固、风险态势、暴露审查、OpenClaw定期检查的cron调度,或运行OpenClaw的机器(笔记本电脑、工作站、树莓派、VPS)的版本状态检查时使用。
OpenClaw主机加固
概述
评估并加固运行OpenClaw的主机,然后将其与用户定义的风险容忍度对齐,同时不中断访问。将OpenClaw安全工具作为首要信号,但将操作系统加固视为独立、明确的一组步骤。
核心规则
- 建议使用最先进的模型(例如Opus 4.5、GPT 5.2+)运行此技能。代理应自检当前模型,如果低于该级别则建议切换;不要阻止执行。
- 任何状态更改操作前都需要明确批准。
- 在未确认用户连接方式的情况下,不要修改远程访问设置。
- 优先使用可逆、分阶段的更改,并制定回滚计划。
- 切勿声称OpenClaw会更改主机防火墙、SSH或操作系统更新策略;它不会。
- 如果角色/身份未知,仅提供建议。
- 格式:每组用户选择都必须编号,以便用户可以用单个数字回复。
- 建议进行系统级备份;尝试验证状态。
工作流程(按顺序执行)
0) 模型自检(非阻塞)
开始前,检查当前模型。如果低于最先进水平(例如Opus 4.5、GPT 5.2+),建议切换。不要阻止执行。
1) 建立上下文(只读)
在询问前,尝试从环境中推断1-5项。如果需要确认,优先使用简单、非技术性问题。
确定(按顺序):
- 操作系统和版本(Linux/macOS/Windows),容器与主机。
- 权限级别(root/管理员 vs 用户)。
- 访问路径(本地控制台、SSH、RDP、tailnet)。
- 网络暴露(公网IP、反向代理、隧道)。
- OpenClaw网关状态和绑定地址。
- 备份系统及状态(例如Time Machine、系统映像、快照)。
- 部署上下文(本地Mac应用、无头网关主机、远程网关、容器/CI)。
- 磁盘加密状态(FileVault/LUKS/BitLocker)。
- 操作系统自动安全更新状态。 注意:这些不是阻塞项,但强烈建议,特别是如果OpenClaw可以访问敏感数据。
- 具有完全访问权限的个人助理的使用模式(本地工作站 vs 无头/远程 vs 其他)。
首先请求一次运行只读检查的权限。如果获得授权,默认运行它们,仅针对无法推断或验证的项目提问。不要询问运行时或命令输出中已可见的信息。将权限请求保持为单个句子,并将后续所需信息列为无序列表(非编号),除非您正在呈现可选择的选项。
如果必须提问,请使用非技术性提示:
- “您使用的是Mac、Windows PC还是Linux?”
- “您是直接登录机器,还是从另一台计算机连接?”
- “这台机器可以从公共互联网访问,还是仅限您的家庭/内部网络?”
- “您是否启用了备份(例如Time Machine),并且它们是最新的吗?”
- “磁盘加密是否开启(FileVault/BitLocker/LUKS)?”
- “自动安全更新是否启用?”
- “您如何使用这台机器?”
示例:
- 与助理共享的个人机器
- 为助理专用的本地机器
- 远程访问的专用远程机器/服务器(始终在线)
- 其他?
只有在系统上下文已知后才询问风险概况。
如果用户授予只读权限,默认运行适用于操作系统的检查。如果没有,则提供(编号的)检查选项。示例:
- 操作系统:
uname -a、sw_vers、cat /etc/os-release。 - 监听端口:
- Linux:
ss -ltnup(如果-u不支持,则用ss -ltnp)。 - macOS:
lsof -nP -iTCP -sTCP:LISTEN。
- Linux:
- 防火墙状态:
- Linux:
ufw status、firewall-cmd --state、nft list ruleset(选择已安装的)。 - macOS:
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate和pfctl -s info。
- Linux:
- 备份(macOS):
tmutil status(如果使用Time Machine)。
2) 运行OpenClaw安全审计(只读)
作为默认只读检查的一部分,运行openclaw security audit --deep。仅在用户请求时提供替代方案:
openclaw security audit(更快,非探测)openclaw security audit --json(结构化输出)
提供应用OpenClaw安全默认设置的选项(编号):
openclaw security audit --fix
明确说明--fix仅收紧OpenClaw默认设置和文件权限。它不会更改主机防火墙、SSH或操作系统更新策略。
如果启用了浏览器控制,建议在所有重要账户上启用双因素认证(2FA),优先使用硬件密钥,仅SMS不足够。
3) 检查OpenClaw版本/更新状态(只读)
作为默认只读检查的一部分,运行openclaw update status。
报告当前频道以及是否有可用更新。
4) 确定风险容忍度(系统上下文之后)
要求用户选择或确认风险态势以及任何必需的服务/开放端口(编号选择如下)。 不要将用户限制在固定配置文件中;如果用户偏好,捕获需求而不是选择配置文件。 提供建议的配置文件作为可选默认值(编号)。注意大多数用户选择家庭/工作站平衡:
- 家庭/工作站平衡(最常见):防火墙开启并采用合理默认设置,远程访问限制在局域网或tailnet内。
- VPS加固:默认拒绝入站防火墙,最少开放端口,仅密钥SSH,禁止root登录,自动安全更新。
- 开发者便利性:允许更多本地服务,明确暴露警告,但仍进行审计。
- 自定义:用户定义的约束(服务、暴露、更新频率、访问方法)。
5) 制定修复计划
提供一个包含以下内容的计划:
- 目标配置文件
- 当前态势摘要
- 与目标的差距
- 分步修复步骤及确切命令
- 访问保留策略和回滚方案
- 风险和潜在锁定场景
- 最小权限说明(例如,避免使用管理员权限,在安全的情况下收紧所有权/权限)
- 凭据卫生说明(OpenClaw凭据位置,优先使用磁盘加密)
任何更改前始终显示计划。
6) 提供执行选项
提供以下选择之一(编号以便用户可以用单个数字回复):
- 为我执行(引导式,逐步批准)
- 仅显示计划
- 仅修复关键问题
- 导出命令供以后使用
7) 执行并确认
对于每个步骤:
- 显示确切命令
- 解释影响和回滚方案
- 确认访问将保持可用
- 在出现意外输出时停止并请求指导
8) 验证和报告
重新检查:
- 防火墙状态
- 监听端口
- 远程访问仍然有效
- OpenClaw安全审计(重新运行)
交付最终态势报告并注明任何延期项目。
必需确认(始终)
需要明确批准:
- 防火墙规则更改
- 开放/关闭端口
- SSH/RDP配置更改
- 安装/删除软件包
- 启用/禁用服务
- 用户/组修改
- 调度任务或启动持久化
- 更新策略更改
- 访问敏感文件或凭据
如果不确定,请询问。
定期检查
在OpenClaw安装或首次加固后,至少运行一次基线审计和版本检查:
openclaw security auditopenclaw security audit --deepopenclaw update status
建议进行持续监控。使用OpenClaw cron工具/CLI调度定期审计(网关调度器)。未经明确批准,不要创建计划任务。将输出存储在用户批准的位置,避免在日志中记录秘密。
在调度无头cron运行时,在输出中包含一条注释,指示用户调用healthcheck以便修复问题。
调度必需提示(始终)
任何审计或加固后,明确提供调度选项并要求直接响应。使用简短提示,例如(编号):
- “您是否希望我通过
openclaw cron add调度定期审计(例如每日/每周)?”
如果用户说是,询问:
- 频率(每日/每周)、首选时间窗口和输出位置
- 是否同时调度
openclaw update status
使用稳定的cron作业名称,以便更新是确定性的。优先使用确切名称:
healthcheck:security-audithealthcheck:update-status
创建前,运行openclaw cron list并匹配确切的name。如果找到,执行openclaw cron edit <id> ...。
如果未找到,执行openclaw cron add --name <name> ...。
还提供定期版本检查,以便用户决定何时更新(编号):
openclaw update status(对于源代码检出和频道首选)npm view openclaw version(发布的npm版本)
OpenClaw命令准确性
仅使用支持的命令和标志:
openclaw security audit [--deep] [--fix] [--json]openclaw status/openclaw status --deepopenclaw health --jsonopenclaw update statusopenclaw cron add|list|runs|run
不要发明CLI标志或暗示OpenClaw强制执行主机防火墙/SSH策略。
日志记录和审计跟踪
记录:
- 网关身份和角色
- 计划ID和时间戳
- 批准的步骤和确切命令
- 退出代码和修改的文件(尽力而为)
对秘密进行脱敏。切勿记录令牌或完整凭据内容。
内存写入(有条件)
仅当用户明确选择加入且会话是私有/本地工作区(根据docs/reference/templates/AGENTS.md)时才写入内存文件。否则,提供用户可决定保存到其他位置的脱敏、可粘贴摘要。
遵循OpenClaw压缩使用的持久内存提示格式:
- 将持久笔记写入
memory/YYYY-MM-DD.md。
每次审计/加固运行后,如果选择加入,将简短、带日期的摘要追加到memory/YYYY-MM-DD.md(检查内容、关键发现、采取的操作、任何计划的cron作业、关键决策以及所有执行的命令)。仅追加:切勿覆盖现有条目。
对敏感主机详细信息进行脱敏(用户名、主机名、IP、序列号、服务名称、令牌)。
如果有持久偏好或决策(风险态势、允许的端口、更新策略),也更新MEMORY.md(长期内存是可选的,仅在私有会话中使用)。
如果会话无法写入工作区,请求权限或提供用户可粘贴到内存文件中的确切条目。