understillerr/rocky-hardening-ansible
GitHub: understillerr/rocky-hardening-ansible
一个将 Rocky Linux 10 手动安全加固步骤自动化的 Ansible playbook,通过补丁更新、SSH 收紧、防火墙配置、审计启用等措施将 Nessus 扫描中的严重和高危漏洞清零。
Stars: 1 | Forks: 0
# Rocky Linux 加固自动化 (Ansible)
我是一名学习网络安全专业的 IT 本科生,这是我家庭实验室项目的一部分。它是一个 Ansible playbook,可以自动对 Rocky Linux 10 服务器进行加固。
我最初是手动完成所有加固的。然后我将这些步骤转换成了这个 playbook,这样就可以在任何服务器上重复执行,而无需每次都手动操作。这也是我最想学习的一点:如何实现安全配置的自动化,而不是每次都一步步手动点击操作。
## 实验室环境搭建

## 功能说明
| 领域 | 作用 |
| --- | --- |
| 更新 | 安装所有可用的补丁 |
| 清理 | 移除未使用的软件 (Samba) |
| SSH | 仅允许密钥登录,将 SSH 移至端口 2222,阻止 root 登录,限制登录尝试次数 |
| 防火墙 | 仅开放端口 2222,移除不需要的服务,阻止 ICMP 时间戳 |
| fail2ban | 封禁多次 SSH 登录失败的 IP |
| 审计 | 开启 auditd 并添加规则以跟踪重要文件的更改 |
| 基础维护 | 添加登录警告横幅,锁定 cron 权限,禁用未使用的模块 (TIPC) |
## 工作原理
Ansible 从一台机器(我的 Kali 主机)上运行,并通过 SSH 配置另一台机器(Rocky)。Rocky 上除了 SSH 和 Python(系统已自带)之外,不需要安装任何其他东西。
## 运行说明
1. 在 inventory.ini 中设置目标服务器。
2. 首先进行试运行(只显示会发生什么更改,而不会实际修改任何内容):ansible-playbook hardening.yml --check -K
3. 正式运行:ansible-playbook hardening.yml -K
-K 会要求输入 sudo 密码。
## 关于重新运行的说明
多次运行此脚本是安全的。如果服务器已经配置完毕,playbook 只会报告“ok”并跳过,而不会重做这些工作。我了解到这被称为“幂等”。
## 关于本项目
这个 playbook 是我构建的更大型家庭实验室的一部分。完整的项目还包括使用 Nessus 进行漏洞扫描、使用 Wazuh SIEM 进行检测工程和自动化响应,以及 CIS 基准加固。这部分展示了我如何将手动加固转化为自动化操作。
## 注意
我是针对隔离的实验室环境构建的这个项目。如果你要在其他地方运行它,请先仔细阅读各项任务。其中一些操作(例如更改 SSH 端口)如果你的设置与当前环境不匹配,可能会导致你被锁定无法登录。
## 结果
通过前后对比扫描检查了工作成果
**漏洞扫描 (Nessus,带凭证)**
| 严重程度 | 加固前 | 加固后 |
| ------------- | ------ | ----- |
| 严重 | 2 | 0 |
| 高危 | 5 | 0 |
| 低危 | 1 | 0 |
| 可操作项 | 8 | 0 |
初始状态共有 8 个可操作项(2 个严重,5 个高危,1 个低危),外加 49 个信息性项目,总计 57 个。每个严重和高危项都是缺失的操作系统安全补丁,这些只有在 Nessus 通过 SSH 认证后才会显示。加固后,同样的凭证扫描在所有严重级别中均显示为 0。仅剩的结果都是信息性的(系统枚举数据),而不是漏洞。
**CIS 基准 (Wazuh SCA, CIS Rocky Linux 10 v1.0.0)**
得分从 57%(通过了 91 项控制)提升到了 66%(通过了 105 项)。剩余的未通过项是分区布局相关的控制,这需要安装时的磁盘方案,这在文档中已被记录为已知的且在范围内的差距。
**自动化 (Ansible dry run)**
针对已加固主机的 `--check` 运行已完成,0 次失败(ok=23, changed=7),确认该 playbook 能够重现完整的配置并且是幂等的。
包含截图的完整报告:[项目 ePortfolio](https://easy-delphinium-785.notion.site/Linux-Hardening-Vulnerability-Assessment-Detection-Lab-3816f3a66a5381eeaf99e291eb62842d?pvs=73)
标签:Ansible, PE 加载器, Rocky Linux, 安全基线, 实验环境, 教学环境, 系统加固, 系统提示词, 自动化运维, 逆向工具