premmadishetty/AWS-VPN-Secure-Infrastructure

GitHub: premmadishetty/AWS-VPN-Secure-Infrastructure

在 AWS 上构建安全的 OpenVPN 基础设施,解决远程访问加密、访问控制与合规审计问题。

Stars: 0 | Forks: 0

# 🔐 AWS 云 VPN 基础设施 ### 使用 OpenVPN、EC2、S3 和 IAM 在 AWS 上实现安全的虚拟专用网络 [![AWS](https://img.shields.io/badge/AWS-Cloud-FF9900?style=for-the-badge&logo=amazonaws&logoColor=white)](https://aws.amazon.com/) [![OpenVPN](https://img.shields.io/badge/OpenVPN-Server-EA7E20?style=for-the-badge&logo=openvpn&logoColor=white)](https://openvpn.net/) [![Ubuntu](https://img.shields.io/badge/Ubuntu-24.04-E95420?style=for-the-badge&logo=ubuntu&logoColor=white)](https://ubuntu.com/) [![Security](https://img.shields.io/badge/Security-Hardened-00C853?style=for-the-badge&logo=letsencrypt&logoColor=white)](#system-security-enhancements) [![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](LICENSE) **一个企业级 VPN 部署方案,在 AWS 上提供加密存储、基于角色的访问控制、事件响应规划和持续监控 — 采用企业安全标准设计。** [架构](#architecture-overview) · [部署](#deployment-guide) · [安全](#system-security-enhancements) · [监控](#monitoring--alerting) · [事件响应](#incident-response-plan)
## 📋 目录 - [架构概述](#architecture-overview) - [使用的 AWS 服务](#aws-services-used) - [部署指南](#deployment-guide) - [EC2 实例设置](#1-ec2-instance--openvpn-server) - [S3 存储桶配置](#2-s3-bucket-configuration) - [IAM 角色与策略](#3-iam-roles--policies) - [系统安全增强](#system-security-enhancements) - [监控与告警](#monitoring--alerting) - [支持计划](#support-plan) - [事件响应计划](#incident-response-plan) - [截图](#screenshots) - [作者](#author) ## 🏗️ 架构概述 本项目在 AWS 上实现了一个 **安全的 VPN 基础设施**,允许远程客户端通过加密隧道连接到内部网络。该架构遵循 **AWS 卓越架构框架**,并遵守 **最小权限原则**。 ``` ┌─────────────────────────────────────────────────────┐ │ AWS Cloud (us-west-2) │ │ │ ┌──────────┐ │ ┌──────────────────────┐ │ │ Remote │──────────┼──▶│ EC2 (t2.micro) │ │ │ Client │ OpenVPN │ │ Ubuntu + OpenVPN │ │ │ Device │ UDP:1194│ │ Access Server │ │ └──────────┘ │ └──────────┬───────────┘ │ │ │ │ │ ┌────────┴────────┐ │ │ ▼ ▼ │ │ ┌──────────┐ ┌──────────────┐ │ │ │ S3 Bucket│ │ S3 Bucket │ │ │ │Baselines │ │ Ops Backup │ │ │ │(AES-256) │ │ (AES-256) │ │ │ └──────────┘ └──────────────┘ │ │ │ │ ┌──────────────────────────────────────┐ │ │ │ Security & Monitoring │ │ │ │ IAM ∙ CloudWatch ∙ GuardDuty ∙ │ │ │ │ CloudTrail ∙ Inspector ∙ WAF │ │ │ └──────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘ ``` ## 🛠️ 使用的 AWS 服务 | 服务 | 用途 | 配置 | |------|------|------| | **EC2** | OpenVPN 服务器主机 | `t2.micro`,Ubuntu,us-west-2 | | **S3** | 加密基线与操作备份 | AES-256 / SSE-KMS 加密 | | **IAM** | 基于角色的访问控制 | 管理员与维护角色 | | **CloudWatch** | 实时指标与告警 | CPU、网络、状态检查 | | **Inspector** | 漏洞扫描 | EC2 实例评估 | | **GuardDuty** | 威胁检测 | 基于 ML 的异常检测 | | **CloudTrail** | 审计日志 | API 活动追踪 | | **安全组** | 网络级防火墙 | IP 限制入口规则 | ## 🚀 部署指南 ### 1. EC2 实例 — OpenVPN 服务器 **启动配置:** - **AMI:** Ubuntu 服务器 - **实例类型:** `t2.micro` - **区域:** `us-west-2`(俄勒冈) - **密钥对:** `OpenVPN_Oregon.pem` - **实例名称:** `OpenVPN-Master Server-MIS690PM` **安全组规则:** | 协议 | 端口 | 来源 | 用途 | |------|------|------|------| | TCP | 22 | 仅管理员 IP | SSH 访问 | | UDP | 1194 | 仅管理员 IP | OpenVPN 隧道 | | TCP | 443 | 仅管理员 IP | HTTPS 管理 | | TCP | 943 | 仅管理员 IP | OpenVPN Web UI | | TCP | 945 | 仅管理员 IP | 集群控制 | **安装与配置 OpenVPN:** ``` # SSH 登录实例 ssh -i OpenVPN_Oregon.pem ec2-user@ # 更新系统软件包 sudo apt update && sudo apt upgrade -y # 安装 OpenVPN sudo apt install openvpn -y # 初始化 PKI 并生成证书 cd /etc/openvpn sudo cp -r /usr/share/doc/openvpn*/easy-rsa/ /etc/openvpn/ cd /etc/openvpn/easy-rsa/3.0 sudo ./easyrsa init-pki sudo ./easyrsa build-ca sudo ./easyrsa gen-req server nopass sudo ./easyrsa sign-req server server sudo ./easyrsa gen-dh # 启动服务 sudo systemctl enable openvpn@server sudo systemctl start openvpn@server # 配置防火墙 sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT sudo systemctl save iptables ```
📸 EC2 实例截图(点击展开) #### EC2 实例摘要 ![EC2 实例摘要](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2be9b4c228081011.png) #### 运行中的 EC2 实例 ![EC2 运行中](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1fea4b2b91081012.png) #### 通过 SSH 安装 OpenVPN ![OpenVPN 安装](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ab5e11b897081014.png) #### 安全组 — 入站规则 ![安全组规则](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c60fc00a47081015.png)
### 2. S3 存储桶配置 两个 S3 存储桶提供加密、版本化的关键项目数据存储: | 存储桶 | 用途 | 加密 | 内容 | |--------|------|------|------| | `openvpn-baselines-mis690pm` | 应用程序基线版本 | SSE-S3 (AES-256) | `.pem` 密钥、版本化配置 | | `openvpn-opsdata-backup-mis690pm` | 操作数据备份 | SSE-S3 (AES-256) | 部署后备份文件 | **附加配置:** - ✅ **存储桶日志记录** — 记录所有请求以符合审计要求 - ✅ **生命周期策略** — 自动过渡到 Glacier 以优化成本 - ✅ **CloudWatch 告警** — 通知异常访问模式 - ✅ **禁止公共访问** — 默认拒绝所有公共访问 - ✅ **启用版本控制** — 支持回滚的完整版本历史
📸 S3 存储桶截图(点击展开) #### S3 存储桶列表 ![S3 存储桶](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8d83022422081016.png) #### 加密设置(SSE-S3) ![S3 加密](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8a7f09dc49081018.png) #### 基线存储桶 — 版本 1.0 ![S3 基线存储桶](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5bce1e6fad081019.png) #### 操作数据备份存储桶 ![S3 操作备份](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a2f9f8c258081020.png)
### 3. IAM 角色与策略 访问控制遵循 **最小权限原则**,包含两个专用角色: #### OpenVPN 管理员角色 对 VPN 资源、EC2 管理和操作备份拥有完全管理权限。 ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::openvpn-ops-data-backup/*" }, { "Effect": "Allow", "Action": "ec2:DescribeKeyPairs", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:*", "Resource": "*" } ] } ``` #### OpenVPN 维护角色 提供用于监控基线和查看系统日志的只读访问权限。 ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:DescribeLogGroups", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:GetLogEvents", "Resource": "arn:aws:logs:region:account-id:log-group:/aws/ec2/*" }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::openvpn-baselines/*" } ] } ```
📸 IAM 截图(点击展开) #### IAM 角色列表 ![IAM 角色](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/478551bee9081021.png) #### 管理员角色 — 权限摘要 ![管理员权限](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f0a57f51ae081022.png) #### 维护角色 — 权限摘要 ![维护权限](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4e87bb4ea4081024.png)
## 🔒 系统安全增强 ### 多因素认证(MFA) | 组件 | 实现方式 | 目的 | |------|----------|------| | TOTP 应用 | Google Authenticator / Authy | 标准用户身份验证 | | 硬件令牌 | YubiKey | 高权限管理员账户 | | 条件访问 | 基于风险的触发 | 在可疑登录时强制 MFA | ### 系统加固 - **CIS 基准** — 配置符合互联网安全中心指南 - **协议加固** — 强制所有数据传输使用 TLS 1.2+ - **服务最小化** — 禁用所有未使用的服务、端口和协议 - **补丁管理** — 通过 AWS Systems Manager Patch Manager 自动执行 - **IDS/IPS 部署** — 主动监控网络流量以检测威胁 ### 网络安全控制 ``` ┌─────────────────────────────────────────────────────┐ │ Security Group — Inbound Rules │ ├──────────┬──────┬───────┬───────────────────────────┤ │ Protocol │ Port │ Type │ Source │ ├──────────┼──────┼───────┼───────────────────────────┤ │ TCP │ 22 │ SSH │ 130.191.100.155/32 (Admin)│ │ UDP │ 1194 │ VPN │ 130.191.100.155/32 (Admin)│ │ TCP │ 443 │ HTTPS │ 130.191.100.155/32 (Admin)│ │ TCP │ 943 │ WebUI │ 130.191.100.155/32 (Admin)│ │ TCP │ 945 │ Ctrl │ 130.191.100.155/32 (Admin)│ └──────────┴──────┴───────┴───────────────────────────┘ ``` ## 📊 监控与告警 ### CloudWatch 指标 对 EC2 实例进行实时监控,跟踪以下指标: | 指标 | 描述 | 告警阈值 | |------|------|----------| | `CPUUtilization` | 处理器使用率 | > 80% 持续 | | `NetworkIn` / `NetworkOut` | 数据传输量 | 异常波动 | | `NetworkPacketsIn` | 数据包计数监控 | DDoS 指示 | | `StatusCheckFailed` | 实例健康检查 | 任何失败 | `CPUCreditBalance` | 可突发性能积分 | < 20 积分 | ### AWS Inspector 对 EC2 实例执行自动漏洞评估,扫描已知 CVE、网络暴露和配置弱点。 | 发现类别 | 结果 | |----------|------| | 严重 | **0** | | 高 | **0** | | 中 | **0** |
📸 监控截图(点击展开) #### CloudWatch — 指标仪表板 ![CloudWatch 指标](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/32f7cc1560081025.png) #### AWS Inspector — 漏洞发现 ![AWS Inspector](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/703f7a682f081026.png)
## 🛠️ 支持计划 ### 3 个月维护计划 | 活动 | 频率 | 负责人 | 工具 | |------|------|--------|------| | 操作系统与应用补丁 | 每月 | 系统管理员 | AWS Systems Manager | | 关键安全补丁 | 即时(发布后) | IT 安全团队 | 补丁管理器 | | 日志审查与异常检测 | 每周 | IT 安全团队 | Splunk / QRadar / SIEM | | 综合趋势分析 | 每月 | IT 安全 + 利益相关者 | CloudWatch + SIEM | | IAM 权限审计 | 每月 | IT 安全团队 | CloudTrail + IAM 分析器 | | 备份验证与测试 | 每月 | 系统管理员 | S3 + AWS Backup | | 事件响应演练 | 每季度 | 全体团队 | 事件响应计划文档 | ### 责任矩阵(RACI) | 任务 | IT 安全 | 系统管理员 | IT 经理 | |------|--------|------------|--------| | 补丁管理 | C | R | I | | 日志监控 | R | C | I | | 事件响应 | R | C | A | | 策略更新 | R | I | A | | 合规报告 | C | I | R | ## 📜 事件响应计划 ### 检测 → 遏制 → 恢复 流程 ``` ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ DETECTION │───▶│ CONTAINMENT │───▶│ ERADICATION │───▶│ RECOVERY │───▶│ POST-INCIDENT│ │ │ │ │ │ │ │ │ │ ANALYSIS │ │ • CloudWatch │ │ • Isolate │ │ • Remove │ │ • Restore │ │ • Root cause │ │ • GuardDuty │ │ resources │ │ malware │ │ from S3 │ │ • Update IRP │ │ • CloudTrail │ │ • Revoke │ │ • Patch │ │ backups │ │ • Strengthen │ │ │ │ credentials│ │ vulns │ │ • Validate │ │ defenses │ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ ``` ### 检测工具 | 工具 | 功能 | 关键指标 | |------|------|----------| | **CloudWatch** | 网络流量监控 | DDoS 流量峰值、异常模式 | | **GuardDuty** | 基于 ML 的威胁情报 | 凭据泄露、异常访问 | | **CloudTrail** | API 活动审计 | 未授权 API 调用、权限提升 | ### 响应动作 | 阶段 | 动作 | AWS 服务 | |------|------|----------| | **遏制** | 隔离 EC2、调整安全组、阻止恶意流量 | 安全组、网络 ACL | | **缓解** | 吸收 DDoS、过滤请求、吊销凭据 | AWS Shield、WAF、IAM | | **调查** | 分析日志、追踪攻击时间线、识别受影响系统 | CloudTrail、VPC 流日志 | | **恢复** | 从加密 S3 备份恢复、使用 Inspector 扫描 | S3、AWS Inspector | | **加固** | 更新事件响应计划、修补漏洞、添加检测规则 | Systems Manager、GuardDuty | ## 📸 截图 ### VPN 实施 | 截图 | 描述 | |------|------| | ![OpenVPN 登录](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/03603ceb7a081027.png) | **OpenVPN 访问服务器** — 通过 HTTPS 提供的管理登录页面 | | ![流量日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/fea4f052d8081028.png) | **实时流量** — 显示带宽和数据包流量的实时连接统计 | | ![速度测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/274236ca4b081030.png) | **VPN 速度测试** — 隧道内下载 97.3 Mbps / 上传 8.18 Mbps | | ![VPN 设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e34d793294081031.png) | **服务器配置** — NAT 路由、客户端流量转发、DNS 设置 | | ![ IP 定位 ](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b17a3ccc0e081032.png) | **IP 伪装** — 显示俄勒冈区域(缅因州法尔茅斯)的 VPN 出口点 | ## 📁 仓库结构 ``` aws-cloud-vpn-infrastructure/ ├── README.md # This file ├── LICENSE # MIT License ├── assets/ # Screenshots & diagrams │ ├── 01-openvpn-admin-login.png │ ├── 02-vpn-traffic-logs.png │ ├── ... │ └── 18-aws-inspector.png ├── configs/ │ ├── iam-admin-policy.json # OpenVPN Admin IAM policy │ ├── iam-maintenance-policy.json # OpenVPN Maintenance IAM policy │ └── security-group-rules.json # EC2 security group configuration └── docs/ ├── SECURITY_ENHANCEMENTS.md # Detailed security hardening guide ├── SUPPORT_PLAN.md # 3-month maintenance schedule └── INCIDENT_RESPONSE.md # Full incident response playbook ``` ## ✍️ 作者 **Prem Madishetty** 网络安全专业人员 · AI 安全研究员 · SOC 分析员 [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/madishettyprem/) [![GitHub](https://img.shields.io/badge/GitHub-Follow-181717?style=flat-square&logo=github)](https://github.com/premmadishetty) [![个人主页](https://img.shields.io/badge/Portfolio-Visit-4CAF50?style=flat-square&logo=vercel)](https://the-matrix-awakens.vercel.app/) [![电子邮件](https://img.shields.io/badge/Email-Contact-EA4335?style=flat-square&logo=gmail)](mailto:prem131298@gmail.com)
*作为 MIS690 — 亚利桑那州立大学网络安全管理课程的一部分而构建* **如果觉得本项目有用,请给它一个 ⭐!**
标签:AWS, CloudWatch, DPI, EC2, IaC, IAM, JSONLines, OpenVPN, S3, Streamlit, VPN, 企业安全, 加密存储, 最小权限, 漏洞探索, 网络安全, 网络资产管理, 访问控制, 隐私保护, 零信任