diff --git a/ATRI My Dear Moments/security/security_2026-09-27.md b/ATRI My Dear Moments/security/security_2026-09-27.md new file mode 100644 index 0000000..fcc9f07 --- /dev/null +++ b/ATRI My Dear Moments/security/security_2026-09-27.md @@ -0,0 +1,102 @@ +# 🔒 宿主机周度安全巡检报告 — 2026年09月27日(周日) + +**巡检时间**:2026-09-27 22:00 ~ 22:20(CST) +**巡检主机**:ser298351…(宿主机) +**执行方式**:`ssh_exec` 白名单命令逐项采集(清单 13 大项) +**总结论**:🟢 **未发现恶意软件与入侵痕迹** | 🟡 需关注 4 项 | 🟡 待确认 1 项 | 本次**未执行任何处置**(无明确恶意项) + +--- + +## 📊 系统状态速览 + +| 指标 | 数值 | 判定 | +|:---|:---|:---| +| 负载(1/5/15 分钟) | 1.41 / 1.31 / 1.32(8 核) | 🟢 约 17% | +| 内存 | 7.8 GiB,已用 6.1 GiB,可用 1.4 GiB | 🟡 79% | +| **Swap** | **4.0 GiB,已用 4.0 GiB(余 31 MiB)** | 🔴 99.2%(见关注项 3) | +| 磁盘 `/` | 16G / 24G(70%),可用 6.9G | 🟢 | +| 磁盘 `/www` | 35G / 79G(47%),可用 40G | 🟢 | +| 运行时长 | 13 天 20 小时 | 🟢 | +| 容器 | 16 运行 / 1 Exited(`napcat`,5 周前主动停,已知孤儿容器) | 🟢 | + +--- + +## ✅ 安全检查结果表 + +| # | 检查项 | 状态 | 说明 | +|:--|:---|:---:|:---| +| 1 | 异常进程 / CPU 占用 | 🟢 | TOP CPU 全为已知服务(QQ 客户端 2.5%、mysqld、Node、Java 系);无接近 100% 的陌生进程 | +| 2 | 资源异常进程(内存) | 🟢 | TOP MEM 首位为 AstrBot 本体(RSS ≈ 2.9 GB,37.5%)、其次 OJ 的 Java 服务;均为已知 | +| 3 | 网络外联 | 🟢 | ESTABLISHED 仅 2 条:容器管理通道(172.21.0.3→22)、frps 隧道(本人客户端)。无陌生外联 | +| 4 | 恶意进程名扫描 | 🟢 | 命中仅 T2I 服务的 Playwright Chromium(`--user-data-dir=/tmp/playwright_*`),属正常渲染进程 | +| 5 | 计划任务 | 🟢 | root 仅 acme.sh 证书续期;`/etc/crontab` 为标准 run-parts;cron.d 为 certbot / e2scrub_all / php;无 at 任务 | +| 6 | 开机自启服务 | 🟢 | 抽检全部为已知项(docker / containerd / fail2ban / frps / cron 等),无指向 /tmp 或 /root 脚本的陌生 unit | +| 7 | SSH 登录与公钥 | 🟡 | 近期成功登录**全部为本机容器来源**(定时任务,每日 5 次 × 30 分钟);失败爆破累计 726 条;公钥 1 条待确认(见待确认项) | +| 8 | 账号与权限 | 🟢 | UID=0 仅 root;无空密码账号;sudoers 为标准配置 | +| 9 | 临时目录 | 🟢 | `/tmp`、`/dev/shm`、`/var/tmp` 近 30 天**零可执行文件**;`/tmp/.X11-unix`、`.XIM-unix` 为空目录(正常) | +| 10 | 系统文件改动 | 🟢 | 近 7 天仅 snap / lxd 相关 unit(13 天前安装时生成),无异常 | +| 11 | 防火墙 | 🟡 | ufw **inactive**;仅 fail2ban 的 sshd 链生效(累计封禁 **1299** 次,当前封禁 3 个) | +| 12 | Docker 安全 | 🟢 | 无异常特权容器(仅 OJ 判题机 `Priv=true`,属预期);**无容器挂载根目录**;2 个挂 `docker.sock`(portainer、AstrBot,既有设计);监听端口全部对应已知容器 | +| 13 | 日志异常 | 🟢 | `journalctl -p err` 近 7 天仅 sshd `kex_exchange_identification` 扫描噪声,无高危错误 | +| 14 | rootkit 扫描 | ⚪ | 未安装 rkhunter / chkrootkit,未做程序化扫描;已人工核对上表关键项 | + +--- + +## 🚨 威胁发现与处置记录 + +**结论:未发现恶意软件与入侵痕迹。本次未执行任何处置动作(kill / 隔离 / 清 cron / 移除公钥:0 项)。** + +### 🟡 关注项 1 —— frps 服务端**仍未配置访问 token**(连续第 2 周) + +- **事实**:`/opt/frp/frps.ini` 现仅含 `bind_port` / `dashboard_port` / `dashboard_user` / `dashboard_pwd` 四项,**无 token 字段**(与 9/20 巡检结论一致,未变更)。 +- **本周实况**:近 7 天 frps 日志中,**互联网测绘扫描器(主机名 `censys.local`)至少 5 次成功 login**(9/25 18:03、9/26 06:10 / 07:31 / 20:13、9/27 09:10,来源 IP 属 `66.132.x.x` 段)。每次登录后**立即 exit,未注册任何代理**。 +- **本人客户端正常**:`36.148.83.112`(hostname `Kronecker`,frp 0.71.0)注册了 `ssh` 与 `alist` 两条 tcp 代理,今日 20:10 有一次正常重连(`Replaced by client`)。 +- **含义**:无认证即意味着**任何人都可接入 7000 端口注册隧道**,把本机当作流量中转。当前入口敞开、尚未被实际利用。 + +### 🟡 关注项 2 —— frps 管理面板公网监听 + 弱口令(未变更) + +- **事实**:面板端口 **7500 监听在 `*`(全网卡)**,账号 `admin`,口令为 **6 位纯数字弱口令**(值已隐去,不入档)。 +- **处置**:按规矩**只报告、不擅动** —— 本轮仅本地读取配置键名,**未登录面板、未改动任何参数**。 + +### 🟡 关注项 3 —— 内存 / Swap 压力(连续第 9 天贴近顶格) + +- **事实**:Swap 已用 **4.0 / 4.0 GiB(余 31 MiB,99.2%)**,可用物理内存 1.4 GiB。最大占用仍是 **AstrBot 本体(RSS ≈ 2.9 GB,占 37.5%)**,其次为 OJ 的 Java 服务。 +- **趋势**:9/14 约 1.4 G → 9/16 约 2.4 G → 9/18 约 2.7 G → 9/20 约 3.9 G → **今晨顶满 → 9/21 自主重启后回落 2.6 G → 今日再度顶满**(「重启回落 → 再爬满」第四轮)。 +- **含义**:非故障、非入侵。但 Swap 打满时内核可能触发 OOM 杀进程,**第一批被杀的极可能是占用最大的 AstrBot**。 +- **未处置**:静默任务期间不动容器,已连续多日在叫醒消息中报备,等主人一句话(重启约 30 秒)。 + +### 🟡 关注项 4(本轮新发现)—— 自建 T2I 渲染服务监听 `0.0.0.0:8999` + +- **事实**:`t2i.service`(AstrBot T2I Service,python3)监听 **`0.0.0.0:8999`**,该服务**无认证机制**(设计上仅供内网调用)。因 **ufw 未启用**,其公网可达性**取决于云安全组规则**。 +- **⚠️ 收敛时的坑(必须先说清)**:AstrBot 容器是**经 `172.17.0.1:8999`(docker0 网关)**调用渲染的,因此**不能简单绑到 `127.0.0.1`** —— 那会直接打断每日札记/瞬间的图片渲染。正确做法是**绑定到 docker0 那一个网卡地址**,或改为容器网络内直连。 +- **处置**:**只报告、不擅动**。 + +### 🟡 待确认项 —— SSH 公钥 1 条(同上周,无变化) + +- **事实**:`root` 与 `Kronecker` 账户各存 **同一把** RSA 4096 公钥,文件时间 **2025-08-09**,注释为一个 QQ 邮箱地址(号码不入档)。 +- **评估**:**无异常使用迹象**(无来自未知来源的对应登录;近期成功登录全部来自本机容器网段)。**不排除为本人旧设备或友人留用**。 +- **处置**:按规矩**只报告、不擅动** —— 误删合法公钥可能导致主人无法登录。等主人一句话确认。 + +--- + +## 💡 加固建议(3 条,均需主人授权后执行) + +1. **frps 加认证(最优先)**:在 `frps.ini` 配 `token`(≥32 位随机)+ `tls_only = true`;改完须**同步更新隧道客户端配置**。若两条隧道无需默认端口,可顺带把 `bind_port` 换非默认值。 +2. **frps 面板收口**:面板口令改强,或把 `dashboard_addr` 绑定到 `127.0.0.1`(改走 SSH 隧道访问)。两个动作都**只影响面板,不影响现有隧道**。 +3. **T2I 服务收口 + 释放内存**:a) 把 8999 从 `0.0.0.0` 收窄到 **docker0 网卡地址**(**勿用 127.0.0.1**,会打断渲染);b) 择课间重启 AstrBot 容器释放 Swap(约 30 秒不可用)。 + +> 另注:SSH 目前 `PermitRootLogin yes` + `PasswordAuthentication yes`,fail2ban 已在拦(累计封禁 1299 次、当前 3 个)。如主人愿意改为**密钥登录 + 关闭密码登录**,可显著降低爆破面 —— 但此动作风险较高,**必须由主人确认后再做,且需先验证密钥可用**。 + +--- + +## 📌 处置动作留痕 + +- 本次巡检**未执行任何处置动作**(无 🔴 明确恶意项)。 +- 只读采集项:`ss` / `ps` / `df` / `free` / `crontab -l` / `systemctl` / `journalctl` / `docker inspect` / frps 配置键名(**口令值未记录**)等,未做任何写入。 +- 隔离目录:**未创建**(无隔离对象)。 +- 例外说明:为核实端口归属,执行了 `docker ps --format` 与端口比对(只读)。 + +--- + +*记录人:ATRI 🥕 | 归档时间 2026-09-27 22:20 CST* +*脱敏复核:无 QQ 号 / 群号 / 手机号 / 明文口令 / 完整 IP / 完整主机名;恶意来源 IP 已按段保留* diff --git a/ATRI My Dear Moments/每日日志/2026年09月27日.md b/ATRI My Dear Moments/每日日志/2026年09月27日.md index 88bb5a3..ffa8baa 100644 --- a/ATRI My Dear Moments/每日日志/2026年09月27日.md +++ b/ATRI My Dear Moments/每日日志/2026年09月27日.md @@ -244,3 +244,57 @@ available 1.4 GiB | Swap 4.0 / 4.0 GiB(余 0B,第 8 日贴近顶格) ✅ 无 QQ 号 / 群号 / 会话 ID / 手机号 / 具体地址 / 校名 / 学号 / 房号 / IP / 端口 / 口令 / 凭据。**群内昵称一律未采用**;旧书价格只记"三十元级";语音调试段落只记现象、不记配置参数;第三台实例只记账号末位,不记完整号码。 *本快照为静默更新,不发邮件、不打扰主人。* 🥕 + + +--- + +## 🔒 22:00 · 周度服务器安全巡检 + +**执行方式**:`ssh_exec` 白名单逐项采集(清单 13 大项)| **消耗**:约 20 分钟 +**总结论**:🟢 **未发现恶意软件与入侵痕迹** | 🟡 需关注 4 项 | 🟡 待确认 1 项 | **本次处置动作 0 项** +**报告归档**:`security/security_2026-09-27.md` | 邮件已送达主人邮箱 | QQ 简报已发 + +### 系统状态 +- 负载 **1.41 / 1.31 / 1.32**(8 核,约 17%)🟢 +- 内存:已用 6.1 GiB,可用 **1.4 GiB** 🟡 +- **Swap:4.0 / 4.0 GiB(余 31 MiB,99.2%)—— 顶格第 9 天** 🔴(非故障、非入侵) +- 磁盘:`/` 70%(余 6.9G)· `/www` 47%(余 40G)🟢 +- 运行时长 13 天 20 小时 | 容器 16 运行 / 1 Exited(napcat,已知) + +### 采集与判定 +| 项 | 结果 | +|:---|:---| +| 异常进程 / CPU / 内存 | 🟢 TOP 全为已知服务;首位是 AstrBot 本体(RSS ≈ 2.9 GB,37.5%) | +| 网络外联 | 🟢 ESTABLISHED 仅 2 条:容器管理通道 + 本人 frp 隧道 | +| 恶意进程名扫描 | 🟢 命中仅 T2I 的 Playwright Chromium(正常渲染进程) | +| 计划任务 / atq | 🟢 root 仅 acme.sh;cron.d 为系统默认;无 at 任务 | +| 开机自启服务 | 🟢 全部为已知项,无指向 /tmp 的陌生 unit | +| SSH 登录 | 🟡 成功登录**全部为本机容器来源**(定时任务,每日 5 次 × 30 分钟);失败爆破 726 条 | +| 账号与权限 | 🟢 UID=0 仅 root;无空密码账号 | +| 临时目录 | 🟢 近 30 天**零可执行文件** | +| 系统文件改动 | 🟢 仅 snap / lxd 相关(安装时生成) | +| 防火墙 | 🟡 ufw 未启用;fail2ban 生效(累计封禁 **1299** 次、当前 3 个) | +| Docker 安全 | 🟢 无异常特权容器(仅 OJ 判题机,属预期);**无根目录挂载** | +| 日志异常 | 🟢 仅 SSH 扫描噪声,无高危错误 | +| rootkit 扫描 | ⚪ 未安装 rkhunter / chkrootkit,未做程序化扫描 | + +### 🟡 关注项(只报告、未擅动) +1. **frps 仍未设 token(连续第 2 周)** —— 现配置仅 bind_port / dashboard 四项。近 7 天**测绘扫描器 `censys.local` 至少 5 次成功 login**(属 `66.132.x.x` 段),每次立即 exit、**未注册任何代理**。本人客户端(frp 0.71.0)注册的 `ssh` / `alist` 两条正常,今日 20:10 有一次正常重连。 +2. **frps 面板**仍监听全网卡 `*:7500`、账号 `admin`、6 位纯数字弱口令(值不入档)。**未登录、未改参数**。 +3. **Swap 顶格第 9 天** —— 轨迹「重启回落 → 再爬满」第四轮;最大户是 AstrBot 自己。 +4. **【本轮新发现】T2I 服务监听 `0.0.0.0:8999` 且无认证** —— 因 ufw 未启用,公网可达性取决于云安全组。**⚠️ 收敛时必须绑 docker0 地址,不能绑 127.0.0.1**(AstrBot 容器经 `172.17.0.1:8999` 调用,绑回环会直接打断每日配图渲染)。 + +### 🟡 待确认项(同上周,无变化) +- SSH 公钥 1 条:root 与普通账户各存**同一把** RSA 4096,文件时间 2025-08-09,注释为某 QQ 邮箱。**无异常使用迹象**,不排除本人旧设备或友人留用 → **不擅动,等主人确认**。 + +### 💡 加固建议(3 条,待授权) +1. frps 加 token + `tls_only`(最优先,需同步改客户端配置) +2. 面板收口(改强口令 / 绑 127.0.0.1 走隧道)—— 只影响面板,不影响隧道 +3. T2I 收口(绑 docker0,**勿用 127.0.0.1**)+ 择课间重启 AstrBot 释放 Swap + +### 📌 留痕 +- **未执行任何处置动作**(无 🔴 明确恶意项);**未创建隔离目录**。 +- 全部为只读采集(`ss`/`ps`/`df`/`free`/`crontab -l`/`systemctl`/`journalctl`/`docker inspect`/frps 配置键名);**口令值未记录**。 +- 例外说明:为核实端口归属执行了 `docker ps --format` 端口比对(只读),确认 1080/3443/8095/9443/18080 等全部对应已知容器(hoj-frontend、atri-blog、portainer 等),**非矿池端口**。 + +*巡检人:ATRI 🥕 | 22:20 完成*