拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Rakazo生产级加固清单:6步完成主机加固、注册白名单与定时备份

Rakazo生产级加固清单:6步完成主机加固、注册白名单与定时备份

Rakazo生产级加固清单:6步完成主机加固、注册白名单与定时备份

【免费下载链接】rakazoOpen-source Grok Bot alternative. Choose your own model and sandbox.项目地址: https://gitcode.com/gh_mirrors/ra/rakazo

Rakazo 是一款开源的 Grok Bot 替代方案,让你自选模型和沙箱,在自己的机器上运行 AI 机器人团队。要把 Rakazo 部署到公网服务器,一套完整的 Rakazo 生产加固流程必不可少:主机安全加固、注册白名单、定时备份。本文给你一份可照做的清单,6 步即可完成,让你的 Rakazo 服务器既安全又可靠。🛡️

第一步:准备专用 deploy 账户(仅密钥登录)

在部署前先创建并验证一个仅密钥登录的deploy账户,后续所有加固操作都基于它进行。

  • 创建deploy用户,并把自己的 SSH 公钥写入其~/.ssh/authorized_keys
  • 在新终端验证ssh deploy@你的服务器能正常登录
  • ⚠️ 先别急着关当前会话——下一步脚本会重载 SSH 配置,保持云控制台一直开着,直到新的密钥登录测试成功,防止把自己锁在门外

这一步看似简单,却是整个 Rakazo 生产加固的地基:账户不对,脚本会直接报错退出。

第二步:一条命令完成主机安全加固 🛡️

Rakazo 自带幂等的主机加固脚本,在部署目录中执行:

sudo DEPLOY_USER=deploy bash infra/compose/harden-host.sh

脚本会一次性完成以下配置(详见 harden-host.sh):

加固项做了什么
🔐 SSH 加固禁用密码登录和 root 登录,仅允许deploy用户密钥登录,最多 3 次尝试(L31-L54)
🚫 fail2ban 防暴力破解10 分钟内 3 次失败即封禁 1 小时,且封禁时长加倍递增、最长 1 周(L58-L70)
🧱 UFW 防火墙默认拒绝入站流量,仅放行限流的 SSH、80、443(TCP+UDP)(L130-L137)
📦 自动安全更新unattended-upgrades 每日自动安装安全补丁(L72-L82)
🧯 AppArmor + auditd开启应用隔离,并对/etc/passwd、/etc/sudoers、SSH 配置等敏感文件建立审计规则
⚙️ 内核与网络防护30 余条 sysctl 保守配置,如禁未授权 BPF、SYN Cookie、反向路径过滤(L84-L114)

脚本结尾会提示你新开一个 SSH 会话验证登录,成功后才算完成。

第三步:收紧 Docker 守护进程配置 🐳

Rakazo 的机器人(bot)在独立容器里运行浏览器和桌面。生产单机方案通过 docker-compose.prod.yml 运行 Postgres、API、Worker、Web 和 Caddy(自动 HTTPS),机器人电脑默认放在远程 E2B 沙箱执行,宿主机不暴露 Docker supervisor 或浏览器容器:

同时为宿主机应用配套的 Docker 守护进程配置 docker-daemon.json:

  • live-restore: true:重启 Docker 不打断运行中的容器
  • max-size: 10m / max-file: 3:容器日志有界,防止日志撑爆磁盘
  • no-new-privileges: true:容器默认不得提权
  • userland-proxy: false:走内核 NAT 路径,转发效率更高

另外注意:Postgres 只运行在 Compose 内部网络,不要把数据库端口发布到公网。

第四步:配置注册白名单与独立密钥 🔑

Rakazo 的.env决定了谁能注册、数据如何加密(示例见 .env.example):

SIGNUPS_ENABLED=true SIGNUP_ALLOWLIST=you@example.com,@company.com
  • SIGNUPS_ENABLED只在 API首次启动时写入种子值;SIGNUP_ALLOWLIST非空时,每次 API 启动都会重新应用,非常适合"先内部试运行、再逐步放开"的节奏
  • 配好 SMTP 邮件后,白名单内(包括已有)用户必须验证邮箱才能登录;全新实例在无 SMTP 时首个白名单账户可免验证注册,所以请先在公网暴露之前创建好第一个账户
  • 五个密钥必须是相互独立的随机值,切勿复制粘贴同一个字符串,且.env永不入库:
openssl rand -hex 16 # POSTGRES_PASSWORD openssl rand -hex 32 # BETTER_AUTH_SECRET / ENCRYPTION_KEY / SCREEN_PROXY_SECRET / SANDBOX_SUPERVISOR_TOKEN

密钥的完整清单与轮换规则见 self-host-secrets.md,公开部署的完整环境变量示例见 docs/self-host.md 的 "Public single-VM deployment" 小节。

第五步:启用定时备份(systemd 每晚自动执行)⏰

生产备份由 backup-prod.sh 完成,官方要求将其安装为/usr/local/sbin/rakazo-backup,并启用随仓库提供的 systemd 定时任务 rakazo-backup.timer(服务单元见 rakazo-backup.service)。

定时器每天02:15 UTC + 最多 15 分钟随机延迟运行一次,且Persistent=true——关机期间错过的备份会在开机后补跑。每次运行产出:

  • ✅ 经过pg_restore --list校验的 Postgres 自定义格式转储rakazo.dump
  • ✅ 应用数据卷归档appdata.tgz(机器人工作区、技能、凭据文件)
  • ✅SHA256SUMS校验文件,快照权限0600
  • ✅ 自动轮转:只保留最近 7 天快照,存放于/var/backups/rakazo

如果你的代码检出不在默认的/srv/rakazo,把RAKAZO_DEPLOY_DIR写入 root 属主的/etc/rakazo/backup.env(权限0600)即可,服务每次运行都会读取。

💡 本地快照能救命,但不能替代主机之外的加密备份(对象存储或云厂商快照),二者建议同时保留。

开发环境则更简单:直接运行 scripts/backup.sh 得到backups/<时间戳>/快照,配合 scripts/restore.sh 恢复;数据库导入失败会在单事务内整体停止,文件只在导入成功后才会恢复。

第六步:上线验证与日常自检 ✅

全部配置完成后,按这张自检表逐项打勾:

检查项方法期望结果
密钥登录新开终端ssh deploy@主机登录成功(旧密码方式应失败)
防火墙sudo ufw status verbose仅放行 SSH/80/443
自动更新systemctl status unattended-upgrades fail2ban均处于 active 状态
健康检查curl --fail https://app.example.com/health返回 200 且含revision
注册白名单用非白名单邮箱尝试注册无法注册
定时备份systemctl status rakazo-backup.timeractive (waiting)
备份轮转ls /var/backups/rakazo快照目录不超过 7 个

健康检查提示:本地构建的镜像需要在构建时传入--build-arg GIT_SHA=$(git rev-parse HEAD),/health才会报告当前版本,方便日后排查"线上跑的是哪份代码"。

小结:Rakazo 生产加固 6 步回顾 🏁

  1. deploy 账户:仅密钥登录,验证后再动手
  2. harden-host.sh:一条命令搞定 SSH、防火墙、防破解、自动更新
  3. docker-daemon.json:日志有界、默认不提权
  4. 注册白名单 + 独立密钥:先把门关上,再开门迎客
  5. 定时备份:systemd 每晚自动快照,7 天轮转 + 异地加密备份
  6. 自检表:上线前逐项打勾

更多细节(升级、回滚、恢复、updater 边车)都可以在 docs/self-host.md 中找到。按这份清单走一遍,你的 Rakazo 就能安心跑在生产环境了。🎉

【免费下载链接】rakazoOpen-source Grok Bot alternative. Choose your own model and sandbox.项目地址: https://gitcode.com/gh_mirrors/ra/rakazo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表