Клиент Windows не может подключиться к StrongSwan: "запрос EAP-Identity настроен, но не поддерживается"
Я следовал этому руководству, чтобы настроить VPN-сервер StrongSwan, за исключением того, что я использовал Debian 9 и использовал сертификаты, которые у меня уже были в Let's Encrypt, вместо того, чтобы устанавливать CA. Однако я все еще не могу подключиться к серверу VPN. Когда я пытаюсь использовать встроенный VPN-клиент Windows 10, выдает ошибку,
Не удалось установить сетевое соединение между вашим компьютером, поскольку удаленный сервер не отвечает. Это может быть связано с тем, что одно из сетевых устройств (например, межсетевые экраны, NAT, маршрутизаторы и т. Д.) Между вашим компьютером и удаленным сервером не настроено для разрешения VPN-подключений. Обратитесь к администратору или поставщику услуг, чтобы определить, какие устройства могут вызывать проблему.
Я попытался подключить свой компьютер напрямую к серверу без какого-либо вмешательства устройства, и мог успешно пропинговать его, но все еще не мог подключиться к VPN. Более того, ufw
установлен, чтобы разрешить необходимые порты, 500 и 4500, и nmap -sU -p 500 [VPN server IP]
подтвердил, что порты были открыты для пакетов UDP.
Установив максимальный уровень ведения журнала, я не распознал никаких ошибок или предупреждений, кроме пары строк, в которых говорилось
13 августа 17:28:16 vpn ipsec[2733]: 14[IKE] Запрос EAP-удостоверения настроен, но не поддерживается 13 августа 17:28:16 vpn ipsec[2733]: 14[IKE] не удалось загрузить метод EAP_MSCHAPV2
Я не могу понять, в чем еще может быть проблема, поэтому я думаю, что это должно быть связано с этими строками. Что я могу сделать, чтобы это исправить?
3 ответа
Поддержка 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
По всей видимости, пакет Debian не содержит необходимых плагинов для клиента Windows 10. Мне пришлось удалить пакет, затем загрузить и скомпилировать StrongSwan самостоятельно. Удаление пакета оставило некоторые файлы позади. Я должен был удалить /usr/lib/ipsec/
и перекомпилировать, потому что при новой установке произошел сбой при доступе к файлам из старой установки, которые там находились. Тем не менее, другие файлы, которые остались (особенно в /etc), похоже, работают или, по крайней мере, не вызывают никаких проблем.
При компиляции StrongSwan я использовал команду ./configure --prefix=/usr --sysconfdir=/etc --enable-eap-identity --enable-eap-mschapv2 --enable-md4
Кроме того, в соответствии с этим Windows пытается использовать 1024-битную группу Диффи-Хеллмана по умолчанию, и вы можете либо заставить StrongSwan предложить 1024-битную группу DH, либо вы можете установить ключ реестра в Windows, чтобы она принимала 2048 DH группа. Я не мог найти документацию для первого, поэтому я пошел с последним вместо этого.
Наконец, сертификат Let's Encrypt сработал. Чтобы использовать его, поместите ваш активный cert.pem в /etc/ipsec.d/certs/
и ваш активный chain.pem в /etc/ipsec.d/cacerts/
,
13 августа 17:28:16 vpn ipsec[2733]: 14[IKE] Запрос EAP-удостоверения настроен, но не поддерживается 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