另一个可能很愚蠢的问题:我正在设置 VPN 连接,以便远程访问我家 LAN 上的服务。我为此使用的路由器、防火墙和 VPN 服务器是 Draytek Vigor 2865。我在这里最大的问题是选择 VPN 协议/了解 IPSec。
我已经成功设置了 PPTP VPN,它运行良好。Draytek 设置为服务器,Draytek 上有几个用户帐户,这些帐户具有唯一的用户名和密码,可用于连接到 VPN,我可以根据用户更改各种设置。(例如,我可以为特定的拨入用户分配特定的 IP)。但是,我知道 PPTP 不是最安全的选择。实际上,对于我的需求,具有最大 MPPE 加密和强密码的 PPTP 可能就足够了,但如果有更好的选择,我宁愿使用它。
以下是 draytek 中的拨入选项: Draytek 中的 VPN 选项
显然,我试图避免使用 PPTP。我不想使用 OpenVPN,因为我需要能够使用内置的 Windows VPN 客户端,而且据我所知,我认为 SSL VPN 也不是我想要的。剩下的就是 IPsec 隧道或 L2TP(使用 IPsec)。
我真正不明白的是,IPSec 似乎使用“预共享密钥”进行身份验证,而且我不太清楚它是如何工作的。每个远程用户是否都使用相同的 PSK 登录?在这种情况下,您如何在服务器端区分远程用户?如果除了用户/密码之外还使用 PSK,那就说得通了,但在某些情况下似乎只使用了 PSK...(例如:https://draytek.co.uk/support/guides/kb-teleworker-smartvpn-ipsec)
您会推荐 IPsec 隧道选项吗?还是 L2TP 与 IPsec 结合使用更安全?Windows VPN 客户端支持哪种选项?
抱歉,帖子太长了,如果大家有什么建议,我将非常感激。
答案1
我真正不明白的是,IPSec 似乎使用“预共享密钥”进行身份验证,我不太清楚它是如何工作的。每个远程用户都使用相同的 PSK 登录吗?在这种情况下,您如何在服务器端区分远程用户?
在原始协议 (IKEv1) 中,您确实不能。(尽管严格来说它并不总是使用 PSK - 证书是首选,并且确实允许通过证书的元数据区分用户。)
这个问题可以通过几种不同的方式解决:
Cisco 为其“IPsec VPN”添加了自定义修改,以允许将用户/密码身份验证作为第二步(我认为他们将 PSK 重命名为“组密钥”)。这就是路由器中的“Xauth”选项。
我不确定您会使用什么应用程序从 Windows 连接到 Xauth VPN(Linux 和 Android 上有 strongSwan)。
微软选择在 IPsec 安全隧道内建立另一个 VPN 协议隧道 - IPsec PSK 用于保护 L2TP,然后允许执行与 PP(T)P 中相同的 PAP/MSCHAP/EAP 身份验证。这就是路由器中的“带 IPsec 策略的 L2TP”。
Windows 内置有此功能,但由于是两种不同的协议捆绑在一起,Linux 的设置会变得复杂。
最后,较新的协议版本 IKEv2 有内置解决方案。首先,客户端可以发送“发起者 ID (IDi)”,其作用几乎相当于用户名;不同的发起者可以拥有不同的 PSK(甚至完全不同的配置)。
其次,IKEv2 本身支持 EAP 身份验证,包括 MSCHAPv2,它还将作为 EAP 的一部分传输用户名。(这实际上是 Xauth 扩展的正式版本。)
Windows 10+ 具有对 IKEv2 的内置客户端支持;对于 Android,我会使用 strongSwan 应用程序。
(现有 IKEv1 缺少的另一项功能是客户端 IP 的自动分配,上述所有扩展也都添加了此功能。)
您会推荐 IPsec 隧道选项吗?还是 L2TP 与 IPsec 结合使用更安全?Windows VPN 客户端支持哪种选项?
IKEv2 是现代的选择,在支持的情况下——如果我需要不同的用户帐户,我会选择“IKEv2 EAP”,因为这是 Windows 支持的。
基于 IKEv1 构建的任何东西都有点过时了,我思考IKEv1 中的 PSK 直接用于隧道加密,因此必须强度要高——不是密码,而是随机密钥或密码短语。不过,如果设置得当,它比 MPPE 更安全。
(我不会担心使用 MSCHAPv2 - 在所有上述模式中,用户身份验证都是在已加密的隧道内完成的,不像 PPTP 那样以明文方式完成,所以它可能只是一个普通密码,而且仍然是安全的。)
据我所知,我也不认为 SSL VPN 是我想要的
这取决于具体情况。“SSL VPN”不是一种单一的协议,它是一种非常广泛的描述,指许多不同的产品,这些产品以 SSL(TLS、DTLS)为基础,但通常以不同的方式使用。例如,Cisco AnyConnect 就是一个“SSL VPN”产品,但它除了自身之外不与任何其他“SSL VPN”兼容。
事实上,微软本身就有一个基于 TLS 的 VPN 协议 - SSTP - 它由 Windows 原生支持,总体来说相当安全;与常规 TLS 连接一样安全。因此,如果您有这个选项,您当然可以使用它代替 IKEv2。(尽管它有一个小缺点,即它基于 TCP;TCP-inside-TCP 并不理想。)