Windows 客户端无法连接到 StrongSwan:“EAP-Identity 请求已配置,但不受支持”

Windows 客户端无法连接到 StrongSwan:“EAP-Identity 请求已配置,但不受支持”

我已经关注教程介绍了如何设置 StrongSwan VPN 服务器,但我使用的是 Debian 9,并且使用了 Let's Encrypt 提供的证书,而不是建立 CA。但是,我仍然无法连接到 VPN 服务器。当我尝试使用内置的 Windows 10 VPN 客户端时,它显示错误

由于远程服务器没有响应,无法建立计算机之间的网络连接。这可能是因为您的计算机和远程服务器之间的某个网络设备(例如防火墙、NAT、路由器等)未配置为允许 VPN 连接。请联系您的管理员或服务提供商,以确定哪些设备可能导致了此问题。

我尝试将我的计算机直接连接到服务器,中间没有任何设备,可以成功 ping 通,但仍然无法连接到 vpn。此外,ufw设置为允许所需的端口 500 和 4500,并nmap -sU -p 500 [VPN server IP]确认端口对 UDP 数据包开放。

将日志记录级别设置为最高,除了几行内容外,我没有发现任何错误或警告

8 月 13 日 17:28:16 vpn ipsec[2733]: 14[IKE] EAP-Identity 请求已配置,但不受支持 8 月 13 日 17:28:16 vpn ipsec[2733]: 14[IKE] 加载 EAP_MSCHAPV2 方法失败

我搞不清楚还有什么问题,所以我猜想这一定与这些线路有关。我该怎么做才能解决这个问题?

答案1

该插件提供 EAP-Identity 支持eap-identity;对于 EAP-MSCHAPv2,您需要该eap-mschapv2插件。

在 Debian 中它们都由软件包提供libcharon-extra-plugins

$ apt-file search eap-identity
libcharon-extra-plugins: /usr/lib/ipsec/plugins/libstrongswan-eap-identity.so

答案2

显然,Debian 软件包不包含 Windows 10 客户端所需的插件。我不得不卸载该软件包,然后自己下载并编译 StrongSwan。卸载软件包时遗留了一些文件。我不得不删除/usr/lib/ipsec/并重新编译,因为新安装在访问旧安装中的文件时发生分段错误。但是,遗留的其他文件(特别是在 /etc 中)似乎可以正常工作,或者至少不会引起任何问题。

编译 StrongSwan 时,我使用了命令./configure --prefix=/usr --sysconfdir=/etc --enable-eap-identity --enable-eap-mschapv2 --enable-md4

此外,根据Windows 默认尝试使用 1024 位 Diffie-Hellman 组,您可以让 StrongSwan 提供 1024 位 DH 组,也可以在 Windows 上设置注册表项以使其接受 2048 DH 组。我找不到前者的文档,所以我选择了后者。

最后,Let's Encrypt 证书确实起作用了。要使用它,请将活动的 cert.pem 放入 中/etc/ipsec.d/certs/,并将活动的 chain.pem 放入 中/etc/ipsec.d/cacerts/

答案3

8 月 13 日 17:28:16 vpn ipsec[2733]: 14[IKE] EAP-Identity 请求已配置,但不受支持 8 月 13 日 17:28:16 vpn ipsec[2733]: 14[IKE] 加载 EAP_MSCHAPV2 方法失败

第一行是由于缺少eap-identity插件,答案如下重力。第二行是由于缺少“eap-mschapv2”插件。此插件需要gcrypt插件才能工作。后者可以在 中找到libstrongswan-extra-plugins

因此你需要:

apt install libcharon-extra-plugins libstrongswan-extra-plugins

相关内容