我正在尝试使用带有 IKEv1 的 IPsec/L2TP 和 asa 5505 设置 Windows 内置 VPN。使用 psk 进行远程访问 VPN。
我在第 1 阶段收到不匹配错误,我无法弄清楚 Windows 10 正在使用什么 IPsec 提案,因此我可以在 Asa5505 端进行匹配!?即 Auth 方法、哈希算法、加密算法、DH 组和生存期。
那么,Windows 10 使用内置 VPN 客户端的什么 IPsec 方案,是否可以更改?
有没有什么技巧和窍门?
问候。
答案1
这个问题有点老了,但我决定分享我在 Windows 10 中使用 PSK 的 L2TP/IPSec 的经验,有人可能会觉得它有用。
前几天,我在 Windows 10 PC 和 Mikrotik 路由器之间试验了 L2TP/IPsec 连接。通过分析 Mikrotik 的调试级别日志,我发现 Windows 10(版本 1511)在密钥交换期间提供了以下身份验证和加密设置(按此优先级顺序):
- SHA1 + AES-CBC-256 + ECP384
- SHA1 + AES-CBC-128 + ECP256
- SHA1 + AES-CBC-256 + MODP2048
- SHA1 + 3DES-CBC + MODP2048
- SHA1 + 3DES-CBC + MODP1024
对于阶段 2 协商,Windows 10 仅具有以下建议:
- SHA1 + AES-CBC-128
似乎所有这些设置都是系统中的硬编码,因为 L2TP/IPsec 客户端忽略了我在高级 Windows 防火墙 MMC 中的“IPSec 设置”中所做的任何更改。
我甚至尝试了这个注册表破解,但我没能强制第 2 阶段使用 AES256:https://superuser.com/questions/1296210/force-windows-ipsec-l2tp-vpn-to-use-aes-in-ipsec-main-mode
我知道 1511 是 Win10 的旧版本,但我的办公笔记本电脑上可用。较新的版本可能会有一些改进(例如更高效的 AES-GCM 加密),但对我来说,SHA1 和 256 位 AES-CBC 与 Diffie-Hellman 椭圆曲线 P-384 的组合目前提供了相当强大和快速的安全性。对于流量,SHA1+AES128 不是最安全的选择,但它不需要太多资源。
更新:我查看了 Win10 版本 1803。第 1 阶段的提案相同,但对于第 2 阶段,Windows 现在也提出了 SHA1+AES-CBC-256(除了 SHA1+AES-CBC-128)。CTR 或 GCM 套件仍然不受支持。SHA256 哈希算法均不支持身份验证。
答案2
我还发现了如何编辑这些设置:具有高级安全性的 Windows 防火墙 -->(右侧面板)属性 --> IPsec 设置 --> 自定义 IPsec 默认值 --> 密钥交换(高级)
答案3
您应该能够在 VPN 设置中设置参数(右键单击,网络和共享中的 VPN 连接属性),然后调整 Windows 如何处理 L2TP 的 PSK。我相信它默认使用证书而不是 PSK(因为它不知道这一点)。它会尝试几种不同的 VPN 类型,直到找到一种可行的(或者在 SSL 上花费很长时间……)但您可以明确告诉它使用 L2TP。
查看“安全”选项卡、VPN 类型和高级设置,以设置 Windows 尝试进行身份验证的方式。下面是协议和其他内容。
Microsoft 在此处列出了默认设置http://support.microsoft.com/en-us/kb/325158
答案4
我已经使用 powershell 成功更改了第 1 阶段和第 2 阶段的设置
设置 VpnConnectionIPsecConfiguration -ConnectionName 测试 -EncryptionMethod AES128 -DHGroup ECP256 -IntegrityCheckMethod SHA256 -PfsGroup None –AuthenticationTransformConstants GCMAES128 -CipherTransformConstants GCMAES128