OpenClaw系列第26课:安全加固 – SSH / 防火墙 / 自动更新
这是「OpenClaw 教程课程」第 26 课。 上一课我们讲了 OpenClaw 内部的权限控制:sandbox、tool policy、elevated、exec approvals。今天继续往外一层,讲运行 OpenClaw 的主机本身怎么加固:SSH、防火墙、自动更新和安全巡检。

图:OpenClaw 的安全不只在 Agent 配置里,也在宿主机的 SSH、防火墙、更新策略、备份和网络暴露面里。
很多人搭 OpenClaw 时,会把注意力放在功能上:
-
Telegram 能不能回复? -
exec 能不能跑命令? -
browser 能不能操作网页? -
手机节点能不能拍照? -
cron / heartbeat 能不能自动执行?
这些当然重要。
但只要 OpenClaw 开始接触真实文件、真实账号、真实设备,安全问题就不能再靠“应该没事”来处理。
特别是 Gateway 跑在 VPS 或家用服务器上时,你至少要回答几个问题:
-
SSH 会不会被公网爆破? -
防火墙是不是只开放必要端口? -
Gateway 端口有没有裸露公网? -
Tailscale / SSH tunnel 是不是配置清楚? -
OpenClaw 本身有没有安全审计? -
系统和 OpenClaw 有没有更新策略? -
出问题时有没有备份和回滚方案?
这一课不是让你变成安全专家。
而是给你一个实用基线:
让 OpenClaw 主机不裸奔、不乱开、不失控、可巡检、可恢复。
一、先说结论:OpenClaw 安全加固分两层
很多新手会误以为:
我把 OpenClaw 配好权限,系统就安全了。
不对。
OpenClaw 的安全至少分两层。
第一层:OpenClaw 内部安全
上一课讲的内容属于这一层:
-
sandbox -
tool policy -
elevated -
exec approvals -
node command policy -
channel allowlist / pairing -
security audit
这层回答:
Agent 和工具能做什么?
第二层:宿主机安全
今天讲的是这一层:
-
SSH -
防火墙 -
系统用户 -
端口暴露 -
自动更新 -
备份 -
日志巡检 -
OpenClaw 更新
这层回答:
运行 OpenClaw 的机器本身能不能被别人打进来?
两层都重要。
只做第一层,不管 SSH 和防火墙,等于把控制台放在门口。
只做第二层,不管 tool policy 和 approvals,等于门锁很好,但进屋的人权限太大。

图:OpenClaw 安全分为内部权限层和宿主机安全层,前者控制 Agent 能力,后者控制机器暴露面和运维风险。
二、先明确你的部署场景
安全加固没有一套适合所有人的配置。
先判断你是哪种场景。
1)本地个人电脑
特点:
-
OpenClaw 跑在自己的 Mac / Linux / Windows 上 -
主要自己使用 -
不需要公网访问 -
可能有浏览器登录态和个人文件
重点:
-
不暴露 Gateway 端口 -
保持系统更新 -
打开磁盘加密 -
控制工具权限 -
避免共享给陌生人使用
2)VPS / 远程服务器
特点:
-
7×24 在线 -
常有公网 IP -
通过 SSH 远程管理 -
适合跑 Gateway、Telegram、Webhook、Cron
重点:
-
SSH key-only -
禁止 root 密码登录 -
防火墙 deny-by-default -
只开放必要端口 -
Gateway 不裸露公网 -
自动安全更新 -
定期 audit
3)家用服务器 / NAS / 树莓派
特点:
-
在家庭局域网 -
可能没有公网 IP -
常通过 Tailscale 访问 -
可能连接摄像头、设备、传感器
重点:
-
不做路由器端口转发暴露 Gateway -
使用 Tailscale / SSH tunnel -
控制局域网自动信任 -
注意备份和 SD 卡寿命 -
节点能力最小授权
4)团队或共享环境
这里要特别小心。
OpenClaw 文档强调,它默认是 personal assistant trust model。
也就是:
一个 Gateway 对应一个可信操作边界。
如果多个互不信任的人共用一个带工具权限的 Gateway,不是推荐模型。
更好的做法是:
-
分开 Gateway -
分开 OS 用户 -
分开 credentials -
分开浏览器 profile -
分开主机或容器
三、第一步:运行 OpenClaw 自带安全审计
OpenClaw 提供:
openclaw security auditopenclaw security audit --deepopenclaw security audit --json
这是你最应该养成习惯的命令之一。
普通 audit
openclaw security audit
它主要做冷配置和文件系统层面的检查。
适合日常快速跑。
deep audit
openclaw security audit --deep
它会包含 live Gateway probes 和插件相关安全检查。
适合:
-
改过配置后 -
开了远程访问后 -
安装插件后 -
准备长期运行前
JSON 输出
openclaw security audit --json
适合脚本或 CI。
比如:
openclaw security audit --deep --json | jq '.summary'
自动修复
openclaw security audit --fix
注意:--fix 不是万能安全加固。
文档里说,它会做一些安全、确定性的修复,例如:
-
把常见 open group policy 收紧到 allowlist -
恢复 logging.redactSensitive: "tools" -
收紧 state/config/credentials/auth 文件权限 -
收紧 config include 文件权限
但它不会做这些事:
-
不会旋转 token / password / API key -
不会改宿主机防火墙 -
不会改 SSH 配置 -
不会移除插件 -
不会替你决定 Gateway 网络暴露方式
一句话:
OpenClaw audit 能发现很多 OpenClaw 配置风险,但不会替你加固整台服务器。

图:安全巡检建议先跑 openclaw security audit,再看 deep audit,必要时使用 –fix,但系统级 SSH 和防火墙仍需单独处理。
四、第二步:确认 Gateway 有没有暴露公网
这是 OpenClaw 安全里最重要的问题之一。
Gateway 默认 WebSocket / HTTP 端口通常是:
18789
第 22 课已经讲过:
不要把 Gateway 端口裸露公网。
推荐模式是:
Gateway bind = loopback远程访问走 Tailscale Serve / SSH tunnel
也就是让 Gateway 继续监听:
127.0.0.1:18789
外部设备通过安全通道访问。
推荐检查
openclaw statusopenclaw gateway statusopenclaw security audit --deep
系统层面可以看监听端口。
Linux:
ss -ltnp
macOS:
lsof -nP -iTCP -sTCP:LISTEN
如果你看到 Gateway 监听在:
0.0.0.0:18789
或者公网 IP 的 18789,就要非常谨慎。
不是说绝对不能这么做,而是你必须清楚:
-
是否有强认证 -
是否只在可信网络暴露 -
是否有反向代理和 TLS -
是否需要 Tailscale / SSH 替代 -
是否有防火墙限制来源 IP
新手默认答案是:
不要这样做。
五、SSH:先保护你的入口
如果 OpenClaw 跑在 VPS,SSH 基本就是管理入口。
SSH 出问题,OpenClaw 配得再好也没用。
推荐原则
-
使用 SSH key 登录 -
禁止 root 密码登录 -
禁止密码登录,或至少限制密码登录 -
保留一个可用的 sudo 用户 -
修改 SSH 配置前,先开一个现有 SSH 会话别断 -
改完后新开窗口测试,再关闭旧窗口
不建议
-
只用 root + 密码 -
密码很短 -
多人共用同一个 Linux 用户 -
不知道怎么回滚就改 sshd_config -
远程改 SSH 后直接断开当前连接
常见检查命令
查看 SSH 服务是否监听:
ss -ltnp | grep ssh
查看失败登录:
sudo journalctl -u ssh --since "24 hours ago"
不同系统服务名可能是 ssh 或 sshd。
Debian / Ubuntu 常见:
sudo systemctl status ssh
CentOS / RHEL 常见:
sudo systemctl status sshd
修改 SSH 前一定要有回滚方案
比如:
-
云厂商控制台能不能进机器 -
有没有 root 控制台 -
有没有快照 -
当前 SSH 会话是否保持不断 -
新配置是否用 sshd -t检查过
修改 SSH 属于可能把自己锁在门外的操作。
所以本教程只给原则,不建议你直接复制陌生命令一把梭。
六、防火墙:默认拒绝,只开必要端口
VPS 上建议使用 deny-by-default 思路:
默认拒绝入站只开放 SSH只开放确实需要的业务端口Gateway 不直接开放公网
常见工具:
-
Ubuntu / Debian: ufw -
RHEL / CentOS / Fedora: firewalld -
通用 Linux: nftables -
云服务器:还要看云安全组
UFW 示例思路
只作为示例,真正执行前要确认你当前 SSH 端口。
sudo ufw status verbosesudo ufw allow OpenSSHsudo ufw enable
如果你的 SSH 不在 22,而是自定义端口,要先允许那个端口:
sudo ufw allow <ssh-port>/tcp
再启用防火墙。
云安全组也要检查
很多 VPS 有两层防火墙:
-
系统内防火墙 -
云厂商安全组
你系统里关了端口,但云安全组开着;或者系统里开了,云安全组拦了,都可能造成困惑。
建议对照检查:
-
SSH 端口 -
HTTP / HTTPS 端口 -
是否误开 18789 -
是否误开数据库端口 -
是否误开 Docker / Redis / Prometheus 等服务端口

图:VPS 上建议 SSH key-only、关闭不必要入站端口,Gateway 保持 loopback,通过 Tailscale 或 SSH tunnel 访问。
七、哪些端口应该开放?
这取决于你的部署方式。
本地个人电脑
通常不需要开放任何入站端口。
VPS 跑 Telegram bot
Telegram bot 通常是 Gateway 主动访问 Telegram API,不需要你开放 Telegram 入站端口。
常见开放:
-
SSH:给你管理服务器 -
HTTP / HTTPS:只有你明确部署 Webhook / 反代 / 公开服务时才开放
不建议开放:
-
18789Gateway 端口 -
数据库端口 -
Docker API -
Redis -
内部管理面板
Tailscale Serve 模式
通常 Gateway 本机继续 loopback。
公网防火墙不需要开放 18789。
Tailnet 内访问由 Tailscale 处理。
SSH tunnel 模式
也不需要开放 Gateway 端口。
只需要 SSH 可达。
八、Tailscale 和 SSH tunnel 的安全边界
第 22 课讲过 Tailscale,这里从安全角度再强调一次。
Tailscale 解决网络可达
它让你的设备进入同一个 tailnet。
但它不等于:
-
自动批准 OpenClaw 节点 -
自动允许所有工具 -
自动跳过 Gateway auth -
自动跳过 exec approvals
SSH tunnel 解决安全转发
它把本地端口安全转发到远程 loopback。
比如:
ssh -N -L 18789:127.0.0.1:18789 user@gateway-host
然后你访问本地:
127.0.0.1:18789
实际到远程 Gateway。
这比开放公网 18789 安全很多。
安全边界一句话
Tailscale / SSH tunnel 负责把路打通,OpenClaw auth / pairing / policy 负责决定能不能进门和能做什么。
九、系统自动更新:至少开启安全更新
长期运行的 Gateway 主机,不更新也有风险。
尤其是:
-
OpenSSL -
SSH -
kernel -
sudo -
systemd -
curl / git -
浏览器相关组件
如果是 Ubuntu / Debian,可以考虑 unattended-upgrades。
如果是 RHEL 系,可以考虑 dnf-automatic。
如果是 macOS,至少开启系统安全更新。
这里不直接给“一键开启”命令,因为不同系统差异很大,而且更新策略会影响服务稳定。
建议原则:
-
安全更新优先自动化 -
大版本升级手动确认 -
更新后检查 OpenClaw gateway 状态 -
关键机器先有备份或快照 -
VPS 可以用云快照兜底
十、OpenClaw 更新:用 update status 和 update
OpenClaw 自己也要更新。
常用命令:
openclaw update statusopenclaw updateopenclaw update --dry-runopenclaw update --json
先看状态
openclaw update status
它会显示当前 channel、版本和是否有更新。
预演更新
openclaw update --dry-run
适合你想知道会发生什么,但暂时不想真正更新。
执行更新
openclaw update
文档里说,openclaw update 会检测安装类型,更新后运行 doctor,并重启 Gateway。
更新后检查
openclaw doctoropenclaw gateway statusopenclaw health
如果你手动用 npm / pnpm / bun 更新,记得更新后重启 Gateway。
自动更新
OpenClaw auto-updater 默认关闭。
配置大概是:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}
我对新手的建议是:
先定期 check,再决定是否开启自动 apply。
也就是先养成:
openclaw update status
的习惯。

图:推荐先 update status,再 dry-run,确认后 update,最后 doctor、gateway status、health 验证。
十一、备份:安全加固前先想好怎么恢复
安全加固不是只会变安全。
也可能带来:
-
SSH 锁死 -
防火墙误封 -
配置写错 -
Gateway 起不来 -
更新后插件不兼容 -
凭据丢失
所以要有备份意识。
OpenClaw 里比较敏感、值得关注的内容包括:
-
~/.openclaw/openclaw.json -
~/.openclaw/credentials/ -
~/.openclaw/devices/ -
~/.openclaw/secrets.json -
agent 的 auth-profiles.json -
session / memory / workspace 数据
这些文件可能包含:
-
bot token -
pairing allowlist -
model API key 引用 -
OAuth 状态 -
channel 登录态 -
device token
备份要注意两点:
-
要能恢复 -
备份本身也要加密或限制权限
否则备份泄漏也是泄漏。
十二、磁盘加密:个人机器尤其重要
如果 OpenClaw 跑在个人电脑上,它可能能访问很多个人数据。
建议开启磁盘加密:
-
macOS:FileVault -
Windows:BitLocker -
Linux:LUKS 或云盘加密
这不能防止在线攻击。
但可以降低设备丢失、硬盘被拿走、云盘快照泄漏时的风险。
十三、日志和密钥:不要把秘密写进日志
OpenClaw 的安全 audit 会关注日志脱敏配置。
例如 logging.redactSensitive。
security audit --fix 会把常见错误配置恢复到更安全状态,比如:
logging.redactSensitive: "tools"
你自己写脚本时也要注意:
-
不要 echo $API_KEY -
不要把完整 token 贴进群聊 -
不要把 setup code 发给别人 -
不要把 ~/.openclaw/credentials上传公开仓库 -
不要把 debug log 发给陌生人前不脱敏
十四、浏览器和账号安全
如果 OpenClaw 能操作浏览器,风险会变大。
因为浏览器可能有:
-
已登录网站 -
邮箱 -
云盘 -
管理后台 -
支付后台 -
社交账号
建议:
-
重要账号开启 2FA -
优先硬件安全密钥 -
不要让共享 agent 使用个人浏览器 profile -
为自动化准备专用浏览器 profile -
不要把 browser control 暴露公网 -
远程浏览器控制要当成 operator access 对待
一句话:
Agent 能操作浏览器,就相当于能替你点很多已经登录的网站。
十五、插件和 hooks:外部入口要更谨慎
第 19 课讲过 webhook / hooks。
它们属于外部触发入口。
安全 audit 会检查很多 webhook 风险,比如:
-
hooks token 太短 -
hooks token 复用 Gateway token -
hooks path 是 / -
defaultSessionKey 未设置 -
allowedAgentIds 不受限 -
sessionKey overrides 太宽
建议:
-
webhook token 单独生成,不复用 Gateway token -
path 不要用 / -
限制 allowedAgentIds -
限制 sessionKey override -
对外入口尽量加反代 / TLS / IP 限制 -
不需要就关闭
插件也一样。
插件本质上会增加工具和代码面。
只安装你信任的插件,并定期更新。
十六、定期巡检:不要只加固一次
安全不是一次性动作。
建议你建立一个简单节奏:
每周
openclaw security auditopenclaw update status
每次改配置后
openclaw security audit --deepopenclaw doctor
每次更新后
openclaw doctoropenclaw gateway statusopenclaw health
每次开放新入口后
检查:
-
防火墙 -
云安全组 -
Gateway bind / auth -
channel allowlist -
tool policy -
security audit –deep
如果你要做自动巡检,可以用 OpenClaw cron。
但创建计划任务属于持久化行为,应该明确确认后再做。
十七、一个安全巡检命令清单
下面是一套只读检查思路。
OpenClaw 层
openclaw statusopenclaw status --deepopenclaw security auditopenclaw security audit --deepopenclaw update statusopenclaw doctor
Linux 主机层
uname -acat /etc/os-releasess -ltnpsudo ufw status verbosesudo firewall-cmd --state
不一定每台机器都有 ufw 或 firewalld。
哪个存在看哪个。
macOS 主机层
sw_verslsof -nP -iTCP -sTCP:LISTEN/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Tailscale
tailscale status
这套命令里有些需要 sudo。
真正执行前要确认环境和权限。
十八、一个推荐的 VPS 安全基线
如果你的 Gateway 跑在 VPS,我建议基线是:
-
SSH key-only -
禁止 root 密码登录 -
防火墙默认拒绝入站 -
只开放 SSH,以及明确需要的 HTTP / HTTPS -
不开放 Gateway 18789到公网 -
使用 Tailscale Serve 或 SSH tunnel 访问 Gateway -
OpenClaw gateway.auth使用 token / password -
channel DM / group 使用 allowlist / pairing -
exec 不默认 full,至少重要场景用 allowlist / ask -
openclaw security audit --deep定期跑 -
openclaw update status定期看 -
系统安全更新有策略 -
关键配置和 credentials 有加密备份

图:VPS 安全基线包括 SSH key-only、防火墙默认拒绝、Gateway 不裸露公网、Tailscale/SSH tunnel、审计、更新和备份。
十九、不要做的危险操作
1)不要裸露 Gateway 端口
尤其不要:
0.0.0.0:18789
配合弱 auth 或 no auth 会非常危险。
2)不要复用 token
Webhook token、Gateway token、模型 API key,不要混用。
3)不要把 credentials 传到公开仓库
尤其是:
~/.openclaw/credentials/~/.openclaw/secrets.jsonauth-profiles.json
4)不要在不确认 SSH 回滚时启用防火墙
这可能把你锁在服务器外面。
5)不要让陌生人使用同一个带工具权限的 Gateway
OpenClaw 默认不是 hostile multi-tenant 安全边界。
6)不要忽略浏览器登录态风险
有 browser control 的 Agent,可能能操作你已登录的网站。
二十、适合新手的提问模板
1)只读安全巡检
请帮我做 OpenClaw 主机安全巡检,只做只读检查。先运行 openclaw security audit --deep、openclaw update status、openclaw status,再根据系统检查监听端口和防火墙状态,不要修改配置。
2)检查 Gateway 是否裸露公网
请帮我检查 OpenClaw Gateway 是否可能裸露公网。重点看 gateway bind/auth、监听端口、防火墙和 Tailscale/SSH tunnel 路径。只读检查。
3)设计 VPS 加固方案
我的 OpenClaw Gateway 跑在 VPS 上。请帮我设计 SSH、防火墙、Tailscale、OpenClaw audit、更新和备份的安全基线。先给计划,不要直接执行。
4)更新前检查
请帮我在更新 OpenClaw 前做检查:update status、security audit、doctor,并说明是否建议先备份或 dry-run。
5)防火墙变更前确认
我想开启防火墙。请先列出当前 SSH 端口、当前连接方式、需要保留的端口、回滚方案,再给我命令。不要直接执行。
6)定期巡检计划
请帮我设计一个每周 OpenClaw 安全巡检计划,包括 security audit、update status、日志检查和需要人工确认的事项。先只给方案,不要创建 cron。
二十一、这一课最值得记住的一句话
如果今天只记一句话:
OpenClaw 的工具权限很重要,但宿主机 SSH、防火墙、更新和备份同样重要。
再记一句安全原则:
先减少暴露面,再加认证;先有回滚方案,再改远程访问。
二十二、总结
今天这节课,我们讲了 OpenClaw 主机安全加固的基本路线:
-
OpenClaw 安全分为内部权限层和宿主机安全层。 -
先明确部署场景:本地电脑、VPS、家用服务器或共享环境。 -
定期运行 openclaw security audit和--deep。 -
security audit --fix只做 OpenClaw 内部安全修复,不改 SSH / 防火墙。 -
Gateway 端口不要裸露公网,优先 loopback + Tailscale Serve / SSH tunnel。 -
VPS 上 SSH 要优先 key-only,并保留回滚路径。 -
防火墙默认拒绝入站,只开放必要端口。 -
云安全组和系统防火墙都要检查。 -
系统安全更新和 OpenClaw 更新都要有策略。 -
备份要能恢复,备份本身也要保护。 -
浏览器控制和 webhook / hooks 都属于高风险入口。 -
安全巡检应该定期做,而不是装完才做一次。
安全加固的目标不是把系统变得完全不可用。
而是让 OpenClaw 在长期运行时保持一个可控状态:
入口清楚权限清楚暴露面清楚更新清楚出事能恢复
这就是个人 AI 系统走向长期可用的基础。
下一课预告
下一课我们会讲:
第 27 课:日志与调试——怎么看 Gateway 日志排错
会重点讲:
-
Gateway 日志在哪里看 -
openclaw logs --follow怎么用 -
怎么区分模型错误、通道错误、工具错误、权限错误 -
deep status / doctor / security audit 怎么组合使用 -
日志里哪些信息不能随便发给别人
🦞 本文由八条撰写,持续更新中。
夜雨聆风