IBM Cloud Docs
连接到 strongSwan 同级

连接到 strongSwan 同级

您可以使用 IBM Cloud VPN for VPC 通过 VPN 通道将 VPC 安全地连接到内部网络。 本主题提供有关如何配置 strongSwan VPN 网关以连接 VPN for VPC 的指导。

这些指示信息基于 Linux strongSwan U5.3.5/K4.4.0-133-generic。

在继续连接到本地同级之前,请阅读 VPN 网关限制

转到 /etc 目录,创建一个新的自定义隧道配置文件并命名(如 ipsec.abc.conf)。 通过添加以下行,编辑 /etc/ipsec.conf 文件以包含新的 ipsec.abc.conf 文件:

include /etc/ipsec.abc.conf

当 strongSwan VPN 从 VPN for VPC接收连接请求时,strongSwan 使用 IPsec 阶段 1 参数来建立安全连接并认证 VPN for VPC 网关。 然后,如果安全策略允许连接,strongSwan VPN 将使用 IPsec 第 2 阶段参数建立隧道,并应用 IPsec 安全策略。 密钥管理、认证和安全服务均通过 IKE 协议动态协商。

要支持这些功能,必须在 strongSwan VPN 上执行以下一般配置步骤:

  • 定义 strongSwan 验证 VPN for VPC 和建立安全连接所需的第 1 阶段参数。
  • 使用 VPN for VPC 定义 strongSwan 创建 VPN 隧道所需的第 2 阶段参数。

将基于 IBM 策略的 VPN 连接到 strongSwan 同级

使用以下配置:

  1. 在身份验证中选择 IKEv2

  2. 在第 1 阶段提案中启用 DH-group 2

  3. 在第 1 阶段提案中设置 lifetime = 36000

  4. 在第二阶段建议中禁用 PFS。

  5. 在第 2 阶段提案中设置 lifetime = 10800

  6. 在第 2 阶段建议中输入您的对等网络和子网络信息。

    下面的示例定义了内部部署子网 10.160.26.64/26 (其 strongSwan VPN 网关的 IP 地址为 169.45.74.119)和 VPC 子网 192.168.17.0/28 (其 VPN for VPC 网关的 IP 地址为 169.61.181.116)之间的连接。

    vim /etc/ipsec.abc.conf
    conn all
           type=tunnel
           auto=start
           #aggressive=no
           esp=aes256-sha256!
           ike=aes256-sha256-modp2048!
           left=%any
           leftsubnet=10.160.26.64/26
           rightsubnet=192.168.17.0/28
           right=169.61.181.116
           leftauth=psk
           rightauth=psk
           leftid="169.45.74.119"
           keyexchange=ikev2
           rightid="169.61.181.116"
           lifetime=10800s
           ikelifetime=36000s
           dpddelay=30s
           dpdaction=restart
           dpdtimeout=120s
    
  7. /etc/ipsec.secrets 中设置预共享密钥:

    vim ipsec.secrets
    # This file holds shared secrets or RSA private keys for authentication.
    
    169.45.74.119 169.61.181.116 : PSK "******"
    
    
  8. 在配置文件完成运行后,重新启动 strongSwan VPN。

    ipsec restart
    
    

将基于路由的 IBM VPN 连接到 strongSwan 对等点

下面的配置示例显示了如何在 strongSwan 和 VPN for VPC 之间设置两个基于路由的隧道。

  1. 要启用 IP 转发,请输入以下命令:

    sudo sysctl -w net.ipv4.conf.all.forwarding=1
    
  2. 创建一个名为 /etc/strongswan.d/charon-no-route-install.conf 的文件,并添加以下内容:

    charon {
          install_routes = no
    }
    
  3. 要配置 VPN 连接,请更新 /etc/ipsec.abc.conf 文件。 在下面的示例中,VPN 网关有两个公共 IP(135.90.134.86135.90.134.87)。strongSwan 服务器 IP 是 169.59.212.125。 该配置创建了两个连接。 leftid 是 strongSwan 服务器的公共 IP,而 rightrightid 代表 VPN 网关的公共 IP。

    conn peer_135.90.134.86
      keyexchange=ikev2
      left=%any
      leftid=169.59.212.125
      leftsubnet=0.0.0.0/0
      rightsubnet=0.0.0.0/0
      right=135.90.134.86
      rightid=135.90.134.86
      auto=start
      ike=aes256-aes192-aes128-sha512-sha384-sha256-modp2048s256-modp2048s224-modp1024s160-ecp521-ecp384-ecp256-modp8192-modp6144-modp4096-modp3072-modp2048-x25519!
      ikelifetime=36000s
      esp=aes256gcm16-aes192gcm16-aes128gcm16,aes256-aes192-aes128-sha512-sha384-sha256!
      lifetime=10800s
      type=tunnel
      leftauth=psk
      rightauth=psk
      dpdaction = restart
      dpddelay = 10s
      mark = 1
    conn peer_135.90.134.87
      keyexchange=ikev2
      left=%any
      leftid=169.59.212.125
      leftsubnet=0.0.0.0/0
      rightsubnet=0.0.0.0/0
      right=135.90.134.87
      rightid=135.90.134.87
      auto=start
      ike=aes256-aes192-aes128-sha512-sha384-sha256-modp2048s256-modp2048s224-modp1024s160-ecp521-ecp384-ecp256-modp8192-modp6144-modp4096-modp3072-modp2048-x25519!
      ikelifetime=36000s
      esp=aes256gcm16-aes192gcm16-aes128gcm16,aes256-aes192-aes128-sha512-sha384-sha256!
      lifetime=10800s
      type=tunnel
      leftauth=psk
      rightauth=psk
      dpdaction = restart
      dpddelay = 10s
      mark = 2
    
  4. /etc/ipsec.secrets 文件中设置预共享密钥,并将 ****** 替换为真正的预共享密钥值:

    169.59.212.125 135.90.134.86 : PSK "******"
    169.59.212.125 135.90.134.86 : PSK "******"
    
  5. 在服务器上创建虚拟接口,并将 VTI 接口状态设置为 up。 将 mark_num 替换为 mark 的值(如步骤 3 所定义)。 local_ip 是 strongSwan 服务器的 私有 IPremote_ip 是 VPN 网关公共 IP 地址的 公共 IP

    # sample: sudo ip tunnel add vti<mark_num> local <local_ip> remote <remote_ip> mode vti key <mark_num>
    sudo ip tunnel add vti1 local 10.240.2.11 remote 135.90.134.86 mode vti key 1
    sudo ip tunnel add vti1 local 10.240.2.11 remote 135.90.134.87 mode vti key 2
    sudo ip link set vti1 up
    sudo ip link set vti2 up
    
  6. 在 strongSwan 服务器上添加路由。 在本例中,10.240.0.0/24 是要连接的 VPN 网关的子网,VTI 名称是步骤 5 中的 VTI 名称。

    sudo ip route add 10.240.0.0/24 proto static nexthop dev vti1 nexthop dev vti2
    
  7. 在配置文件完成运行后,重新启动 strongSwan VPN。

    ipsec restart