另一个可能愚蠢的问题是:我正在设置 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-远程工作人员-smartvpn-ipsec )
您会推荐 IPsec 隧道选项吗?或者采用 IPsec 的 L2TP 是否良好且安全?Windows VPN 客户端支持哪个选项?
很抱歉这篇文章很长,如有任何建议,我们将不胜感激。
在原始协议(IKEv1)中,确实不能。(尽管严格来说它并不总是使用 PSK – 证书是首选,并且确实允许通过证书的元数据来区分用户。)
这个遗漏可以通过几种不同的方式解决:
思科为其“IPsec VPN”添加了自定义修改,以允许用户/密码身份验证作为第二步(我认为他们将 PSK 重命名为“组密钥”)。这是路由器中的“Xauth”选项。
我不确定您会使用哪些应用程序从 Windows 连接到 Xauth VPN(Linux 和 Android 上有 StrongSwan)。
相反,Microsoft 选择在 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 的自动分配,这也是由上述所有扩展添加的。)
如果支持的话,IKEv2 是现代选择 - 如果我需要不同的用户帐户,我会选择“IKEv2 EAP”,因为这就是 Windows 支持的。
任何基于 IKEv1 构建的东西都有点陈旧,而且我认为IKEv1 中的 PSK 直接有助于隧道加密,因此它必须很强 – 不是密码,而是随机密钥或密码。不过,如果设置正确,它比 MPPE 更安全。
(我不会担心使用 MSCHAPv2 - 在上述所有模式中,用户身份验证是在已经加密的隧道内完成的,这与 PPTP 不同,PPTP 是明文进行的,因此它也可以只是一个常规密码,并且它还是安全的。)
那要看。“SSL VPN”不是一个单一的协议,它是对许多不同产品的非常广泛的描述,这些产品涉及 SSL(TLS、DTLS)作为其基础,但通常采用不同的方式。例如,Cisco AnyConnect 是一种“SSL VPN”产品,但它与除自身之外的任何其他“SSL VPN”不兼容。
事实上,微软本身就有一个基于 TLS 的 VPN 协议——SSTP——它是 Windows 原生支持的,总体上相当安全;也就是说,与常规 TLS 连接一样安全。因此,如果您有此选项,您当然可以使用它来代替 IKEv2。(尽管它有一个小缺点,因为它是基于 TCP 的;TCP-inside-TCP 并不理想。)