ammaduddinbajwa/Secure-WordPress-AWS-EC2
GitHub: ammaduddinbajwa/Secure-WordPress-AWS-EC2
该项目展示了在AWS EC2上安全部署并加固WordPress/LAMP栈的完整实践,通过Nmap和Nessus漏洞扫描验证了从基础设施到应用层的端到端加固效果。
Stars: 0 | Forks: 0
# 在 AWS EC2 上安全部署 WordPress




MSc 云架构与安全课程作业:从零开始在 AWS EC2 实例上部署了 LAMP/WordPress 技术栈,随后跨越基础设施和应用层进行了端到端的加固,并使用真实的漏洞扫描验证了结果。
**项目概览**
- 配置了一个 EC2 实例 (Amazon Linux 2),配置了 LAMP 技术栈 (Linux, Apache, MariaDB, PHP) 并在其上部署了 WordPress,通过 Elastic IP 和自定义域名进行安全保护,并配备了 Let's Encrypt (Certbot) SSL 证书。
- 加固了 WordPress 应用层:隐藏了 wp-admin 登录路径,在多次登录失败后实施防火墙 + IP 封禁策略,进行恶意软件/防病毒扫描,并实现每日自动备份。
- 加固了基础设施层:采用最小权限的 security groups,利用 AWS CloudWatch 仪表板和指标阈值警报(通过 SNS)来监控网络和实例健康状况。
- 使用 **Nmap** 侦察和全面的 **Nessus** 漏洞扫描验证了加固效果——发现并修复了高危的 Apache 版本过时问题,以及中危的 HSTS 和 HTTP TRACE/TRACK 问题。
- 完整的书面报告、方法论和调查结果详见 [report.pdf](report.pdf)。
## 项目简介
网络安全 MSc 的小组课程作业(爱尔兰国家学院,云架构与安全模块)。任务要求:实例化一个作为 IaaS 的云 VM,在其上部署 LAMP 技术栈和 WordPress(默认不安全),然后从基础设施层 (EC2) 到应用层 进行端到端的安全加固,并使用真实的安全测试工具证明加固结果。
## 构建内容
**基础设施 (IaaS)**
- AWS EC2 实例,通过 SSH 密钥对身份验证进行访问。
- 作用域仅限于所需入站流量 (SSH, HTTP, HTTPS) 的 Security groups。
- 分配了 Elastic IP 以提供稳定、持久的地址。
- 安装并配置了 LAMP 技术栈 (Apache, MariaDB, PHP),对数据库进行了加固(强凭据,移除了匿名账户和测试数据库)。
**应用**
- 在 LAMP 技术栈上安装了 WordPress,创建了具有受限访问权限的数据库和专用数据库用户。
- 为配置生成了唯一的 WordPress "Key" 和 "Salt" 安全值。
- 购买了自定义域名并指向该站点;通过 Certbot/Let's Encrypt SSL 证书强制使用 HTTPS。
- 使用登录加固插件重定位默认的 wp-admin 登录路径。
- 配置了安全/防火墙插件,以在多次登录失败后进行速率限制和 IP 封禁。
- 运行恶意软件扫描/防病毒插件作为额外的防御层。
- 通过专用的备份插件配置了每日自动备份。
**监控**
- AWS CloudWatch 仪表板跟踪实例和网络健康指标(数据包入/出站,状态检查),每 3 分钟刷新一次。
- CloudWatch 警报连接到 SNS 主题,以在违反阈值(例如异常流量或 CPU 使用率)时发出警报。
## 安全测试与结果
测试在加固完成后进行,以验证加固效果,使用了自动扫描和手动检查相结合的方式:
- **Nmap** — 侦察扫描,用于枚举已部署主机上的开放端口、运行的服务以及 OS 指纹识别。
- **Nessus** — 针对实时站点的全面漏洞扫描。初步发现:1 个高危、2 个中危和 2 个低危漏洞(外加 35 个信息性发现)。
- **高危 (CVSS 7.5):** Apache 版本过时 (pre-2.4.62) — 通过升级 Apache 修复;在重新扫描中确认已修复。
- **中危 (CVSS 6.5):** HTTPS 服务器缺少 HSTS — 通过启用 HSTS 修复。
- **中危 (CVSS 5.3):** 启用了 HTTP TRACE/TRACK 方法(可能有助于攻击者的服务器调试方法)— 通过禁用这些方法修复。
- **低危 (CVSS 3.7, x2):** SSH 配置使用了 CBC cipher 模式和较弱的密钥交换算法 — 已标记待后续修复(需要供应商/配置更改)。
- **手动测试** — 重复失败的登录尝试,以确认速率限制/IP 封禁策略按配置触发;并生成流量以确认 CloudWatch 能够实时捕获网络指标的变化。
## 展现的核心技能
- AWS IaaS 部署与加固 (EC2, Security Groups, Elastic IP, CloudWatch, SNS)
- Linux 服务器管理 (Amazon Linux 2, Apache, MariaDB, PHP/LAMP)
- Web 应用安全加固 (WordPress:身份验证、备份、恶意软件防御、基于插件的防火墙)
- TLS/SSL 配置 (Certbot, Let's Encrypt)
- 漏洞评估与修复 (Nmap, Nessus, CVSS 评分, CVE 研究)
- 安全报告:风险评级、发现文档记录、修复追踪
完整的工具逐一分解方法论、CVSS 评分细节和风险登记表,请参阅 [report.pdf](report.pdf)。
**Ammad Ud Din Bajwa** — 爱尔兰国家学院网络安全 MSc · SOC 分析师 | 事件响应 | 网络安全运营
[LinkedIn](https://www.linkedin.com/in/ammaduddinbajwa) · [GitHub](https://github.com/ammaduddinbajwa) · ammaduddinbajwa702@gmail.com
标签:AWS, CTI, DPI, LAMP, Nessus, Nmap, WordPress, 云架构, 文件完整性监控, 系统加固, 虚拟驱动器