simpread-AWS 中国区使用 EC2+Openwan 作为路由器部署 Site-to-site VPN 服务手册(简版)

sam 2023年02月03日 456次浏览

1、创建 EC2

创建一台使用 Amazon Linux 2 系统的 EC2,配置 2vCPU 4GB,分配 EIP 可远程登录。

2、开启网络转发

在 EC2 更多操作下拉框下,找到网络,将这台 EC2 的 “目标地址和源地址检查” 选项设置为禁用。

3、配置安全规则组

承担路由器的 EC2 需要配置安全组,开放如下端口:

  • UDP 协议,端口 500
  • UDP 协议,端口 4500
  • 选择Custom Protocol,输入ESP,Source 填写为远端路由器地址

将此安全组应用到 EC2 上。

4、安装软件包

为这个 EC2 操作系统安装包:

yum update -y
yum install openswan -y
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.send_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.eth0.send_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.accept_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.eth0.accept_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.eth0.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.ip_vti0.rp_filter = 0" >> /etc/sysctl.conf
sysctl -p
echo "iptables -t mangle -A FORWARD -o eth0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360" >> /etc/rc.d/rc.local
iptables -t mangle -A FORWARD -o eth0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360
chmod +x /etc/rc.d/rc.local
  • 5、创建 Libreswan 配置和认证文件。

    将以下内容保存为/etc/ipsec.d/cisco.conf文件。

    conn cisco
      authby=secret
      auto=start
      leftid=LOCALEIP
      left=%defaultroute
      leftsubnet=10.1.0.0/16
      leftnexthop=%defaultroute
      right=REMOTEEIP
      rightsubnet=192.168.0.0/16
      keyingtries=%forever
      ike=aes128-sha1;modp1024
      ikelifetime=86400s
      phase2alg=aes128-sha1
      salifetime=3600s
      pfs=no
    

    替换以上文档中:

    • LOCALEIP为 AWS 云上 EC2 路由器的 EIP
    • leftsubnet参数为 AWS 云上 VPC 网络的 CIDR
    • REMOTEEIP为远端路由器公网 IP
    • rightsubnet参数为云下 IDC 或其他云上 VPC 的 CIDR。

    修改后保存退出。

    将以下内容保存为/etc/ipsec.d/cisco.secrets文件。

    LOCALEIP REMOTEEIP: PSK "aws123@@@888"
    

    替换以上文档中:

    • LOCALEIP为 AWS 云上 EC2 路由器的 EIP
    • leftsubnet参数为 AWS 云上 VPC 网络的 CIDR
    • 双引号内的是认证的密钥

    替换后注意保持冒号、空格、引号的准确性。

    三、启动服务

1、 启动服务

运行如下命令

systemctl enable ipsec
ipsec start
ipsec verify

所有返回信息的状态都是绿色的 OK 表示配置成功。

2、修改 AWS 一侧 VPC 的路由表

配置步骤如下:

  • 进入 AWS 控制台的 VPC 模块
  • 从左侧菜单找到路由表,找到要配置的 VPC 所对应的路由表,如果有多张路由表,需要分别修改
  • 选中路由表,点击页面下半部分,第二个标签页 Route Table 路由表,点击 Edit Route 编辑路由按钮
  • 现有路由条目不要修改,点击 Add Route 添加路由按钮增加一行新的路由
  • Destation 目标填写为远端 IDC 或者其他云的 VPC 的 CIDR 网段,例如192.168.0.0/16,在 Targe 目标从下拉框中选择 Instance,然后从 Instance 菜单下会自动加载出来刚才配置为路由器的 EC2,选中它,点击保存路由按钮

3、修改 IDC / 其他云上路由表

此过程根据不同产品和服务有所不同,配置的目的是在增加对 AWS 上 VPC 的路由条目。本文不再描述。

4、测试

至此配置完成,分别在 AWS 云上和另一侧网络内可以发起 ping 命令测试。