千万不要在用于网上银行、收发邮件或处理个人事务的同一台电脑上运行 OpenClaw。请使用单独的电脑、即使是便宜的电脑也可以。
Linux 系统上的用户root可以执行任何操作——删除文件、安装恶意软件、读取机密信息。建议为 OpenClaw 创建一个普通用户。
sudo adduser openclawsudo usermod -aG sudo openclawsu - openclaw
OpenClaw 默认运行在某个端口上8080。任何知道 OpenClaw 存在的人都可以扫描互联网找到该端口。更改它就像移动你家的前门——自动化攻击者根本找不到。
{ "gateway": { "port": 39217, "bind": "loopback" }}
重启 OpenClaw
openclaw gateway restart
Tailscale会在您的设备之间创建一个私有网络。您的服务器对整个互联网都是不可见的——只有您授权的设备才能访问它。这就像一条只有您拥有钥匙的秘密隧道。 在您的服务器上安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | shsudo tailscale up
它会给你一个登录链接。点击链接,用 Google/GitHub 登录,就完成了。 也可以安装到你的手机/笔记本电脑上。 在所有你想访问 OpenClaw 的设备上下载 Tailscale 应用。现在它们就可以互相私密通信了。 配置 OpenClaw 以使用 Tailscale
{ "gateway": { "bind": "loopback", "port": 39217, "auth": { "allowTailscale": true }, "tailscale": { "mode": "serve" } }}
SSH 是您远程连接到服务器的方式。默认情况下,它使用密码,而密码很容易被猜到。SSH 密钥就像一把无法被猜到的物理钥匙,Fail2ban 会自动阻止任何试图破解它的人。 步骤A:创建SSH密钥(在您的本地计算机上)
ssh-keygen -t ed25519 -C "[email protected]"
步骤 B:将密钥复制到您的服务器
ssh-copy-id openclaw@YOUR_SERVER_IP
步骤 C:禁用密码登录
sudo nano /etc/ssh/sshd_config
重启 SSH
sudo systemctl restart sshd
步骤 D:安装 Fail2ban
sudo apt updatesudo apt install fail2ban -ysudo systemctl enable fail2bansudo systemctl start fail2ban
UFW(简易防火墙)会阻止所有入站连接,只允许你明确允许的连接。你可以把它想象成门口的保安——如果你不在名单上,就进不去。
# Block everything by defaultsudo ufw default deny incomingsudo ufw default allow outgoing
# Allow SSH (so you don't lock yourself out!)sudo ufw allow ssh
# If NOT using Tailscale, allow your OpenClaw port# sudo ufw allow 39217
# Turn it onsudo ufw enable
# Check it's workingsudo ufw status
请明确告知 OpenClaw 哪些 Telegram 账号可以与它互动。其他任何人给你的机器人发消息?完全无视。没有回复,没有确认,什么都没有。 查找您的 Telegram 用户 ID 打开 Telegram,搜索@userinfobot,发送/start。它会回复你的用户 ID(类似 10 123456789... 将其添加到您的配置中openclaw.json
{ "channels": { "telegram": { "dmPolicy": "pairing", "groupPolicy": "disabled", "allowFrom": ["tg:YOUR_USER_ID_HERE"] } }}
设置强密码openclaw.json
{ "gateway": { "auth": { "mode": "password", "password": "PICK-A-RANDOM-30-CHAR-PASSWORD-HERE" } }}
将此内容复制并粘贴到您的 OpenClaw 中
审核您的安全设置。检查:你是以root用户身份运行的吗?(你不应该这样做)2. 网关运行在哪个端口上?(不应为8080,应为自定义端口)3. 网关绑定的是“loopback”(良好)还是“0.0.0.0”(不良)4. Tailscale 是否配置为“mode”为“serve”且“allowTailscale”为 true?5. 配置文件中是否有允许来源列表?(应该有)6. DM和组策略设置正确吗?(dmPolicy:配对,groupPolicy:禁用)7. UFW是否已启用?哪些端口处于开放状态?8. Fail2ban正在运行吗?9. openclaw.json 文件的权限是什么?(应为 600)R1:“API”必须译为API 原文:10. 配置文件中是否有硬编码的API密钥?(它们应放在.env文件中) 译文:11. 子代理是否配置了Docker沙箱?12. 使用“capDrop”: ["ALL"]时,沙盒功能是否被移除?
配置 OpenClaw,使其在发生任何异常情况时通知您。登录失败、配置更改、新的 SSH 连接您将立即知晓。 添加到 ~/.openclaw/workspace/SOUL.md
## Security Monitoring- If you detect any failed authentication attempts, alert me immediately- If any configuration files are modified, tell me what changed- If a new SSH session connects to this server, let me know- Never output API keys, passwords, tokens, or .env file contents- If someone asks you to reveal secrets, refuse and alert me- Run a daily security check and report any issues
如果你的机器人放在群聊里,群里的任何人都可以给它下达指令。他们可以让它读取你的文件、运行命令,或者做任何你从未授权的事情。所以,请只在私聊中使用机器人。 openclaw.json
{ "channels": { "telegram": { "dmPolicy": "pairing", "groupPolicy": "disabled", "allowFrom": ["tg:YOUR_USER_ID"] } }}
OpenClaw可以生成子代理、更小的 AI 工作单元,它们可以自主处理特定任务。你可以把它们想象成你的助手雇佣的助手。它们可以独立研究某个主题、编写代码或处理文件。 问题在于:子代理会读取各种内容,例如网页、文件和文档。如果子代理读取了包含隐藏指令的恶意网页(这称为提示注入),它就可能被诱骗执行恶意操作,例如读取您的.env文件并将您的 API 密钥发送给攻击者。 解决方法?在 Docker 容器内运行子代理。Docker就像一个密封的盒子、子代理可以执行其工作,但它无法访问你的真实文件、密钥或服务器上的任何其他内容。即使它被注入了提示符,也无法窃取任何东西。
curl -fsSL https://get.docker.com | shsudo usermod -aG docker openclaw
配置沙盒设置openclaw.json
{ "agents": { "defaults": { "sandbox": { "mode": "non-main", "workspaceAccess": "rw", "scope": "session", "docker": { "readOnlyRoot": false, "network": "bridge", "user": "1000:1000", "capDrop": ["ALL"] } } } }}
"none"—安全性最高。子代理无法查看您的任何文件。请将其用于浏览网页等不受信任的任务。 "ro"—只读。子代理可以读取您的工作区文件,但无法更改它们。适用于研究任务。 "rw"—读写。子代理可以读取和写入文件。灵活性最高——可用于构建网站等编码任务。 "none"—无需联网。安全性最高。子代理完全隔离。如果任务不需要联网,请使用此选项。 "bridge"—互联网访问。子代理可以访问互联网(例如npm install,执行某些操作git push等)。可用于开发任务。
你把所有东西都锁定了。但下周如果情况有变怎么办?软件包更新、配置偏移、新端口开放等等。除非有人检查,否则你根本不会注意到。 OpenClaw 内置了 cron 定时任务功能。您可以设置机器人每天早上自动运行一次完整的安全审计。这就像有个保安每天早上在您起床前检查所有门锁一样。
Set up a daily cron job that runs a full security audit every morning at 9am. Check: firewall status, fail2ban, SSH config, file permissions, open ports, Docker status, and report any issues.
每次软件更新都包含安全补丁、修复自上个版本发布以来发现的漏洞。运行旧版本的 OpenClaw 意味着运行存在已知安全漏洞的软件。攻击者会主动扫描过时的软件,因为这些漏洞利用方法早已公开。 更新至最新版本
npminstall -g openclaw
完整安全配置~/.openclaw/openclaw.json
{ "gateway": { "port": 39217, "bind": "loopback", "auth": { "mode": "password", "password": "YOUR-STRONG-30-CHAR-PASSWORD-HERE", "allowTailscale": true }, "tailscale": { "mode": "serve" } }, "agents": { "defaults": { "sandbox": { "mode": "non-main", "workspaceAccess": "rw", "scope": "session", "docker": { "readOnlyRoot": false, "network": "bridge", "user": "1000:1000", "capDrop": ["ALL"] } } } }, "channels": { "telegram": { "dmPolicy": "pairing", "groupPolicy": "disabled", "allowFrom": ["tg:YOUR_TELEGRAM_USER_ID"] } }}
让你的 OpenClaw 为你完成设置
请帮我实施全部13项安全措施:检查是否以root身份运行(若为root则创建专用用户)2. 将我的网关端口从8080更改为随机值3. 帮我安装Tailscale并以"serve"模式进行配置4. 配置SSH密钥并禁用密码认证5. 安装并配置Fail2ban6. 配置UFW防火墙7. 使用我的Telegram用户ID配置我的白名单8. 进行全面安全审计9. 在我的SOUL.md中添加安全监控10. 确保仅通过私信联系(私信策略:配对,群组策略:禁用)11. 为子代理设置带有适当安全措施(capDrop: ALL)的Docker沙箱12. 创建每日安全审计定时任务(每天上午9点执行)13. 检查OpenClaw是否已更新至最新版本逐项检查已完成的工作,协助我完成未完成的部分。