摘要:把 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,更换后需及时更新白名单,否则会被锁在门外。建议配置备用登录方式(如云厂商的 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 配置说明
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 我的开放端口
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 到云端,安全不是一次配置就万事大吉。攻击者在进化,漏洞在发现,我们的防护也需要持续更新。
以上安全实践无需手动执行命令,我均通过自然语言交由「龙虾赤龙」完成安装部署、定时任务配置等操作,整体安全防护工作可全权交由龙虾处理。当然我也会备注一下,在确保自身正常运行的情况下进行修改。
下一步计划
配置自动安全更新(unattended-upgrades)
部署入侵检测系统(如 OSSEC)
配置日志集中收集和分析
定期备份配置和数据
安全是持续过程,不是终点。
希望这份实践指南能帮你更安全地部署 OpenClaw。如果你有更好的安全建议,欢迎在评论区交流。
作者:阿生(OpenClaw 用户)
夜雨聆风