Smail/docs/本轮上线审查清单.md
smail 9dfb46c3ca
Some checks are pending
Security Checks / security (push) Waiting to run
记录外部邮件投递与证书维护复审结果
2026-10-06 10:58:30 +08:00

7.8 KiB
Raw Blame History

本轮上线审查清单

需求确认

本轮接续全项目 Linux 实机审查。当前工作区、运行状态和实际验收证据优先于旧交接记录。禁止使用 Python,不将内部接口或辅助业务脚本结果冒充网页实机验收;账号、密码、验证码和云凭据不得写入本文或提交。

任务状态

  • [✓] 核对工作区及分支,保留原有未跟踪产物。
  • [✓] 修改前提交中文检查点,推送认证失败后重试成功。
  • [✓] 使用密码及严格主机密钥校验连接目标服务器。
  • [✓] 修复旧回归测试与当前权限、协议密码验证、分组表结构不一致的问题,不放宽生产授权。
  • 后端串行全量回归及前端回归通过,部署本地回归通过;Linux 专属用例仍待原生执行。
  • [✓] 全新部署时同步数据库认证信息,页面完成数据库初始化;三个部署程序摘要与构建产物一致。
  • 完成 Linux 全新部署,应用目录及应用数据库不继承旧数据;其他历史专属暂存和备份仍待最终盘点。
  • [~] 页面已完成三角色登录、权限及中继开关控件回归;中继实际保存、清除和发信路径仍待外部凭据与邮件证据。
  • [~] 页面实测安全码显示时限,已完成三角色本人及超管代管管理员路径;保存下载与管理员代管普通用户仍待验收。
  • [~] 超管外部邮箱已由页面发送验证码并停留在手动输入步骤;管理员和普通用户尚待分别发送并由用户手动输入验证码。
  • [!] 证书和本机 TLS 已通过当前有效证书核对;外部邮件绑定及外部收发仍受服务器直连外域 MX 25 端口超时影响,尚未完成。
  • 清理测试残留并确认唯一有效恢复方式仍可用。
  • 完成全部要求逐项核对后再放行上线。

已确认的证据与边界

本轮复现三个后端测试失败。协议操作用例未提供现行入口要求的本人密码;插件用例将超管专属通知设置误作普通插件设置;用户列表用例缺少账号分组表,并沿用未分组前的可见范围。修复测试时保留拒绝越权、跨账号隔离与分页断言。以上为本地回归,不代表线上验收通过。

前一轮前端回归 235 项通过且生产构建成功,但尚不能据此认定服务器已运行该构建,或安全码在浏览器中完成了完整计时验收。

安全码需求与本轮回归

确认要求:生成或验证密码后再次查看安全码,从明文显示起计时,60 秒后清除页面中的明文;隐藏后保存和复制入口不能继续使用旧值。不撤销仍有效的安全码,用户可重新验证密码后查看。页面隐藏、离开设置或关闭管理弹窗时提前清理。

  • [✓] 当前首次强制设置入口使用个人安全设置页面,复用同一显示计时,不把未挂载的旧引导组件当作线上入口。
  • [✓] 新增 20 项执行实际页面逻辑的模拟时钟回归,覆盖三角色、生成与查看、59.999 秒与 60 秒边界、重新计时、保存与复制、切页、卸载、晚到响应及切换用户。
  • 前端共 255 项通过,记录:测试目录下本轮前端日志。
  • 后端串行全量通过;此前并行运行出现过一次 Windows 原子改名访问拒绝,同用例单独连续三次通过,尚未证明该瞬态问题的根因。
  • 部署测试四项通过、一项 Linux 专属用例在 Windows 跳过,不能计作 Linux 全通过。
  • 最新 Linux 构建、全新部署和浏览器完整 60 秒实测;分角色证据见下节。

本轮本地测试仅为隔离源码回归,未清理或使用线上数据库,未通过内部业务接口替代页面验收。凭据和安全码明文不记录到验收文档。

2026 年 10 月 6 日实机续审

部署与运行

  • [✓] 运行版本为 review-b149a0d,后续检查点与本文更新不改变部署业务代码。
  • [✓] 重新核对三个远端程序摘要,均与本轮构建一致;主服务和反向代理运行正常,主服务重启计数为零。
  • [✓] 页面新建管理员和普通用户,普通用户、管理员使用指定密码登录成功;管理员强制刷新页面后仍保持登录。
  • 邮件服务监听预期提交与加密端口,未监听非加密 IMAP 端口;应用 Web 端口通配监听,但系统防火墙已禁止外部访问应用直连端口。尚未以公网直连负向测试替代核对。

安全码真实计时

计时来自真实页面点击与 DOM 变更观察,仅记录时间和节点数量,不采集安全码明文;页面保持前台。以下不是模拟时钟或内部业务接口测试。

场景 显示数量 自动隐藏耗时 隐藏后结果
超管首次生成,前段实测交接 12 60001.6 毫秒 明文节点为零,保存入口消失
超管验证密码再次查看,前段实测交接 12 60000.9 毫秒 明文节点为零,保存入口消失
超管代管管理员生成,本段实测 12 60000.3 毫秒 明文节点为零,复制入口消失,保留验证后查看入口
普通用户首次生成,本段实测 12 60009.7 毫秒 明文节点为零,保存入口消失
管理员验证本人密码查看,本段实测 12 60006.5 毫秒 明文节点为零,保存入口消失,保留验证后查看入口

普通用户在显示约 22 秒时点击保存按钮;尚未取得本次下载文件落盘完成的证据,因此保存下载验收仍未通过。未读取或删除下载目录中此前存在的文件。

外部证书维护

  • [✓] 恢复部署时停止的证书维护计时器,保持开机启用,维护服务执行成功。
  • [✓] 修正本项目反向代理配置,使证书和私钥均读取维护工具原子发布的合并 PEM,而不是不会同步更新的旧平铺副本。未修改同机其他项目配置。
  • [✓] 重新执行反向代理配置检查、重载及维护服务,返回成功;原生 TLS 客户端验证 Web 与邮件提交入口的系统信任链和主机名均成功。
  • 证书覆盖用户配置的主域名和泛域名,有效期至 2027 年 1 月 3 日。本次为现有有效证书发布核验,未触发到期后的真实重新签发,不将其表述为完整续期验收。

邮件投递与证书维护复审补充

  • [✓] 2026 年 10 月 6 日 10:18(中国标准时间)复核 smail.service 正常运行,主进程重启次数为零;SMTP 25/465/587、POP3 110/995、IMAP 993 和 Web 上游 8001 均由预期进程监听。
  • [✓] 当前实际启用的证书维护单元为 smail-certificate-renew.timer,定时器处于等待状态;最近一次 smail-certificate-renew.service 执行成功,并将主域名及泛域名证书发布到项目 SSL 目录和 Nginx 入口。
  • 观察到外域邮件投递到 163 MX 的 TCP 25 连接超时。当前未配置可用的 SMTP 中继,因此外部邮箱验证码和外部收发信不能仅凭本机服务运行判定成功;需要可用中继或网络放行后再次通过网页和原生协议复测。
  • [✓] odacm.cn、bups.cn 仅出现在同机其他服务的 Nginx 配置文件中;本次核对的 /opt/smail 和 Smail 专属 Nginx 配置未发现旧域名引用,未擅自修改共主机服务。
  • [!] smail-admin.service 为一次性本机恢复服务,当前 inactive;最近一次本机重置请求失败,但不影响正在运行的主服务和当前网页登录,后续需要单独完成受保护本机恢复通道验收。

尚未放行的项目

三角色外部邮箱绑定仍需用户手动填写验证码;当前超管页面已经停在验证码输入框。真实邮件收发与外部收件、系统通知授权、中继列表增删改及开关保留配置、管理员代管普通用户权限、安全码下载落盘、受保护本机恢复及全项目最终清理仍未完成。不得据以上单项结果宣称全项目已验收上线。