ConnorrArnold/Hardening-Audit-Remediation-in-AWS-EC2-Ubuntu

GitHub: ConnorrArnold/Hardening-Audit-Remediation-in-AWS-EC2-Ubuntu

该项目通过使用 Lynis 工具,详细演示了如何对 AWS EC2 Ubuntu 服务器进行全面的安全审计与加固,以提升系统的安全防御评分。

Stars: 0 | Forks: 0

# AWS EC2 Ubuntu 加固审计与修复 ## 目标 本实验旨在通过使用 Lynis 识别并修复安全漏洞,来加固一台 AWS EC2 Ubuntu 服务器。从 60 分的基准加固分数开始,实验涵盖了系统更新、SSH 加固、防火墙配置、内核参数调优、入侵检测、文件完整性监控以及访问控制加固。目标是通过动手修复真实的审计发现,逐步提高 Lynis 加固指数。 ## 学到的技能 - Linux 服务器加固和安全审计 - 解读并修复 Lynis 审计发现 - SSH 配置和基于密钥的身份验证 - iptables 防火墙规则创建与持久化 - 通过 sysctl 进行内核参数加固 - PAM 配置和密码策略强制执行 - 文件权限管理 - 使用 fail2ban 进行入侵检测 - 使用 AIDE 和 rkhunter 进行文件完整性监控 - Windows SSH 客户端配置和密钥管理 - AWS EC2 安全组管理 ## 使用的工具 - Lynis 3.0.9 - OpenSSH - iptables / netfilter-persistent - fail2ban - rkhunter - AIDE (Advanced Intrusion Detection Environment) - auditd - mod_evasive - ModSecurity - sysstat - PowerShell (Windows SSH 客户端) - AWS EC2 控制台 ## 步骤 ### 阶段 1:基线与初始加固(分数:60 至 65) 1. 安装 Lynis 并运行初始审计:`sudo lynis audit system`(分数:60) 2. 更新并升级所有软件包:`sudo apt update && sudo apt upgrade -y` 3. 运行全面升级:`sudo apt full-upgrade` 4. 重新运行 Lynis 审计(分数:63) 5. 安装 libpam-tmpdir 以根据 PAM 安全地处理临时目录 6. 重启机器以应用更改 7. 重新运行 Lynis 审计(分数:65) 8. 创建具有 sudo 权限的辅助用户账户:`connor` ### 阶段 2:SSH 加固(分数:65 至 73) 9. 备份 SSH 配置:`sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak` 10. 编辑 `/etc/ssh/sshd_config`,进行以下更改: - `#Port 22` 更改为 `Port 2222` - `#LogLevel INFO` 更改为 `LogLevel VERBOSE` - `#MaxAuthTries 6` 更改为 `MaxAuthTries 3` - `#MaxSessions 10` 更改为 `MaxSessions 2` - `#AllowAgentForwarding yes` 更改为 `AllowAgentForwarding no` - `#AllowTcpForwarding yes` 更改为 `AllowTcpForwarding no` - `X11Forwarding yes` 更改为 `X11Forwarding no` - `#TCPKeepAlive yes` 更改为 `TCPKeepAlive no` - `#ClientAliveCountMax 3` 更改为 `ClientAliveCountMax 2` - 添加 `AllowUsers ubuntu` 以将登录限制为一个账户 11. 测试配置:`sudo sshd -t` 12. 重新加载 SSH:`sudo systemctl daemon-reload && sudo systemctl restart ssh.socket` 13. 更新 AWS 安全组:添加自定义 TCP 端口 2222,移除端口 22 14. 使用 PowerShell Set-Acl 修复 Windows .pem 密钥文件权限 15. 在 `C:\Users\ctarn\.ssh\config` 创建 SSH 快捷方式配置 16. 重新运行 Lynis 审计(分数:73) ### 阶段 3:防火墙与入侵检测(分数:73 至 86) 17. 创建 iptables 规则以允许端口 2222、HTTP、HTTPS、ICMP 并丢弃所有其他入站流量 18. 安装 iptables-persistent 并保存规则:`sudo netfilter-persistent save` 19. 安装并配置 fail2ban,为端口 2222 上的 SSH 设置自定义 jail 20. 将禁止时间设置为 1 小时,10 分钟内最大重试次数为 3 21. 验证 fail2ban 正在监控 SSH:`sudo fail2ban-client status sshd` 22. 创建 `/etc/sysctl.d/99-hardening.conf`,包含 19 个加固的内核参数,包括: - 禁用 TTY 劫持(`dev.tty.ldisc_autoload = 0`) - 加固 BPF(`kernel.unprivileged_bpf_disabled = 1`,`net.core.bpf_jit_harden = 2`) - 在所有接口上禁用 ICMP 重定向 - 启用 martian 数据包日志记录 - 限制内核指针暴露(`kernel.kptr_restrict = 2`) 23. 在不重启的情况下应用设置:`sudo sysctl -p /etc/sysctl.d/99-hardening.conf` 24. 安装 auditd 并为以下内容创建审计规则: - 对 `/etc/passwd`、`/etc/group`、`/etc/shadow`、`/etc/sudoers` 的更改 - SSH 配置修改 - sudo 使用和权限提升 25. 加载审计规则:`sudo augenrules --load` 26. 安装 rkhunter,修复 WEB_CMD 配置,初始化基线数据库 27. 运行完整的 rootkit 扫描:检查了 498 个 rootkit,发现 0 个 28. 安装并配置 Apache mod_evasive,设置 DoS 防护阈值 29. 安装 ModSecurity WAF 并设置 `SecRuleEngine On` 30. 启用这两个模块:`sudo a2enmod evasive security2` 31. 限制文件权限: - `/etc/ssh/sshd_config` 设置为 600 - `/etc/crontab` 设置为 600 - 所有 cron 目录设置为 700 32. 向 `/etc/issue` 和 `/etc/issue.net` 添加法律警告横幅 33. 在 sshd_config 中启用横幅:`Banner /etc/issue.net` 34. 通过 modprobe 禁用未使用的网络协议(dccp、sctp、rds、tipc) 35. 通过 modprobe 禁用 USB 存储驱动程序 36. 安装 libpam-pwquality 并配置密码要求: - 最小长度:12 个字符 - 最小字符类别:3 - 最大重复字符:3 37. 在 `/etc/login.defs` 和 `/etc/bash.bashrc` 中将 UMASK 设置为 027 38. 设置密码哈希轮数:SHA_CRYPT_MIN/MAX_ROUNDS = 65536 39. 在 `/etc/security/limits.conf` 和 `/etc/systemd/coredump.conf` 中禁用核心转储 40. 安装并启用进程记帐:`sudo apt install acct` ### 阶段 7:最终清理与监控(分数:86 至 88) 41. 安装 debsums 和 apt-show-versions 用于软件包验证 42. 安装 apt-listchanges 用于升级变更跟踪 43. 将服务器主机名和 FQDN 添加到 `/etc/hosts` 44. 清除残留的 UFW 配置文件:`sudo dpkg --purge ufw` 45. 启用 sysstat 进行系统性能记帐 46. 在 `/etc/login.defs` 中配置 SHA_CRYPT 密码哈希轮数 47. 安装 AIDE 并初始化文件完整性基线数据库 48. 使用显式配置路径重建 AIDE 数据库 49. 最终 Lynis 审计(分数:88)
标签:AIDE, Apache WAF, Auditd, AWS EC2, CISA项目, Fail2ban, iptables, Linux安全加固, Lynis审计, mod_evasive, ModSecurity, PAM配置, PB级数据处理, PE 加载器, rkhunter, SSH加固, sysctl, x64dbg, 内核参数调优, 动态API解析, 基线加固, 安全运维, 密码策略, 权限管理, 模型越狱, 漏洞修复, 系统加固, 网络安全培训, 防火墙配置