主题
05 — 安全基线
采集时间:2026-11-08 04:00 CST
1. 风险总览
| # | 检查项 | 当前状态 | 等级 |
|---|---|---|---|
| 1 | SSH 允许 root 登录 | PermitRootLogin yes(但密码认证已关,只能凭密钥) | 🟡 低 |
| 2 | SSH 允许密码认证 | ✅ 已关闭(2026-11-08) | 🟢 已加固 |
| 3 | 主机防火墙 | ✅ ufw active(22/80/443),FORWARD 已放宽供 Docker 使用 | 🟢 已加固 |
| 4 | 暴力破解防护 | ✅ fail2ban 0.11.2 已安装,sshd jail 生效 | 🟢 已加固 |
| 5 | 系统补丁 | ✅ 已升级 18 个包;仅 cloud-init(被 hold)未升级 | 🟢 已加固 |
| 6 | Swap | ✅ 已添加 2 GB,vm.swappiness=10 | 🟢 已加固 |
| 7 | 云安全组 | 未知,需控制台核对 | ❓ 未知 |
| 8 | 非 root 登录账号 | 无 | 🟢 良好 |
| 9 | sudo 组成员 | 无(仅 root 可直接提权) | 🟢 良好 |
| 10 | AppArmor | enabled,40 profile 全部 enforce | 🟢 良好 |
| 11 | SUID 文件 | 15 个,全部为系统标准 | 🟢 良好 |
| 12 | 失败 systemd 单元 | 0 | 🟢 良好 |
2. SSH 配置(有效值)
来源:sshd -T(真实生效值,非配置文件文本)
| 配置项 | 值 | 评估 |
|---|---|---|
port | 22 | 默认端口,易被扫描 |
listenaddress | 0.0.0.0:22, [::]:22 | 全网卡监听 |
permitrootlogin | yes | 🟡 密码认证已关,实际只能凭密钥 |
passwordauthentication | ✅ no | 🟢 2026-11-08 已关闭 |
pubkeyauthentication | yes | ✅ 密钥登录 |
permitemptypasswords | no | ✅ |
maxauthtries | 6 | ✅ 合理 |
maxsessions | 10 | — |
clientaliveinterval | 60 | ✅ 2026-11-08 配置(防断连) |
clientalivecountmax | 10 | ✅ 2026-11-08 配置 |
tcpkeepalive | yes | ✅ |
x11forwarding | ✅ no | 🟢 2026-11-08 已关闭 |
allowtcpforwarding | yes | 🟡 可考虑限制 |
logingracetime | 120 秒 | — |
banner | none | — |
配置文件与密钥
| 项 | 内容 |
|---|---|
| Drop-in 目录 | /etc/ssh/sshd_config.d/ |
| 自定义文件 | 99-keepalive.conf(2026-11-08 新建) |
authorized_keys 条数 | 1 |
| 已授权密钥 | ssh-ed25519 ... dsh@DESKTOP-07CR7FO(2026-11-08 新增) |
注意:
authorized_keys中只有本次新增的这一把密钥,没有其他历史密钥残留。
3. 账号
| 检查项 | 结果 |
|---|---|
| UID 0 账号 | 仅 root ✅ |
| 有登录 shell 的普通用户(uid≥1000) | 无 |
sudo 组成员 | 无(sudo:x:27:,成员列表为空) |
| root 密码最后修改 | 2026-10-30 |
| root 密码有效期 | 永不过期 ⚠️ |
| root 密码最短修改间隔 | 0 天 |
| 账号过期 | 永不过期 |
这台机器只有 root 一个可用账号,没有建立任何运维普通账号。 好处是权限模型简单、无多余入口;坏处是所有操作都必须用 root,误操作无缓冲, 且无法做审计分级。生产环境建议至少建一个运维账号 + sudo。
最近登录记录
| 用户 | 终端 | 来源 IP | 时间 |
|---|---|---|---|
| root | pts/1 | 100.104.192.189 | Oct 30 10:23(阿里云内网 / 控制台 VNC) |
| root | pts/1 | 100.104.192.189 | Oct 30 10:23 |
| root | pts/0 | 183.228.250.26 | Oct 30 10:21 |
| root | pts/1 | 183.228.250.26 | Oct 30 10:04 |
| root | pts/0 | 100.104.93.45 | Oct 30 09:59(阿里云内网) |
100.104.x.x为阿里云控制台 VNC / Cloud Shell 的出口地址,属正常。183.228.250.26为人工运维 IP。
4. 补丁状态
| 项 | 值 |
|---|---|
| 可升级包 | 1(cloud-init,被 apt-mark hold 钉住) |
| 本次已升级 | 18 个包(2026-11-08 04:10) |
| 被 hold 的包 | cloud-init、intel-microcode |
| 需要重启 | 否 |
unattended-upgrades | ✅ active |
APT::Periodic::Update-Package-Lists | 1 |
APT::Periodic::Unattended-Upgrade | 1 |
| Ubuntu Pro / ESM | ❌ 未启用 |
自动安全更新已开启,但 ESM 未启用意味着
main之外的软件源拿不到安全补丁。 历史提示:2026-10-30 时有 64 个更新,其中 52 个安全更新。
5. 暴力破解统计
| 项 | 值 |
|---|---|
| fail2ban | ✅ 已安装 0.11.2(2026-11-08) |
| sshd jail | ✅ enabled,当前封禁 0 个 IP |
| 封禁策略 | 10 分钟内失败 5 次 → 封 1 小时,banaction = ufw |
| 白名单 | 127.0.0.1/8 ::1 223.73.45.39(运维 IP) |
| 累计 Failed password | 17 次(均为历史记录) |
| 当前是否已被大规模爆破 | ❌ 否(量很小) |
| 密码认证 | ✅ 已关闭 → 爆破已不可能成功 |
失败来源 TOP
| 来源 IP | 次数 | 归属判断 |
|---|---|---|
47.110.180.43 | 4 | 阿里云网段,多为云安全扫描 |
47.110.180.42 | 4 | 阿里云网段 |
115.191.11.182 | 3 | 外部 |
47.110.180.40 | 2 | 阿里云网段 |
47.101.161.58 | 2 | 阿里云网段 |
47.251.165.65 | 1 | 阿里云网段 |
183.228.250.26 | 1 | 运维自己输错密码 |
目前量很小,但 22 端口对公网开放 + 密码认证开启 + 无 fail2ban, 被持续爆破只是时间问题。关闭密码认证是性价比最高的一步。
6. 强制访问控制(MAC)
| 项 | 状态 |
|---|---|
| AppArmor | ✅ enabled |
| 已加载 profile | 40 |
| enforce 模式 | 40(全部强制执行) |
| SELinux | 未安装 |
7. SUID 文件(15 个,均正常)
/usr/bin/chsh /usr/bin/sudo /usr/bin/fusermount3
/usr/bin/newgrp /usr/bin/gpasswd /usr/bin/su
/usr/bin/umount /usr/bin/pkexec /usr/bin/chfn
/usr/bin/mount /usr/bin/at /usr/bin/passwd
/usr/libexec/polkit-agent-helper-1
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign全部为 Ubuntu 系统标准 SUID 程序,未发现异常提权后门。
8. 加固清单(Checklist)
| 状态 | 项目 | 命令 / 说明 |
|---|---|---|
| ✅ 已完成 | SSH 密钥免密登录 | 2026-11-08 |
| ✅ 已完成 | 双向 SSH 保活 | 2026-11-08 |
| ✅ 已完成 | 启用 ufw 防火墙 | 2026-11-08 04:05,放行 22/80/443 |
| ✅ 已完成 | 关闭 SSH 密码登录 | 2026-11-08 04:16,已验证密钥登录正常 |
| ✅ 已完成 | 关闭 X11 转发 | 2026-11-08 04:16 |
| ✅ 已完成 | 安装 fail2ban | 2026-11-08 04:17 |
| ✅ 已完成 | 添加 2 GB Swap | 2026-11-08 04:17,swappiness=10 |
| ✅ 已完成 | 应用系统补丁 | 2026-11-08 04:10,升级 18 个包 |
| ✅ 已完成 | 安装 Docker(含镜像加速) | 2026-11-08 04:11 |
| ❌ 待你本人 | 收窄安全组 22 端口 | 阿里云控制台(服务器内无权操作) |
| ❌ 待你本人 | 确认控制台 VNC 可用 | 密钥失效时的唯一抢救通道 |
| ⏳ 待决策 | cloud-init 是否升级 | 被 hold,开机关键组件,详见 09-决策记录.md |
| 🟡 建议 | 建立运维普通账号 + sudo | 便于审计 |
| 🟡 建议 | 启用 Ubuntu Pro ESM | 获取完整安全补丁 |
| 🟡 注意 | Docker 发布端口会绕过 ufw | 内部服务绑定 127.0.0.1,见 02-防火墙与端口.md 第 4 节 |
| ⚪ 可选 | 修改 SSH 端口 | 降低扫描噪音(需同步改安全组) |
| ⚪ 可选 | PermitRootLogin prohibit-password | 语义更清晰(当前效果等同) |
⚠️ 关闭密码认证前,务必确认阿里云控制台 VNC 可登录,否则密钥丢失后无法恢复。