Smail/docs/Linux上线复审记录.md
smail 48d813db5e
Some checks are pending
Security Checks / security (push) Waiting to run
补录Linux部署复审与证书维护故障修复
2026-10-06 06:18:02 +08:00

6.1 KiB
Raw Permalink Blame History

Linux 上线复审记录

范围与结论

记录时间:2026 年 10 月 6 日 06:16(UTC+08:00)。本节接续云端实机验收,不重新清库、初始化或重置账号。

  • [✓] 当前 Linux 三个程序的本地与部署摘要一致,运行版本为 review-733612b。
  • [✓] 本轮接续中三个指定角色均通过真实网页注销后使用指定密码重新登录,不是只验证旧会话。
  • [✓] 修复外部证书维护任务的缺失配置及邮件端证书未同步问题,真实任务执行成功。
  • [!] 整体仍未放行:外部邮箱实际收件与绑定、真实续期换证、外部集成及原清单剩余范围尚未全部闭合。

本轮没有修改业务源码,没有重跑自动化测试。业务检查使用真实网页,协议检查使用原生 OpenSSL;没有调用内部业务接口、读取数据库验证码或使用辅助业务测试脚本。

发布版本与摘要

源提交:733612bcfb052a089a4f5e0dd4c220001f8fb09a。前段已统一构建和部署三个程序,本轮重新核对本地与部署 SHA256。

文件 字节数 SHA256
smail 66527394 be8f6a584a017abe3177a057e99d023e56c93a24ad87935bbaeefc1f77effdad
smail-admin 9650338 cc485b203d8b0203fa65fef9efa7c731d1ee3a71a6d2c640eb6b1b6db01a2cc4
smail-config 10735778 08b367a1f8106f4d52a8f890651676a7aa634e468e9ac6832f8d4e3fbae64130
  • [✓] 主进程 2405511,启动时间 05:52:19,自动重启零;证书维护后主进程未变化。Smail、Nginx 均运行。
  • 本地部署收据:out/release-receipts/review-733612b-linux-amd64.json,属于忽略产物,不提交仓库。
  • [!] 构建元数据为 vcs.modified=true,不能称为干净构建。原压缩包和归档收据仍为旧版本,新收据没有关联归档,不能用旧压缩包代表当前部署。
  • 前段核对线上首页与本地首页摘要一致,本轮未扩展为所有静态资源逐项核对。

网页角色与测试残留

  • [✓] 三角色重新密码登录成功,页面身份和权限标签正确;超管用户管理仅见默认分组和三个指定账号,状态正常、安全码开启、外部邮箱未绑定。
  • [✓] 本轮超管、管理员均无可用客户端授权、只有五个默认文件夹;管理员规则为空,黑白名单均为零。
  • 普通用户相应核查及三账号测试邮件清理沿用前段直接网页证据,不误记为本轮重测。页面列表为空不等于底层历史数据全部清除。
  • [✓] 安全码两处入口共享 60 * 1000 毫秒时限,隐藏时清除页面明文,安全中心保存功能保留。本轮只复核源码,没有重复生成或完整计时实测。

证书维护故障与修复

故障证据

  1. 维护定时器已启用,但服务在 10 月 5 日和 6 日均因两份环境文件缺失启动失败,结果为 resources。
  2. 原任务仅发布 Nginx 合并证书并重载 Nginx,未同步邮件端正在引用的部署目录证书。
  3. 当前使用代理托管,不能把 Smail 内置续期视为外部任务的替代。

执行结果

  • [✓] 恢复 /etc/smail/acme-dns.env 和 /etc/smail/acme-renew.env,权限均为 0600 root:root。密钥受保护输入,不进入仓库、收据或报告;沿用已有 ACME 账户身份。
  • [✓] 新增 /etc/systemd/system/smail-certificate-renew.service.d/20-mail-tls.conf。先由原生发布工具校验证书、域名并发布 Nginx 证书,再将证书和私钥复制到邮件端临时文件后分别重命名到原路径,最后检查并重载 Nginx。
  • [✓] 邮件端保留证书与私钥分离路径及 0600 smail:smail 权限;两次重命名不是跨文件原子事务,当前仍使用 --reuse-key 策略,不宣称原子替换一对证书。
  • [✓] 合并 PEM 作为邮件端输入的尝试被页面证书校验拒绝,原配置未改变。已刷新确认原路径继续生效,没有放宽校验。
  • 该尝试生成的 /opt/smail/ssl/service-tls.pem 未被引用,权限 0600 root:root;按不擅自删除文件要求暂留,列入待确认清理。
  • [✓] 06:12:08 启动真实维护任务,06:12:10 结束,Result=success、ExecMainStatus=0。Nginx 前后配置检查通过,证书发布及邮件文件同步完成,Smail 未重启。
  • [!] ACME 返回无需续期,没有新签发;本次不证明 DNS 凭据有效、挑战成功、加载新证书或自然到期调度成功。

修复后验证

  • [✓] 从服务器经正常域名解析,SMTP 465、SMTP 587 STARTTLS、IMAP 993、POP3 995、POP3 110 STLS 均完成 TLS 1.3 握手、系统信任链及主机名校验,并收到协议应答,未跳过校验或强制解析。
  • [✓] 证书包含主域名及泛域名,有效期为 2026 年 10 月 4 日 01:23:52 至 2027 年 1 月 2 日 01:23:51(UTC+08:00)。
  • [✓] Windows 本机正常公网 HTTPS 首页请求返回 200,未禁用证书校验;该证据只覆盖网页入口。
  • [!] 服务器侧协议握手不等于独立外网连通、认证、收发或撤权验收。

其他观察与剩余门槛

  • [✓] 本机恢复套接字存在,目录 0750 root:root、套接字 0600 root:root;未执行真实管理员重置。
  • 启动后的系统警告日志筛选无条目;应用日志另有外部 SMTP 认证失败记录,不宣称没有任何应用错误或安全事件。
  • [!] /tmp 使用率 93%,约余 62 MB;旧 Smail 发布暂存约占 396 MB,已定位未删除。当前发布暂存在 /opt,该分区约余 19 GB。
  • 三个外部邮箱须由持有人确认收件并输入验证码,完成绑定和恢复;对端接收不等于入箱或绑定成功。
  • 真实 DNS 挑战、续期签发、新证书加载、长期调度及失败恢复仍待闭环。
  • 外部集成及原清单未闭合的权限、配额、恢复、发布与清理范围仍须逐项核实。
  • 经用户确认清理未引用合并证书及旧发布暂存,不扩大至其他服务。

Git 与交付边界

修改前检查点 b2f0af1 已用中文提交并推送。本轮仅补充文档,不改业务源码;部署仍对应上述源提交而非后续文档提交。凭据、私钥、原有未跟踪检查产物均不暂存、不提交。