乐于分享
好东西不私藏

OpenClaw 安全实践:我的云端 AI 助手部署防护指南

OpenClaw 安全实践:我的云端 AI 助手部署防护指南

摘要:把 AI 助手部署到云端服务器,安全怎么搞?本文基于 Ubuntu 24.04 +  OpenClaw 2026.3.13 实战经验,详解 SSH 加固、Fail2Ban 防暴力破解、端口防护、Docker 隔离等 7  大安全措施,附完整配置和命令,运维/开发者可直接抄作业。


开篇:为什么关注 OpenClaw 安全?

2026 年 2 月,我把 OpenClaw AI 助手部署到了云端 Ubuntu 24.04 服务器。选择云端而非本地,看中的是 24 小时在线、随时访问的便利。但随之而来的问题是:

一个暴露在公网的 AI 助手,如何防止被黑客入侵?

OpenClaw 作为本地优先的 AI 助手框架,本身设计相对安全。但一旦部署到云端,就需要面对:

SSH 暴力破解攻击(每天都在发生)

未授权端口访问

Docker 容器逃逸风险

技能(Skill)代码安全

版本漏洞修复

经过一个月的加固实践,我的服务器成功拦截了 1747 次 暴力破解尝试。今天把这套安全实践完整分享出来,希望能帮到同样在云端部署 OpenClaw 的朋友。


7 大安全实践详解

一、SSH 安全加固:第一道防线

SSH 是云端服务器的入口,也是攻击者的首要目标。我的策略是:限制来源 + 禁用密码 + 密钥登录

1.1 配置 SSH 白名单

只允许特定 IP 访问 SSH 端口(22):

编辑 SSH 配置

sudo vim /etc/ssh/sshd_config

添加允许登录的 IP(根据实际情况修改)

AllowUsers root@X.X.X.X root@X.X.X.X

禁用密码登录,强制使用密钥

PasswordAuthentication no

PubkeyAuthentication yes

PermitRootLogin prohibit-password

1.2 我的合法 IP 列表

IP
归属地
说明
X.X.X.X
XX电信
家庭宽带(动态 IP 需定期更新)
X.X.X.X
XX联通
备用管理 IP

⚠️ 注意:家庭宽带通常是动态 IP,更换后需及时更新白名单,否则会被锁在门外。建议配置备用登录方式(如云厂商的 VNC 控制台)。

1.3 重启 SSH 服务

bash

sudo systemctl restart sshd


二、Fail2Ban 防暴力破解:自动封禁攻击者

即使限制了 IP,攻击者仍会尝试暴力破解。Fail2Ban 可以自动检测失败登录并封禁 IP。

2.1 安装 Fail2Ban

bash

sudo apt update

sudo apt install fail2ban -y

2.2 配置 jail.local

bash

sudo vim /etc/fail2ban/jail.local

我的配置如下:

ini

[DEFAULT]

忽略的 IP(白名单)

ignoreip = 127.0.0.1/8 ::1 X.X.X.X

封禁时间(秒)

bantime = 3600

检测窗口(秒)

findtime = 600

最大失败次数

maxretry = 5

日志路径

logpath = /var/log/auth.log

[sshd]

enabled = true

port = 22

maxretry = 5

bantime = 3600

findtime = 600

[sshd-aggressive]

enabled = true

port = 22

maxretry = 3

bantime = 7200

findtime = 600

2.3 配置说明

Jail
最大失败次数
封禁时间
适用场景
sshd
5 次
1 小时
常规防护,避免误封
sshd-aggressive
3 次
2 小时
激进防护,快速封禁

2.4 启动并查看状态

bash

启动 Fail2Ban

sudo systemctl enable fail2ban

sudo systemctl start fail2ban

查看总体状态

sudo fail2ban-client status

查看 sshd jail 状态

sudo fail2ban-client status sshd

查看 sshd-aggressive jail 状态

sudo fail2ban-client status sshd-aggressive

2.5 我的拦截数据(截至 2026-03-17)

Status for the jail: sshd

|- Filter

|  |- Currently failed: 0

|  |- Total failed: 650

|  `- File list: /var/log/auth.log

`- Action

|- Currently banned: 0

|- Total banned: 650

Status for the jail: sshd-aggressive

|- Filter

|  |- Currently failed: 0

|  |- Total failed: 1097

|  `- File list: /var/log/auth.log

`- Action

|- Currently banned: 22

|- Total banned: 1097

累计拦截 1747 次失败尝试,当前封禁 22 个恶意 IP。

2.6 手动解封 IP(误封时使用)

bash

解封单个 IP

sudo fail2ban-client set sshd unbanip

sudo fail2ban-client set sshd-aggressive unbanip

查看已封禁 IP 列表

sudo fail2ban-client get sshd banned

sudo fail2ban-client get sshd-aggressive banned


三、端口防护:最小化暴露面

默认只开放必要的端口,其他一律关闭。

3.1 我的开放端口

端口
服务
说明
22
SSH
远程管理(已加固)
18789
OpenClaw Gateway
AI 助手服务端口

3.2 配置 UFW 防火墙

bash

安装 UFW(Ubuntu 通常已预装)

sudo apt install ufw -y

设置默认策略

sudo ufw default deny incoming

默认拒绝入站

sudo ufw default allow outgoing

允许出站

开放必要端口

sudo ufw allow 22/tcp

SSH

sudo ufw allow 18789/tcp

OpenClaw Gateway

启用防火墙

sudo ufw enable

查看状态

sudo ufw status verbose

3.3 验证端口开放

查看监听端口

sudo ss -tlnp | grep -E '22|18789'

从外部测试端口连通性

telnet <服务器 IP> 18789


四、Docker 隔离:容器化运行 OpenClaw

OpenClaw 推荐通过 Docker 运行,天然具备隔离性。

4.1 Docker 安全最佳实践

docker-compose.yml 示例

version: '3.8'

services:

openclaw:

image: openclaw/openclaw:2026.3.13

container_name: openclaw

restart: unless-stopped

ports:

- "127.0.0.1:18789:18789"

仅绑定本地,通过 SSH 隧道访问

volumes:

- ./workspace:/root/.openclaw/workspace

- ./config:/root/.openclaw/config

environment:

- OPENCLAW_ENV=production

security_opt:

- no-new-privileges:true

read_only: true

tmpfs:

- /tmp

4.2 关键安全配置说明

配置
作用
127.0.0.1:18789
仅绑定本地回环,不直接暴露公网
no-new-privileges
禁止容器内提权
read_only: true
容器文件系统只读
tmpfs
临时目录内存挂载,重启清空

4.3 通过 SSH 隧道访问

bash

本地建立隧道(将远程 18789 映射到本地)

ssh -L 18789:127.0.0.1:18789 root@<服务器 IP>

然后浏览器访问 http://localhost:18789


五、版本升级:及时修复漏洞

OpenClaw 更新频繁,及时升级可修复已知漏洞。

5.1 检查当前版本

bash

查看 OpenClaw 版本

openclaw --version

查看 Docker 镜像版本

docker images | grep openclaw

5.2 升级流程

bash

拉取最新镜像

docker pull openclaw/openclaw:latest

停止并删除旧容器

docker stop openclaw

docker rm openclaw

重新创建容器

docker-compose up -d

验证新版本

openclaw --version

5.3 我的版本信息

当前版本

:OpenClaw 2026.3.13

操作系统

:Ubuntu 24.04.1 LTS

内核

:Linux 6.8.0-71-generic

Node.js

:v22.22.0

💡 建议:订阅 OpenClaw 发布通知,重大安全更新 24 小时内升级。


六、Skill 安全审查:第三方代码风险

OpenClaw 的技能(Skill)本质是代码,可能存在安全风险。

6.1 安装前审查清单

技能来源是否可信(官方/知名作者)

是否请求敏感权限(文件读写、网络访问)

代码是否开源可审计

是否有恶意依赖(检查 package.json)

6.2 我的安全原则

使用skill-vetter把所有技能审查一遍,后续安装技能前也会自己审查。

安全原则(2026-03-11 设定)

- ✅ 官方技能:默认信任

- ✅ 知名作者技能:审查后安装

- ⚠️ 可疑/有风险技能:默认不安装

- ❌ 需要 root 权限的技能:拒绝

- ❌ 闭源且功能不明的技能:拒绝

6.3 查看已安装技能

列出所有已安装技能

ls -la ~/.openclaw/workspace/skills/

查看技能详情

cat ~/.openclaw/workspace/skills/<技能名>/SKILL.md


七、定期安全检查:持续监控

安全不是一次性的,需要定期检查。

7.1 我的检查清单(每周)

bash

1. 检查系统更新

sudo apt update && sudo apt list --upgradable

2. 检查 Fail2Ban 状态

sudo fail2ban-client status

3. 检查异常登录

sudo last -n 20

4. 检查开放端口

sudo ss -tlnp

5. 检查 Docker 容器状态

docker ps -a

6. 查看系统日志

sudo journalctl -xe --since "24 hours ago"

7.2 自动化检查脚本

bash

#!/bin/bash

security-check.sh

echo "=== OpenClaw 安全检查 ==="

echo "日期:$(date)"

echo ""

echo "1. Fail2Ban 状态:"

sudo fail2ban-client status | grep -E "Jail|banned"

echo ""

echo "2. 开放端口:"

sudo ss -tlnp | grep LISTEN

echo ""

echo "3. Docker 容器:"

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

echo ""

echo "4. 最近登录:"

sudo last -n 5

7.3 定期升级系统

bash

有最新版本执行一次完整升级

sudo apt update

sudo apt upgrade -y

sudo apt dist-upgrade -y

sudo reboot


结尾:安全是持续过程,不是终点

部署 OpenClaw 到云端,安全不是一次配置就万事大吉。攻击者在进化,漏洞在发现,我们的防护也需要持续更新。

以上安全实践无需手动执行命令,我均通过自然语言交由「龙虾赤龙」完成安装部署、定时任务配置等操作,整体安全防护工作可全权交由龙虾处理。当然我也会备注一下,在确保自身正常运行的情况下进行修改。

措施
优先级
实施难度
效果
SSH 白名单
🔴 高
阻断大部分攻击
Fail2Ban
🔴 高
自动封禁暴力破解
端口最小化
🔴 高
减少攻击面
Docker 隔离
🟡 中
容器级防护
版本升级
🟡 中
修复已知漏洞
Skill 审查
🟡 中
防止代码风险
定期检查
🟢 低
持续监控

下一步计划

配置自动安全更新(unattended-upgrades)

部署入侵检测系统(如 OSSEC)

配置日志集中收集和分析

定期备份配置和数据


安全是持续过程,不是终点。

希望这份实践指南能帮你更安全地部署 OpenClaw。如果你有更好的安全建议,欢迎在评论区交流。

作者:阿生(OpenClaw 用户)