133 lines
9.1 KiB
Markdown
133 lines
9.1 KiB
Markdown
# Calculet NPU 远端与本机清理完成记录
|
||
|
||
执行时间:2026-08-02 00:54-02:00(Asia/Shanghai)
|
||
|
||
状态:完成。远端用户态测试产物已清理并再次验收;官方 OpenVPN Connect 和用户锁定配置按后续要求保留;系统安全审计日志未修改。
|
||
|
||
## 清理口径
|
||
|
||
用户确认“清理今天早上 6 点之后所有新增痕迹,那些都是我们留下的”。执行时尚未到 2026-08-02 06:00,因此按本次测试会话起点 `2026-08-01 06:00 +0800` 理解。
|
||
|
||
没有按 mtime 对整个家目录做宽范围删除。审计发现同一时间窗内还有 snap、WirePlumber 和既有 rootless Podman 的系统管理数据;这些不属于本次测试,删除会损害对方环境。本次只清理经过路径、属主、大小、文件数和历史指纹核验的已知测试痕迹。
|
||
|
||
## 删除前门禁
|
||
|
||
- 本地最终完成标志存在:`Calculet-NPU-analysis-bundle-20260801/remote-export/ALL-REQUESTED-DATA-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt`。
|
||
- 8 个归档的统一 SHA-256 清单已完成,归档合计 `21,078,519,107` 字节。
|
||
- 完整模型 68/68 个文件已独立校验两轮。
|
||
- 远端导出目录为 `96,590,271,861` 字节、4,891 个条目、4,883 个普通文件,全部属于 `user2`。
|
||
- Shell 历史第 1-52 行 SHA-256 为 `dd36b5345537a553f0fc141cbe969299585a6791772258fcc2dc6dd2792f735e`。
|
||
- 本次第 53-69 行 SHA-256 为 `a5cc09c89ea56d8c79a1be6da9f402d13d9d74ecace8f25918f19601cac4eb36`,与预先记录完全一致。
|
||
|
||
## 远端删除结果
|
||
|
||
以下四个精确目标已删除并复核不存在:
|
||
|
||
- `/home/user2/calculet-analysis-export`
|
||
- `/home/user2/llama.cpp-src-fd9bd632.tar.gz`
|
||
- `/home/user2/calrt-focused-src-fd9bd632.tar.gz`
|
||
- `/home/user2/calbin_inspect.cpp`
|
||
|
||
一次性清理和验收脚本均已自删除;`/tmp`、`/var/tmp` 中没有匹配本次测试命名的残留。
|
||
|
||
## Shell 历史恢复
|
||
|
||
`.bash_history` 使用同目录临时文件和原子重命名处理,只删除已核验的第 53-69 行,并保留第 1-52 行及可能存在的第 70 行以后内容。执行时没有第 70 行以后内容。
|
||
|
||
| 项目 | 清理前 | 清理后 |
|
||
| --- | --- | --- |
|
||
| 行数 | 69 | 52 |
|
||
| SHA-256 | 第 53-69 行为 `a5cc09c...eb36` | 全文件为 `dd36b53...735e` |
|
||
| 权限/属主 | `600`、`user2:user2` | 未变化 |
|
||
| mtime | `2026-08-01 16:26:26.926139909 +0800` | 纳秒级未变化 |
|
||
|
||
## 远端独立验收
|
||
|
||
2026-08-02 00:56:27 的独立只读验收结果为 `VALIDATION_RESULT=SUCCESS`、失败项 0:
|
||
|
||
- rsync、tar、zstd、split、sha256sum、llama-server、calrt_smoke、calbin_inspect 进程均为 0。
|
||
- TCP 8031 监听为 0,`/dev/calculet0` 占用为 0。
|
||
- 运行中容器为 0。
|
||
- 原容器仍为 `04def2aa8dfe | docker.io/library/calculet-llama:v0.4.8-release | created | calculet-llama-v0.4.8_Qwen`。
|
||
- 驱动参数未变:`poll_mode=0`、`dma_timeout_ms=30000`、`strict_validation=Y`、`calculet_log_level=6`、`max_boards=16`。
|
||
- 用户 crontab 仍为空;`/var/lib/dpkg/status` mtime 仍为 `2026-07-31 06:44:43.090257729 +0800`。
|
||
|
||
远端根文件系统即时变化:
|
||
|
||
| 时点 | 已用字节 | 可用字节 |
|
||
| --- | ---: | ---: |
|
||
| 清理前 | 246,532,616,192 | 685,736,894,464 |
|
||
| 清理后 | 149,908,873,216 | 782,360,637,440 |
|
||
|
||
回收 `96,623,742,976` 字节,约 90.0 GiB。
|
||
|
||
## 本机清理
|
||
|
||
- OpenVPN 已正常终止,进程数为 0;`utun2` 已消失,目标地址恢复通过 `en0` 的普通默认路由。
|
||
- 已删除 `/private/tmp/codex-npu-vpn` 下的配置、认证文件和日志。
|
||
- 已删除工作目录中的 OpenVPN 认证文件、VPN 配置及包含明文 SSH 密码的 rsync/scp/ssh Expect 包装器。
|
||
- 工作目录和输出目录中明文密码匹配数为 0,VPN 配置文件数为 0。
|
||
- 已从当前和 `.old` 两份 `known_hosts` 中删除 `192.168.20.59` 的三种 host key,其他主机条目保留。
|
||
- 已卸载本次安装的 `openvpn 2.7.5`、`lzo 2.10` 和 `pkcs11-helper 1.31.0`,并删除对应示例配置和下载缓存。
|
||
- `lz4` 保留,因为现有 `rsync` 和 `zstd` 仍依赖它;`ca-certificates`、`openssl@3` 的安装时间早于本次会话,也未改动。
|
||
- 本机 `.zsh_history` mtime 为 `2026-07-31 20:31:13 +0800`,本次非交互命令没有写入本机 Shell 历史。
|
||
|
||
## 保留内容与边界
|
||
|
||
- 保留本地约 65 GiB 的完整分析包、8 个原始归档、解包视图、校验清单和交接报告,供后续源码、算子和接口分析。
|
||
- 没有删除对方既有容器、镜像、驱动、snap、WirePlumber、Podman 存储或其他同事文件。
|
||
- 没有修改或抹除 SSH 登录日志、VPN 服务端日志等系统安全审计记录。它们不影响后续测试稳定性,擅自清除会破坏对方的安全审计链;本记录覆盖的是本次可归属、用户态和持久化测试痕迹。
|
||
|
||
结论:对方样机上的已知用户态测试痕迹已清理,Shell 历史已按指纹精确恢复,运行状态和关键配置通过独立验收;后续若再次连接,需要重新提供 VPN 配置和 SSH 凭据。
|
||
|
||
## 后续客户端变更
|
||
|
||
2026-08-02 01:24,按用户后续要求重新安装带界面的官方 OpenVPN Connect,供以后手动连接使用:
|
||
|
||
- 产品:OpenVPN Connect `3.8.2 (6009)`,Apple Silicon arm64 版本。
|
||
- 应用路径:`/Applications/OpenVPN Connect/OpenVPN Connect.app`。
|
||
- 安装包由 `Developer ID Installer: OpenVPN Inc. (ACV7L3WCD8)` 签名并通过 Apple 公证。
|
||
- 应用代码签名校验通过,Gatekeeper 结果为 `accepted`、`Notarized Developer ID`。
|
||
- 没有启动客户端,没有导入 `.ovpn`,也没有恢复账号或明文凭据。
|
||
- 曾短暂安装的 Tunnelblick 已删除,相关 Cask 和下载缓存均已清理;当前只保留官方 OpenVPN Connect。
|
||
|
||
这一后续变更不影响远端清理验收结论。远端系统审计记录不在本次清理范围内;如组织留存策略要求处置,应由样机管理员通过正式审计流程执行,不能按时间整段清空共享日志。
|
||
|
||
### VPN 配置导入
|
||
|
||
2026-08-02 01:38,按用户确认从 `https://ov.asds.work:22443` 下载并导入 User-locked 配置:
|
||
|
||
- OpenVPN Connect 中的配置名称:`demouser_0529@ov.asds.work [profile-userlocked]`。
|
||
- 目标主机:`ov.asds.work`;首选 UDP `42394`,TCP 回退 `42343`。
|
||
- 配置含 CA、客户端证书和客户端私钥,下载文件权限已收紧为 `600`。
|
||
- 配置文件 SHA-256:`bf5481c8cd117f16b4898aefb5aefcd500da63c33339722cbf856877d8073e55`。
|
||
- 导入后界面状态为 `Ready to connect`,连接按钮仍为 `Connect`;没有由自动化启动 VPN。
|
||
|
||
## 最终合规收尾复核
|
||
|
||
2026-08-02 02:00,在用户手动连接 VPN 后完成最后一轮只读 SSH 复核:
|
||
|
||
- `/home/user2/calculet-analysis-export`、两个源码归档和 `calbin_inspect.cpp` 均不存在。
|
||
- `/home/user2`、`/tmp`、`/var/tmp` 中没有匹配本次导出、测试程序、源码归档或 `codex-npu` 命名的残留。
|
||
- TCP 8031 无监听,`/dev/calculet0` 无占用,没有运行中的测试容器。
|
||
- 原容器仍为 `04def2aa8dfe | docker.io/library/calculet-llama:v0.4.8-release | Created | calculet-llama-v0.4.8_Qwen`。
|
||
- `.bash_history` 仍为 52 行、权限 `600`、属主 `user2:user2`,SHA-256 仍为 `dd36b5345537a553f0fc141cbe969299585a6791772258fcc2dc6dd2792f735e`,mtime 未变化。
|
||
- `user2` 无 crontab;没有新增或修改用户级持久化项。
|
||
|
||
系统的 SSH、认证、`wtmp/lastlog` 和 systemd journal 审计记录全部保留。原因是这些记录属于安全审计链,且持久化 journal 同时承载其他用户及系统事件,不能在不破坏完整性的情况下选择性抹除。本次最终 SSH 复核本身也会产生正常登录审计记录。
|
||
|
||
本机只删除了本次审计阶段生成的临时脚本、临时 known-hosts 文件和 VPN 文档临时渲染页;完整分析包、源码、模型、OCI 镜像、校验清单和正式报告均保留。官方 OpenVPN Connect、已导入配置及下载目录中的原配置文件按用户要求保留,便于后续继续连接样机。
|
||
|
||
## 源码深挖后的最终只读复查
|
||
|
||
2026-08-02 10:30-10:32,在用户重新输入一次性 SSH 密码后再次执行只读验收和驱动历史发现:
|
||
|
||
- `.bash_history` 仍为 52 行、SHA-256 `dd36b5345537a553f0fc141cbe969299585a6791772258fcc2dc6dd2792f735e`、权限 `600`、属主和 mtime 不变。
|
||
- 用户目录和 `/tmp`/`/var/tmp` 的我方命名残留为 0,传输/测试进程为 0,8031 监听为 0,`/dev/calculet0` 占用为 0,运行容器为 0。
|
||
- 原容器仍为 Created 状态;模块仍加载,五项 driver parameter 与前次记录一致。
|
||
- `/data/claw/worker/instances/0466046cbf/state/workspace/.git` 和 `405dfaf7e9/.../.git` 各只有 23,941 字节、tracked file 为 0,没有有效 HEAD/refs/commit 或驱动命中,属于空工作区元数据,不需要下载。
|
||
- `/data/driver/cal-pcie_0.9.0-1_amd64.deb` 仍为 SHA-256 `47297336b4372a9f991097cc3b4aa04f2d4a1f9e456ca621c0e642f7e847e792`,包内仍只有 0.9.0 初始源码;没有发现 driver patch/diff/Git。
|
||
- 本轮没有远端写文件、启动容器或使用 NPU。正常 SSH 登录审计按合规要求保留。
|
||
|
||
机器可读结果保存在 `git-history-assets/remote-final-readonly-audit-20260802.txt`,并纳入统一 SHA-256 清单。
|