Files

47 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# host-sec-check
对一台 Linux/VPS 做入侵取向的安全检查,并支持用户确认后的分阶段安全加固:先取证,再给你一份结论和处置清单。默认不改机器。
## 什么时候用
- 「这台机做一次安全检查」
- 「好像被黑了 / 有矿机 / 服务无故 OOM」
- 「看看哪些端口对公网开着」
- 「给新 VPS 做安全加固 / 配置 SSH、防火墙、Fail2ban」
- 检查另一台机器时,直接点名主机:`对 vvps4 跑 /host-sec-check`
适用于单台 Linux(systemd + 常见 Docker/k3s)。不是应用代码审计,也不是云账号合规审计。
## 使用前准备
- SSH 能上(别名或 `user@host`)
- 尽量有 sudo 或 docker 组(没有也能做浅查)
- 告诉 Agent 哪张 IP 是公网,方便从外面探测
- 若要清理、关端口、重启:明确说「同意处置」
## 使用示例
```text
对 ace@vvps2 做 host-sec-check,只出报告先不要改。
```
```text
用 host-sec-check 查 vora3,公网 IP 是 x.x.x.x,发现未授权的就列处置项问我。
```
## Agent 会做什么
1. 采集账号、监听端口、cron/systemd、Docker/k3s、`ld.so.preload`、内存/hugepage。
2. 怀疑进程隐藏时,用容器读宿主机,避免被矿机库骗过。
3. 从另一台机器探测公网端口(含 IPv6,如果有)。
4. 给出结论:是否沦陷、入口、对外端口、建议处置。
5. 你点头后才停容器、占位矿机文件、收端口、重启或执行 [分阶段加固](references/hardening.md)。
加固会先验证非 root 密钥登录、SSH 配置生效值、实际防火墙后端、Fail2ban 日志后端和 Docker/k8s 暴露面;不会要求把密码发给 Agent,也不会默认删除 SSH drop-in 或把 Docker 的 `iptables` 改成 `false`。
已确认需要修复时,Agent 会先生成计划,再按批准的项目执行。当前自动修复仅覆盖 SSH 文件权限和 Fail2ban;每次会备份并支持回滚,防火墙、SSH 策略和恶意文件仍需人工确认。
## 如何判断完成
报告里有结论表;若做了处置,公网已关端口连不上,业务域名仍可用。密钥、token 不应出现在完整原文里。