核心安全原则
- 最小权限原则: 只开放必要的端口和服务,只授予必要的权限。
- 纵深防御: 部署多层安全措施,不依赖单一防护。
- 定期更新: 保持系统、Docker镜像及相关依赖的更新。
基础及关键安全设置(必做)
访问控制与认证
- 修改默认凭证:
- 立即修改OpenClaw Web控制台、数据库(如使用)、以及任何集成的第三方服务(如Grafana, Prometheus)的默认用户名和密码,使用高强度、唯一的密码。
- 如果支持,为API密钥、访问令牌设置合理的过期时间。
- 网络访问控制(防火墙):
- 服务器防火墙(如
ufw,firewalld, iptables):- 默认拒绝所有入站:
sudo ufw default deny incoming - 仅开放必要端口:
- OpenClaw Web UI端口(80/443, 7860等,取决于您的配置):
sudo ufw allow 443/tcp - SSH端口: 强烈建议修改为非22端口(如 2222),并限制源IP。
sudo ufw allow from [您的信任IP] to any port 2222
- OpenClaw Web UI端口(80/443, 7860等,取决于您的配置):
- 启用防火墙:
sudo ufw enable
- 默认拒绝所有入站:
- 云服务商安全组/网络ACL: 如果您使用云服务器(AWS, 阿里云,腾讯云等),必须在云端控制台配置安全组,规则与上述防火墙规则保持一致,通常更优先于系统防火墙生效。
- 服务器防火墙(如
通信加密 (HTTPS)
-
绝对不要通过HTTP公开访问,务必启用HTTPS。

-
获取SSL证书:
- 推荐: 使用 Let‘s Encrypt 的
certbot工具免费获取自动续签的证书,适用于有公网域名的场景。 - 替代方案:
- 自签名证书: 仅用于测试或内网,浏览器会显示警告。
- 反向代理: 使用 Nginx 或 Caddy 作为反向代理,由它们处理HTTPS,并将请求转发给OpenClaw,这是非常推荐的生产环境做法。
- 推荐: 使用 Let‘s Encrypt 的
-
示例 (Nginx反向代理简化配置):
server { listen 443 ssl http2; server_name your-domain.com; # 您的域名 ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; location / { proxy_pass http://localhost:7860; # 转发到OpenClaw实际监听端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri; # HTTP强制跳转HTTPS }
服务与依赖安全
- 容器安全(如果使用Docker):
- 使用官方或可信来源的镜像。
- 定期扫描镜像漏洞:
docker scan <image-name> - 避免在容器内以root用户运行进程,在Dockerfile中使用
USER指令。 - 在
docker-compose.yml中,为每个服务设置明确的版本标签,而非latest。
- 隔离与权限:
- 确保OpenClaw应用运行在专用的、非root的系统用户下。
- 检查应用目录和配置文件权限,确保关键文件(如配置文件、密钥)仅对必要用户可读。
高级加固措施(强烈推荐)
入侵防御与监控
- Fail2ban: 安装并配置Fail2ban,防止SSH暴力破解和Web登录攻击,可以创建针对OpenClaw登录接口的过滤器。
- 日志审计: 集中监控OpenClaw应用日志、系统认证日志(
/var/log/auth.log)和Nginx访问/错误日志,使用logrotate管理日志大小。 - 安全更新: 配置无人值守安全更新或建立定期手动更新流程。
网络隔离
- Docker网络: 如果使用Docker,创建独立的自定义网络,只将需要对外暴露的容器连接到代理网络。
- 内部服务不暴露: 数据库(如PostgreSQL/MySQL)、Redis等辅助服务绝不应直接绑定到公网IP或暴露端口,它们应只允许来自OpenClaw应用容器或内部网络的连接。
应用层安全
- API安全: 如果OpenClaw提供API,实施API密钥认证、速率限制和请求验证。
- 输入验证与过滤: 确保所有用户输入都经过严格的验证和清理,防止注入攻击。
- 会话管理: 使用安全的会话配置,设置合理的会话超时时间。
不同部署场景建议
场景A: 公网服务器部署(最需谨慎)
- 完成所有“必做”和“推荐”项。
- 考虑使用 云WAF(Web应用防火墙)服务,防御常见Web攻击(SQL注入, XSS等)。
- 设置 异地备份 策略,定期备份应用数据、配置和数据库。
- 考虑使用 VPN/零信任网络(如 Tailscale, WireGuard)进行管理访问,替代直接暴露SSH。
场景B: 内部网络或开发环境
- 仍需完成访问控制和修改默认凭证。
- 防火墙可配置为仅允许内网IP段访问。
- HTTPS仍然推荐,可用于防止内网嗅探,可以使用自签名证书,或在内部CA签发证书。
- 同样需要隔离数据库等内部服务,防止内网横向移动。
检查清单
- [ ] 所有默认密码(Web, 数据库, 管理后台)已修改为强密码。
- [ ] 服务器防火墙/云安全组已配置,仅开放必要端口(如HTTPS, 改后的SSH)。
- [ ] HTTPS已正确配置并生效,HTTP已强制跳转。
- [ ] 服务运行在非root用户下。
- [ ] 容器镜像已固定版本并定期更新扫描。
- [ ] 内部服务(DB, Redis)未暴露在公网。
- [ ] 配置了日志监控和 Fail2ban(公网部署)。
- [ ] 建立了定期的系统和应用更新、备份流程。
紧急情况处理
- 发现可疑活动: 立即检查日志, 考虑暂时阻断可疑IP, 审查系统进程和网络连接。
- 确认被入侵: 立即隔离服务器(断开网络), 取证分析, 恢复至干净备份,重新评估所有安全设置。
安全是一个持续的过程,请在初始设置完成后,定期审查日志、更新软件并关注 OpenClaw 项目的安全公告,祝您使用顺利!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。