文章目录
-
- 一、实验背景和需求
- 二、实验架构图
- 三、实验操作步骤
-
- [3.1 创建VPC](#3.1 创建VPC)
- [3.2 创建CGW(CustomerGateway)](#3.2 创建CGW(CustomerGateway))
- [3.3 创建VGW(Virtual Private Gateway)](#3.3 创建VGW(Virtual Private Gateway))
- [3.4 VGW关联到VPC](#3.4 VGW关联到VPC)
- [3.5 创建 站点到站点 VPN 连接](#3.5 创建 站点到站点 VPN 连接)
- [3.6 激活路由传播](#3.6 激活路由传播)
- [3.7 下载配置文件](#3.7 下载配置文件)
- [3.8 安装配置Strongswan](#3.8 安装配置Strongswan)
-
- [3.8.1 激活 IP packet forwarding](#3.8.1 激活 IP packet forwarding)
- [3.8.2 修改/etc/ipsec.conf文件](#3.8.2 修改/etc/ipsec.conf文件)
- [3.8.3 创建pre-shared key文件](#3.8.3 创建pre-shared key文件)
- [3.8.4 启动Strongswan](#3.8.4 启动Strongswan)
- [3.9 查看VPN状态](#3.9 查看VPN状态)
- 四、参考链接
一、实验背景和需求
实验背景
随着数字化转型的深入推进和远程办公需求的不断增加,企业对安全、稳定的网络连接需求日益增强。在混合云架构和跨地域协作成为常态的背景下,确保本地数据中心与云端之间的通信安全尤为重要。通过构建高效的 Site-to-Site VPN 连接,不仅可以实现跨网络的无缝数据传输,还能为企业提供更灵活的资源配置和访问权限管理。
实验需求
- 安全通信:在本地和 AWS 云环境之间建立一个安全的加密通道,确保数据在传输过程中不被窃听或篡改。
- 高可靠性:提供稳定的连接,支持企业关键业务系统对云端资源的持续访问。
- 低成本实现:通过开源解决方案,如 StrongSwan,降低 VPN 部署和运维成本。
- 兼容性:支持多种操作系统和网络设备,满足企业多样化的 IT 基础架构需求。
本文将以 StrongSwan 为例,介绍如何在 Ubuntu 系统上搭建与 AWS 环境的 Site-to-Site VPN。StrongSwan 是一款流行的开源 IPSec 实现,拥有高度可定制性和良好的性能,适合不同规模的企业和个人开发者使用。本教程适用于希望快速搭建安全 VPN 环境的读者,旨在提供清晰的配置步骤和实用的操作指南。
二、实验架构图
资源 | 名称 | 备注 |
---|---|---|
VPC | VGW-vpc | |
VGW | VGW-Site-to-Site-VPN | |
CGW | CGW-01 | |
VPN Connection | connection-AWS-to-MyHome | 关联CGW,VGW及设定Tunnel相关信息 |
三、实验操作步骤
3.1 创建VPC
3.2 创建CGW(CustomerGateway)
输入如下内容之后,点击"Create customer gateway"。
名称 | 指定值 | 备注 |
---|---|---|
Name tag | CGW-MyHome | |
BGP ANS | 65000 | 使用默认的BGP ASN,和AWS的ASN 64512不冲突就可以 |
IP address | xx.xx.xx.xx | 指定运行Strongswan服务器的IP地址 |
Device | Strongswan | 可选项。为了以后知道在本地运行的是Strongswan |
3.3 创建VGW(Virtual Private Gateway)
依次点击 "VPC" -> "Virtual private gateways"之后,点击"Create virtual private gateway"。
输入VGW名称"VGW-Site-to-Site-VPN"后,点击"Create virtual private gateway"。
3.4 VGW关联到VPC
勾选创建的VGW之后,依次点击"Actions" -> "Attach to VPC"。
选择VPC-Default之后,点击"Attach to VPC"。
将VGW关联到VPC之后的结果如下。
3.5 创建 站点到站点 VPN 连接
点击左侧栏的"Site-to-Site VPN connections"后,点击"Create VPN connection"。
输入如下内容之后,点击"Create VPN connection"。
名称 | 指定值 | 备注 |
---|---|---|
Name tag | Connection-AWS-to-Local | |
Target gateway type | Virtual private gateway | |
Virtual private gateway | 选择VGW-Site-to-Site-VPN | |
Customer gateway | Existing | |
Customer gateway ID | 选择CGW | |
Routing option | Static | |
Static IP prefixes | 192.168.64.0/24,172.31.0.0/16 | 传播到VPC路由表的CIDR |
Local IPv4 network CIDR | 192.168.64.0/24 | 本地的CDIR172.18.0.0/20 |
Remote IPv4 network CIDR | 172.31.0.0/16 | Amazon VPC的CIDR10.0.128.0/20 |
3.6 激活路由传播
选择左侧栏的"Route tables"后,勾选路由表并点击"Actions" -> "Edit route propagation"。勾选"Enable"之后点击"Save"。
3.7 下载配置文件
下载配置文件。选择创建的connection之后,点击"Download configuration"。
选择Strongswan下载配置文件,IKE version推荐选择ikev2。
3.8 安装配置Strongswan
bash
root@xyb-virtual-machine:~# hostnamectl
Static hostname: xyb-virtual-machine
Icon name: computer-vm
Chassis: vm
Machine ID: 8ddbff49a51e430c99694038d7acf846
Boot ID: d2089f112e074029a68337118e4874d7
Virtualization: vmware
Operating System: Ubuntu 16.04.7 LTS
Kernel: Linux 4.15.0-112-generic
Architecture: x86-64
如果没有安装libreswan的话,使用yum命令进行安装。
bash
apt install strongswan-starter
3.8.1 激活 IP packet forwarding
在 /etc/sysctl.conf 文件,追加 net.ipv4.ip_forward = 1。
bash
# vi /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
执行 sysctl -p 命令。
bash
# sysctl -p
net.ipv4.ip_forward = 1
3.8.2 修改/etc/ipsec.conf文件
根据下载的配置文件修改后的 /etc/ipsec.conf 文件如下。
bash
# vi /etc/ipsec.conf
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn Tunnel1
type=tunnel
auto=start
keyexchange=ikev2
authby=psk
leftid=221.201.3.129
leftsubnet= 192.168.3.0/24
right=54.65.170.122
rightsubnet= 172.31.0.0/16
aggressive=no
ikelifetime=28800s
lifetime=3600s
margintime=270s
rekey=yes
rekeyfuzz=100%
fragmentation=yes
replay_window=1024
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
ike=aes256gcm16-sha512-modp4096
esp=aes256gcm16-sha512-modp8192
keyingtries=%forever
3.8.3 创建pre-shared key文件
根据下载的配置文件的内容,设定pre-shared key文件。
bash
180.172.125.99 3.213.233.67 : PSK "g4F6O8FayUjfGCBrialwZT1OFrLwAT0j"
3.8.4 启动Strongswan
使用systemctl命令启动 strongswan服务。
bash
systemctl start strongswan-starter
3.9 查看VPN状态
ipsec status 命令确认IPSec的状态,可以确认到SA(Security Assocations)处于up。
在AWS管理控制页面也可以确认到,1个Tunnel处于Up状态。
从Strongswan服务器 ping 确认,是否能到达AWS EC2服务器。