我目前正在探索在 Azure 中运行客户端 VPN 服务器的选项。我已经检查了点到站点 VPN 功能,它似乎更像是管理员拨入的一种方法,而不是成熟的客户端 VPN 解决方案。
其余选项之一是在 Azure VM 中运行客户端 VPN 服务器。许多客户端 VPN 选项以一种或另一种方式使用 IPsec,它使用 TCP/UDP 以外的 IP 协议进行操作 (ESP/AH)。据我所知,Azure 不允许 TCP/UDP 以外的流量流向您的虚拟机。基于端点的 ACL 只允许您选择 TCP 或 UDP。我一直在调查网络安全组 (NSG),希望他们能提供解决方案,但他们也只提供“TCP”、“UDP”或“*”作为 ACL 中的协议选项。这让我相信在 Azure 中运行 IPsec 服务器是不可能的。这是正确的,还是有我没有遇到的可用选项?显然有些选项只需要 TCP/UDP(想到 Microsoft SSTP),
作为一个附带问题,在为 Azure 中托管的资源提供客户端 VPN 时,人们还选择了哪些其他解决方案?
您是对的,Azure 虚拟机只允许 TCP 和 UDP 连接;它们也受到严格限制,例如“您只能打开单个端口而不是整个端口范围”,这实际上不允许使用动态协议。
您可以通过使用实例级公共 IP来解决后一个限制,它允许所有端口上的所有流量到 VM(但请务必打开防火墙!);但是,这仍然只允许 TCP 和 UDP 流量。
客户端 VPN 连接唯一受支持的选项(目前)是使用 Azure 的内置客户端 VPN 服务,顺便说一句,只要您可以获得每个客户端的客户端证书,它就可以正常工作。
此外,正如您所说,另一种选择可能是为您的 VPN 服务器使用 HTTPS 隧道而不是 IPSec;HTTPS VPN(包括 Windows 的 SSTP)在 TCP 端口 443 上运行,因此它们实际上可以在 Azure VM 上运行;然而,如果你想在 Azure VM 上运行 VPN 服务器,你可能会遇到各种网络问题,因为当你尝试做一些没有明确支持的事情时,Azure VM 确实不能很好地发挥作用,尤其是在涉及网络的情况下。