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

文章目录

    • 一、实验背景和需求
    • 二、实验架构图
    • 三、实验操作步骤
      • [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 连接,不仅可以实现跨网络的无缝数据传输,还能为企业提供更灵活的资源配置和访问权限管理。

实验需求

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

四、参考链接

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

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

相关推荐
Loving_enjoy8 小时前
云计算在医疗行业的应用
云计算
Rossy Yan18 小时前
腾讯云智能结构化 OCR:驱动多行业数字化转型的核心引擎
c++·云计算·ocr·全文检索·腾讯云·文字识别·文字提取
bluetata1 天前
亚马逊云科技 re:Invent 2024 Amazon Bedrock 推出新功能,加速AI落地
人工智能·科技·云计算·aws
拾回程序猿的圈圈∞1 天前
安装并配置Ubuntu22.04桌面
ubuntu·云计算
weixin_307779131 天前
AWS EMR基础知识
大数据·spark·云计算
HaoHao_0101 天前
智能商业分析 Quick BI
服务器·阿里云·信息可视化·云计算·云服务器
合方圆~小文2 天前
高清监控视频的管理与展示:从摄像头到平台的联接过程
linux·网络·人工智能·云计算·智能家居
Linux运维老纪2 天前
Nginx常用配置之详解(Detailed Explanation of Common Nginx Configurations)
计算机网络·nginx·微服务·云原生·架构·云计算·运维开发
w1wi2 天前
【AI部署】腾讯云每月1w小时免费GPU获取
云计算·腾讯云
serve the people2 天前
腾讯云日志服务根据网段过滤非法数据
sql·云计算·腾讯云