【亚马逊云】使用StrongSWAN 构建 AWS site-to-site VPN

🪪本文作者:孙凤龙


🌞 亚马逊云合作伙伴 VSTECS 技术总监

🏆 两项AWS能力认证 | 两项 CCIE 认证

🏅 RedHat认证 | 阿里云认证

一、实验背景和需求

实验背景

随着数字化转型的深入推进和远程办公需求的不断增加,企业对安全、稳定的网络连接需求日益增强。在混合云架构和跨地域协作成为常态的背景下,确保本地数据中心与云端之间的通信安全尤为重要。通过构建高效的 Site-to-Site VPN 连接,不仅可以实现跨网络的无缝数据传输,还能为企业提供更灵活的资源配置和访问权限管理。

实验需求

  1. 安全通信:在本地和 AWS 云环境之间建立一个安全的加密通道,确保数据在传输过程中不被窃听或篡改。
  2. 高可靠性:提供稳定的连接,支持企业关键业务系统对云端资源的持续访问。
  3. 低成本实现:通过开源解决方案,如 StrongSwan,降低 VPN 部署和运维成本。
  4. 兼容性:支持多种操作系统和网络设备,满足企业多样化的 IT 基础架构需求。

本文将以 StrongSwan 为例,介绍如何在 Ubuntu 系统上搭建与 AWS 环境的 Site-to-Site VPN。StrongSwan 是一款流行的开源 IPSec 实现,拥有高度可定制性和良好的性能,适合不同规模的企业和个人开发者使用。本教程适用于希望快速搭建安全 VPN 环境的读者,旨在提供清晰的配置步骤和实用的操作指南。

二、实验架构图

image-20241231165512961

资源名称备注
VPCVGW-vpc
VGWVGW-Site-to-Site-VPN
CGWCGW-01
VPN Connectionconnection-AWS-to-MyHome关联CGW,VGW及设定Tunnel相关信息

三、实验操作步骤

3.1 创建VPC

image-20241225002608969

image-20241225002630391

3.2 创建CGW(CustomerGateway)

image-20241225002709081

输入如下内容之后,点击”Create customer gateway”。

名称指定值备注
Name tagCGW-MyHome
BGP ANS65000使用默认的BGP ASN,和AWS的ASN 64512不冲突就可以
IP addressxx.xx.xx.xx指定运行Strongswan服务器的IP地址
DeviceStrongswan可选项。为了以后知道在本地运行的是Strongswan

image-20241225002929750

image-20241225003007669

3.3 创建VGW(Virtual Private Gateway)

依次点击 “VPC” -> “Virtual private gateways”之后,点击”Create virtual private gateway”。

image-20241225003052130

输入VGW名称”VGW-Site-to-Site-VPN”后,点击”Create virtual private gateway”。

image-20241225003201013

image-20241225003236108

3.4 VGW关联到VPC

勾选创建的VGW之后,依次点击”Actions” -> “Attach to VPC”。

image-20241225003319999

选择VPC-Default之后,点击”Attach to VPC”。

image-20241225003353778

image-20241225003442934

将VGW关联到VPC之后的结果如下。

image-20241225003524948

3.5 创建 站点到站点 VPN 连接

点击左侧栏的”Site-to-Site VPN connections”后,点击”Create VPN connection”。

image-20241225003636833

输入如下内容之后,点击”Create VPN connection”。

名称指定值备注
Name tagConnection-AWS-to-Local
Target gateway typeVirtual private gateway
Virtual private gateway选择VGW-Site-to-Site-VPN
Customer gatewayExisting
Customer gateway ID选择CGW
Routing optionStatic
Static IP prefixes192.168.64.0/24,172.31.0.0/16传播到VPC路由表的CIDR
Local IPv4 network CIDR192.168.64.0/24本地的CDIR172.18.0.0/20
Remote IPv4 network CIDR172.31.0.0/16Amazon VPC的CIDR10.0.128.0/20

image-20241225004357511

image-20241225004529064

3.6 激活路由传播

选择左侧栏的”Route tables”后,勾选路由表并点击”Actions” -> “Edit route propagation”。勾选”Enable”之后点击”Save”。

image-20241225004706516

image-20241225004812387

image-20241225004905301

3.7 下载配置文件

下载配置文件。选择创建的connection之后,点击”Download configuration”。

image-20241225005132687

选择Strongswan下载配置文件,IKE version推荐选择ikev2。

image-20241225010112386

3.8 安装配置Strongswan

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

image-20241225011335063

如果没有安装libreswan的话,使用yum命令进行安装。

apt install strongswan-starter

image-20241225010947232

3.8.1 激活 IP packet forwarding

在 /etc/sysctl.conf 文件,追加 net.ipv4.ip_forward = 1。

# vi /etc/sysctl.conf
    # Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

执行 sysctl -p 命令。

# sysctl -p
net.ipv4.ip_forward = 1

image-20241225011307652

3.8.2 修改/etc/ipsec.conf文件

根据下载的配置文件修改后的 /etc/ipsec.conf 文件如下。

# 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文件。

180.172.125.99 3.213.233.67 : PSK "g4F6O8FayUjfGCBrialwZT1OFrLwAT0j"
3.8.4 启动Strongswan

使用systemctl命令启动 strongswan服务。

systemctl start strongswan-starter

3.9 查看VPN状态

ipsec status 命令确认IPSec的状态,可以确认到SA(Security Assocations)处于up。

image-20241228000749275

在AWS管理控制页面也可以确认到,1个Tunnel处于Up状态。

image-20241228000839159

从Strongswan服务器 ping 确认,是否能到达AWS EC2服务器。

四、参考链接

什么是 AWS Site-to-Site VPN? - AWS Site-to-Site VPN

https://sys-blog.net/setup-aws-site-to-site-vpn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值