今天,我们将了解 NSX Edge 为我们提供的 VPN 配置选项。
通常,我们可以将 VPN 技术分为两种主要类型:
- 站点到站点 VPN。 IPSec 最常见的用途是创建安全隧道,例如,在总部网络与远程站点或云中的网络之间。
- 远程访问 VPN。 用于使用 VPN 客户端软件将个人用户连接到公司专用网络。
NSX Edge 允许我们使用这两个选项。
我们将使用带有两个 NSX Edge 的测试台进行配置,这是一个安装了守护进程的 Linux 服务器
IPsec的
- 在 vCloud Director 界面中,转到“管理”部分并选择 vDC。 在 Edge Gateways 选项卡上,选择我们需要的 Edge,右键单击并选择 Edge Gateway Services。
- 在 NSX Edge 界面中,转至 VPN-IPsec VPN 选项卡,然后转至 IPsec VPN 站点部分并单击 + 以添加新站点。
- 填写必填字段:
- 启用 – 激活远程站点。
- PFS – 确保每个新的加密密钥不与任何以前的密钥相关联。
- 本地 ID 和本地端点t 是 NSX Edge 的外部地址。
- 本地子网s - 将使用 IPsec VPN 的本地网络。
- 对等 ID 和对等端点 – 远程站点的地址。
- 对等子网 – 将在远程端使用 IPsec VPN 的网络。
- 加密算法 – 隧道加密算法。
- 认证 - 我们将如何验证对等方。 您可以使用预共享密钥或证书。
- 预共享密钥 - 指定将用于身份验证的密钥,并且必须在双方都匹配。
- 迪菲赫尔曼集团 – 密钥交换算法。
填写必填字段后,单击保留。
- 完成。
- 添加站点后,转到“激活状态”选项卡并激活 IPsec 服务。
- 应用设置后,转到 Statistics -> IPsec VPN 选项卡并检查隧道的状态。 我们看到隧道已经上升。
- 从 Edge 网关控制台检查隧道状态:
- show service ipsec - 检查服务的状态。
- show service ipsec site - 有关站点状态和协商参数的信息。
- show service ipsec sa - 检查安全关联 (SA) 的状态。
- 检查与远程站点的连接:
root@racoon:~# ifconfig eth0:1 | grep inet inet 10.255.255.1 netmask 255.255.255.0 broadcast 0.0.0.0 root@racoon:~# ping -c1 -I 10.255.255.1 192.168.0.10 PING 192.168.0.10 (192.168.0.10) from 10.255.255.1 : 56(84) bytes of data. 64 bytes from 192.168.0.10: icmp_seq=1 ttl=63 time=59.9 ms --- 192.168.0.10 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 59.941/59.941/59.941/0.000 ms
用于从远程 Linux 服务器进行诊断的配置文件和其他命令:
root@racoon:~# cat /etc/racoon/racoon.conf log debug; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; listen { isakmp 80.211.43.73 [500]; strict_address; } remote 185.148.83.16 { exchange_mode main,aggressive; proposal { encryption_algorithm aes256; hash_algorithm sha1; authentication_method pre_shared_key; dh_group modp1536; } generate_policy on; } sainfo address 10.255.255.0/24 any address 192.168.0.0/24 any { encryption_algorithm aes256; authentication_algorithm hmac_sha1; compression_algorithm deflate; } === root@racoon:~# cat /etc/racoon/psk.txt 185.148.83.16 testkey === root@racoon:~# cat /etc/ipsec-tools.conf #!/usr/sbin/setkey -f flush; spdflush; spdadd 192.168.0.0/24 10.255.255.0/24 any -P in ipsec esp/tunnel/185.148.83.16-80.211.43.73/require; spdadd 10.255.255.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/80.211.43.73-185.148.83.16/require; === root@racoon:~# racoonctl show-sa isakmp Destination Cookies Created 185.148.83.16.500 2088977aceb1b512:a4c470cb8f9d57e9 2019-05-22 13:46:13 === root@racoon:~# racoonctl show-sa esp 80.211.43.73 185.148.83.16 esp mode=tunnel spi=1646662778(0x6226147a) reqid=0(0x00000000) E: aes-cbc 00064df4 454d14bc 9444b428 00e2296e c7bb1e03 06937597 1e522ce0 641e704d A: hmac-sha1 aa9e7cd7 51653621 67b3b2e9 64818de5 df848792 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=1 pid=7739 refcnt=0 185.148.83.16 80.211.43.73 esp mode=tunnel spi=88535449(0x0546f199) reqid=0(0x00000000) E: aes-cbc c812505a 9c30515e 9edc8c4a b3393125 ade4c320 9bde04f0 94e7ba9d 28e61044 A: hmac-sha1 cd9d6f6e 06dbcd6d da4d14f8 6d1a6239 38589878 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=0 pid=7739 refcnt=0
- 一切就绪,站点到站点 IPsec VPN 已启动并运行。
在此示例中,我们使用 PSK 进行对等身份验证,但也可以使用证书身份验证。 为此,请转到“全局配置”选项卡,启用证书身份验证并选择证书本身。
此外,在站点设置中,您需要更改身份验证方法。
我注意到 IPsec 隧道的数量取决于部署的边缘网关的大小(在我们的第一篇文章 ).
SSL VPN
SSL VPN-Plus 是远程访问 VPN 选项之一。 它允许单个远程用户安全地连接到 NSX Edge 网关后面的专用网络。 如果使用 SSL VPN-plus,则在客户端(Windows、Linux、Mac)和 NSX Edge 之间建立加密隧道。
- 让我们开始设置吧。 在 Edge Gateway 服务控制面板中,转到 SSL VPN-Plus 选项卡,然后转到服务器设置。 我们选择服务器侦听传入连接的地址和端口,启用日志记录并选择必要的加密算法。
您还可以在此处更改服务器将使用的证书。 - 一切就绪后,打开服务器,不要忘记保存设置。
- 接下来,我们需要设置一个地址池,我们将在连接时将其发布给客户端。 此网络独立于 NSX 环境中的任何现有子网,不需要在物理网络上的其他设备上进行配置,指向它的路由除外。
转到 IP 池选项卡并单击 +。
- 选择地址、子网掩码和网关。 您还可以在此处更改 DNS 和 WINS 服务器的设置。
- 结果池。
- 现在让我们添加连接到 VPN 的用户将有权访问的网络。 转到专用网络选项卡并单击 +。
- 我们填写:
- 网络 - 远程用户可以访问的本地网络。
- 发送流量,它有两个选项:
- 通过隧道 - 通过隧道将流量发送到网络,
— 绕过隧道——直接绕过隧道将流量发送到网络。 - 启用 TCP 优化 - 检查您是否选择了隧道选项。 启用优化后,您可以指定要优化流量的端口号。 该特定网络上其余端口的流量将不会被优化。 如果未指定端口号,则会优化所有端口的流量。 阅读有关此功能的更多信息
这里 .
- 接下来,转到“身份验证”选项卡并单击“+”。 对于身份验证,我们将使用 NSX Edge 本身上的本地服务器。
- 在这里我们可以选择生成新密码的策略并配置阻止用户帐户的选项(例如,如果密码输入错误的重试次数)。
- 由于我们使用的是本地身份验证,因此我们需要创建用户。
- 除了名称和密码等基本内容外,您还可以在此处禁止用户更改密码,或者相反,强制他在下次登录时更改密码。
- 添加所有必要的用户后,转到“安装包”选项卡,单击“+”并自行创建安装程序,远程员工将下载安装程序进行安装。
- 按 +。 选择客户端将连接到的服务器的地址和端口,以及要为其生成安装包的平台。
在此窗口下方,您可以指定 Windows 的客户端设置。 选择:- 登录时启动客户端 – VPN 客户端将添加到远程计算机上的启动;
- 创建桌面图标 - 将在桌面上创建一个 VPN 客户端图标;
- 服务器安全证书验证 - 将在连接时验证服务器证书。
服务器设置完成。
- 现在让我们将在上一步中创建的安装包下载到远程 PC。 设置服务器时,我们指定了它的外部地址 (185.148.83.16) 和端口 (445)。 我们需要在网络浏览器中访问这个地址。 就我而言是
185.148.83.16 :445。在授权窗口中,您必须输入我们之前创建的用户凭据。
- 授权后,我们会看到创建好的安装包列表可供下载。 我们只创建了一个 - 我们将下载它。
- 我们单击链接,开始下载客户端。
- 解压缩下载的存档并运行安装程序。
- 安装完成后,启动客户端,在授权窗口中,点击登录。
- 在证书验证窗口中,选择是。
- 我们输入先前创建的用户的凭据,并看到连接已成功完成。
- 我们检查本地计算机上 VPN 客户端的统计信息。
- 在 Windows 命令行 (ipconfig / all) 中,我们看到出现了一个额外的虚拟适配器,并且可以连接到远程网络,一切正常:
- 最后,从 Edge Gateway 控制台进行检查。
二级VPN
当您需要在地理上组合多个时,将需要 L2VPN
分布式网络到一个广播域。
这可能很有用,例如,在迁移虚拟机时:当虚拟机移动到另一个地理区域时,该机器将保留其 IP 地址设置,并且不会失去与位于同一 L2 域中的其他机器的连接。
在我们的测试环境中,我们将两个站点相互连接,我们将它们分别称为 A 和 B。我们有两个 NSX 和两个连接到不同 Edge 的相同创建的路由网络。 机器 A 的地址为 10.10.10.250/24,机器 B 的地址为 10.10.10.2/24。
- 在 vCloud Director 中,转到 Administration 选项卡,转到我们需要的 VDC,转到 Org VDC Networks 选项卡并添加两个新网络。
- 选择路由网络类型并将此网络绑定到我们的 NSX。 我们将复选框创建为子接口。
- 结果,我们应该得到两个网络。 在我们的示例中,它们被称为网络 a 和网络 b,具有相同的网关设置和相同的掩码。
- 现在让我们转到第一个 NSX 的设置。 这将是网络 A 连接到的 NSX。它将充当服务器。
我们返回到 NSx Edge 界面/转到 VPN 选项卡 -> L2VPN。 我们打开 L2VPN,选择服务器操作模式,在服务器全局设置中,我们指定隧道端口将侦听的外部 NSX IP 地址。 默认情况下,套接字将在端口 443 上打开,但这可以更改。 不要忘记为未来的隧道选择加密设置。
- 转到“服务器站点”选项卡并添加一个对等点。
- 我们打开对等点,设置名称、描述,如有必要,设置用户名和密码。 我们稍后在设置客户站点时将需要这些数据。
在 Egress Optimization Gateway Address 中我们设置网关地址。 这是必要的,这样 IP 地址就不会发生冲突,因为我们网络的网关具有相同的地址。 然后单击“选择子接口”按钮。
- 在这里我们选择所需的子接口。 我们保存设置。
- 我们看到新创建的客户端站点已经出现在设置中。
- 现在让我们继续从客户端配置 NSX。
我们转到 NSX B 侧,转到 VPN -> L2VPN,启用 L2VPN,将 L2VPN 模式设置为客户端模式。 在 Client Global 选项卡上,设置 NSX A 的地址和端口,我们之前在服务器端指定为 Listening IP 和 Port。 还需要设置相同的加密设置,以便它们在提升隧道时保持一致。
我们向下滚动,选择将通过其构建 L2VPN 隧道的子接口。
在 Egress Optimization Gateway Address 中我们设置网关地址。 设置用户 ID 和密码。 我们选择子界面,不要忘记保存设置。 - 其实,仅此而已。 除了一些细微差别外,客户端和服务器端的设置几乎相同。
- 现在我们可以通过在任何 NSX 上转到 Statistics -> L2VPN 来查看我们的隧道是否正常工作。
- 如果我们现在转到任何 Edge 网关的控制台,我们将在 arp 表中的每个网关上看到两个 VM 的地址。
这就是 NSX Edge 上的 VPN。 询问是否有不清楚的地方。 它也是有关使用 NSX Edge 的系列文章的最后一部分。 我们希望他们有所帮助🙂
来源: habr.com