Skip to content

安全运行清单 ​

账号与认证 ​

  • 管理员使用独立账号,不多人共用。
  • 管理员和高权限用户启用 TOTP 两步验证。
  • 开放注册时同时启用认证邮箱、来源 IP 限速和 Turnstile。
  • Turnstile 的环境变量强制关闭只用于管理员被锁在门外时救援;完成修复后立即移除并重启服务。
  • 密码修改、密码找回、管理员重置密码、重置 2FA 和强制下线后,旧令牌应立即失效。
  • OAuth 请求设置连接/读取超时与响应大小上限,不把提供方原始错误正文返回浏览器。
  • 管理员代入登录只用于排障;代入会话不能修改密码、绑定身份、创建客户端密码或 API Key。

密钥与配置 ​

  • JWT_SECRET、POSTGRES_PASSWORD、SENDCHANNEL_KEK_HEX 使用随机独立值。
  • .env、SMTP 密码、OAuth Secret、支付密钥、Telegram Token、S3 密钥和 TLS 私钥不进入 Git、聊天、截图或工单。
  • SENDCHANNEL_KEK_HEX 上线后保持稳定;丢失会导致已有加密配置无法解密。
  • 密钥疑似泄露时立即在服务商处轮换,删除 Git 历史或聊天记录不能替代轮换。

网络边界 ​

  • PostgreSQL 5432、Redis 6379、后端内部端口和本机反代端口只允许内网或回环访问。
  • 公网只开放实际需要的 25、587、993、995、80 和 443。
  • 外层代理覆盖 X-Real-IP、X-Forwarded-For 和协议头,不能信任访客自己提交的代理头。
  • 使用 Cloudflare 时只信任官方边缘 IP 段提供的 CF-Connecting-IP,并阻止绕过 CDN 直连网页源站。
  • 邮件主机记录保持 DNS only;Cloudflare 普通代理不转发 SMTP、IMAP 或 POP3。

邮件与内容 ​

  • 发信域名配置 PTR/rDNS、MX、SPF、DKIM 和 DMARC,并持续检查到期或漂移。
  • 先让 rspamd 高风险邮件进入垃圾箱,观察误判后再启用安全隔离;隔离原文计入存储并按保留策略清理。
  • 隔离预览禁用远程图片、链接、样式和交互属性;放行前仍要核对发件人、认证结果与内容。
  • 外部转发使用正常发信策略、配额与能量,并阻止自转发和自动邮件循环;定期检查邮件流转中的转发失败。
  • 自动回复同样使用正常发信配额与能量;启用“只回复一次”并监控发送记录,避免多实例或重试向同一发件人重复回复。
  • 全局白名单只加可信且范围最小的邮箱、域名、IP 或 CIDR。
  • 组织 Logo 只允许经过内容检查的 PNG、JPEG、WebP 或 GIF;不要允许 SVG 上传。
  • 邮件正文、原文、附件和缩略图都必须经过邮箱所有权或只读共享范围检查。

数据与并发 ​

  • 升级前验证备份可恢复,再在数据副本运行所有迁移。
  • 邮箱转让、发信额度、通道额度、存储额度、订单和订阅依赖数据库事务与约束;不要通过手工改计数绕过。
  • SMTP 重试可能发生在客户端未收到成功响应时;系统使用短窗口指纹降低同一上游重试造成的重复入站邮件。
  • 邮箱共享当前只读。发现旧的未知权限字符串时应停止并核对,不要自动扩大为可写权限。

日志与隐私 ​

  • Web 访问日志不要记录完整查询参数、Cookie、验证码、令牌或 OAuth code。
  • 安全敏感路径的 5xx 返回概括性错误,数据库、凭据和第三方响应详情留在受限服务端日志;持续审查新接口,避免把内部错误原样暴露。
  • 删除用户时保留必要审计记录,并将已删除操作者引用置空。
  • 定期检查登录失败、身份绑定冲突、SMTP 认证失败、支付回调异常和管理员高风险操作。

定期验证 ​

每次发布至少执行:后端单元与集成测试、静态检查、前端与官网构建、依赖审计、数据库迁移副本测试、Nginx 与 rspamd 配置检查,以及 HTTPS、SMTP STARTTLS、IMAPS、POP3S 的真实握手验证。

草丛 Mail · 企业与个人邮箱服务