用途
healthcheck 用于对运行 OpenClaw 的主机进行安全评估与加固,并将主机配置对齐到用户自行定义的风险容忍度,同时尽量不破坏现有访问方式。当用户提出安全审计、防火墙/SSH/更新加固等需求时适用。它把 OpenClaw 安全工具的输出作为首要信号,但把操作系统层面的加固视为独立、明确的一组步骤。
核心规则
- 建议使用先进模型运行本技能(例如 Opus 4.5、GPT 5.2+)。代理应自检当前模型,若低于该水平则建议切换,但不阻止执行。
- 任何改变系统状态的操作都需要明确批准。
- 未经确认用户连接方式,不得修改远程访问设置。
- 优先采用可逆、分阶段的变更,并准备回滚计划。
- 绝不声称 OpenClaw 会改变主机防火墙、SSH 或系统更新;它不会。
- 若角色/身份未知,只提供建议。
- 格式要求:每一组用户选择都必须编号,便于用户用单个数字回复。
- 建议进行系统级备份,并尽量核实状态。
工作流程(按顺序)
-
模型自检(非阻塞):开始前检查当前模型,若低于先进水平则建议切换,但不阻止执行。
-
建立上下文(只读):尽量先从环境推断 1–5 项,再提问。需要确认时优先使用简单、非技术性的问题。需确定(按顺序):操作系统及版本(Linux/macOS/Windows)、容器还是主机;权限级别(root/admin 还是普通用户);访问路径(本地控制台、SSH、RDP、tailnet);网络暴露情况(公网 IP、反向代理、隧道);OpenClaw 网关状态与绑定地址;备份系统与状态;部署上下文(本地 mac 应用、无头网关主机、远程网关、容器/CI);磁盘加密状态(FileVault/LUKS/BitLocker);操作系统自动安全更新状态;作为拥有完全访问权限的个人助理的使用模式(本地工作站 vs 无头/远程 vs 其它)。这些不是阻塞项,但强烈建议,尤其在 OpenClaw 可访问敏感数据时。先一次性请求运行只读检查的许可;若获准则默认运行,仅对无法推断或验证的项目提问,不要询问运行时或命令输出中已可见的信息。示例只读检查包括:OS 信息(uname -a、sw_vers、cat /etc/os-release);监听端口(Linux: ss -ltnup 或 ss -ltnp;macOS: lsof -nP -iTCP -sTCP:LISTEN);防火墙状态(Linux: ufw status、firewall-cmd --state、nft list ruleset,按已安装者选择;macOS: /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate 和 pfctl -s info);备份(macOS: tmutil status)。风险画像只在系统上下文已知后才询问。
-
运行 OpenClaw 安全审计(只读):作为默认只读检查的一部分,运行 openclaw security audit --deep。仅在用户请求时提供替代项:openclaw security audit(更快、非探测)、openclaw security audit --json(结构化输出)。可提供应用 OpenClaw 安全默认值(编号):openclaw security audit --fix,并明确说明 --fix 只收紧 OpenClaw 默认值和文件权限,不改变主机防火墙、SSH 或系统更新策略。若启用了浏览器控制,建议所有重要账户启用 2FA,优先硬件密钥,短信不足。
-
检查 OpenClaw 版本/更新状态(只读):作为默认只读检查的一部分,运行 openclaw update status,报告当前通道及是否有可用更新。
-
确定风险容忍度(在系统上下文之后):让用户选择或确认风险姿态及所需开放服务/端口(编号)。不要固化为固定画像;若用户偏好,可改为记录需求而非选择画像。可选建议默认画像(多数用户选择 Home/Workstation Balanced):Home/Workstation Balanced(最常见):防火墙开启并使用合理默认值,远程访问限制为 LAN 或 tailnet;VPS Hardened:入站防火墙默认拒绝,最小开放端口,仅密钥 SSH,禁止 root 登录,自动安全更新;Developer Convenience:允许更多本地服务,明确暴露警告,仍进行审计;Custom:用户定义约束(服务、暴露、更新频率、访问方式)。
-
生成修复计划:计划需包含目标画像、当前姿态摘要、与目标的差距、带确切命令的分步修复、访问保留策略与回滚、风险与潜在锁定场景、最小权限说明、凭据卫生说明。任何变更之前必须先展示计划。
-
提供执行选项(编号):为我执行(引导式、逐步批准);仅展示计划;只修复关键问题;导出命令供以后使用。
-
带确认执行:每一步展示确切命令、解释影响与回滚、确认访问仍然可用、遇到意外输出即停止并寻求指导。
-
验证并报告:重新检查防火墙状态、监听端口、远程访问仍可用、重新运行 OpenClaw 安全审计;给出最终姿态报告并注明任何延后项。
必须的确认项
以下操作始终需要明确批准:防火墙规则变更;打开/关闭端口;SSH/RDP 配置变更;安装/移除软件包;启用/禁用服务;用户/组修改;计划任务或启动持久化;更新策略变更;访问敏感文件或凭据。若不确定,请询问。
周期性检查
在 OpenClaw 安装或首次加固后,至少运行一次基线审计与版本检查:openclaw security audit、openclaw security audit --deep、openclaw update status。建议持续监控,可使用 OpenClaw cron 工具/CLI 调度周期性审计(Gateway 调度器)。未经明确批准不得创建计划任务。输出存储在用户批准的位置,避免日志中出现密钥。调度无头 cron 运行时,应在输出中附注提示用户调用 healthcheck 以便修复问题。
必须的调度提示:在任何审计或加固后,明确提供调度选项并要求直接回复(编号),例如“是否通过 openclaw cron add 调度周期性审计(如每日/每周)?”若用户同意,需询问频率(每日/每周)、首选时间窗、输出位置,以及是否同时调度 openclaw update status。使用稳定的 cron 任务名称以保证更新确定性,优先使用确切名称:healthcheck:security-audit、healthcheck:update-status。创建前先 openclaw cron list 并按确切名称匹配;若找到则 openclaw cron edit <id> ...;若未找到则 openclaw cron add --name <name> ...。还可提供周期性版本检查:openclaw update status(源检出和通道首选)、npm view openclaw version(已发布的 npm 版本)。
命令准确性
仅使用受支持的命与标志:openclaw security audit [--deep] [--fix] [--json];openclaw status / openclaw status --deep;openclaw health --json;openclaw update status;openclaw cron add|list|runs|run。不要编造 CLI 标志,也不要暗示 OpenClaw 会强制主机防火墙/SSH 策略。
日志与审计记录
记录:网关身份与角色;计划 ID 与时间戳;已批准步骤与确切命令;退出码与修改的文件(尽力);脱敏密钥,绝不记录令牌或完整凭据内容。
内存写入(条件性)
仅在用户明确选择加入且会话为私有/本地工作区时,才写入内存文件。否则提供脱敏、可直接粘贴的摘要供用户决定保存到别处。遵循 OpenClaw 压缩所用的持久内存提示格式:将持久笔记写入 memory/YYYY-MM-DD.md。每次审计/加固运行后,若已选择加入,向 memory/YYYY-MM-DD.md 追加简短、带日期的摘要(检查了什么、关键发现、采取的行动、任何调度的 cron 任务、关键决策、执行的所有命令)。仅追加:绝不覆盖现有条目。脱敏主机敏感细节(用户名、主机名、IP、序列号、服务名、令牌)。若有持久偏好或决策(风险姿态、允许端口、更新策略),也更新 MEMORY.md(长期记忆可选,仅在私有会话中使用)。若会话无法写入工作区,请请求许可或提供用户可粘贴到内存文件的确切条目。