Вопрос или проблема
Я пытаюсь создать VPN-сервер IKEv2 Strongswan (U5.7.2/K5.3.0-42-generic) на своем личном VPS (Ubuntu 19.10) уже два дня, чтобы провести тесты перед его реализацией на оборудовании Unifi на моей работе (надеюсь, это будет возможно)
Я использовал разные руководства и страницы по устранению неполадок, чтобы сделать свою конфигурацию
Я использую радиусную аутентификацию (с локальным сервером freeradius) для пользователей
И я сталкиваюсь с этой глупой проблемой, надеюсь, кто-то из вас сможет уделить 2 минуты, чтобы помочь мне 🙂
Я постараюсь быть как можно более подробным, не стесняйтесь спрашивать дополнительные сведения, если это необходимо
Моя ipsec.conf:
config setup
strictcrlpolicy=yes
uniqueids=never
conn roadwarrior
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
ike=aes256-sha1-modp1024,aes256gcm16-sha256-ecp521,aes256-sha256-ecp384
esp=aes256-sha1,aes128-sha256-modp3072,aes256gcm16-sha256,aes256gcm16-ecp384
dpdaction=clear
dpddelay=180s
rekey=no
left=%any
leftid=vpsXXXXXX.ovh.net
leftcert=vpn.example.com.crt.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-radius
eap_identity=%identity
rightdns=8.8.8.8,8.8.4.4
rightsourceip=10.10.10.0/24
rightsendcert=never
Мой ipsec.secrets:
vpsXXXXXX.ovh.net : RSA vpn.example.com.key.der
Мои файлы ipsec.d:
~$ sudo ls /etc/ipsec.d/private/
vpn.example.com.key.der
~$ sudo ls /etc/ipsec.d/certs/
vpn.example.com.crt.pem
~$ sudo ls /etc/ipsec.d/cacerts/
vpnca.crt.der
Я импортировал свой vpnca.crt.der на свой Mac, Android (клиент Strongswan), Windows 10 Enterprise и стандартную версию Windows 10 одного друга
Все работает хорошо на моем Mac и Android, но невозможно установить соединение с Windows
В swanctl –log :
14[CFG] выбран конфиг пирa 'roadwarrior'
14[IKE] инициирование метода EAP_IDENTITY (id 0x00)
14[IKE] пир поддерживает MOBIKE
14[IKE] аутентификация 'vpsXXXXXX.ovh.net' (я сам) с RSA подписью успешна
14[IKE] отправка сертификата конечного сущности "C=FR, O=Test Company, CN=vpsXXXXXX.ovh.net"
14[ENC] генерация ответа IKE_AUTH 1 [ IDr CERT AUTH EAP/REQ/ID ]
14[ENC] разделение сообщения IKE (1996 байт) на 2 фрагмента
14[ENC] генерация ответа IKE_AUTH 1 [ EF(1/2) ]
14[ENC] генерация ответа IKE_AUTH 1 [ EF(2/2) ]
14[NET] отправка пакета: от XX.XX.XX.XX[4500] к YY.YY.YY.YY[4500] (1248 байт)
14[NET] отправка пакета: от XX.XX.XX.XX[4500] к YY.YY.YY.YY[4500] (816 байт)
Со стороны Windows ошибка, которая отображается, является обычной :
"IKE authentication credentials are unacceptable"
В просмотрщике событий:
CoId={6C88B9D2-54F0-4671-A12D-B506DE75630F}: Пользователь MYWORKDOMAIN\myuser подключился к соединению под названием VPN Connection, которое завершилось неудачей. Код ошибки, возвращенный при неудаче, 13801.
Что я сделал со стороны Windows:
- Импортировал сертификат CA в Локальные сертификаты компьютера -> Доверенные корневые центры сертификации -> Сертификаты
- Создал VPN соединение в Настройках VPN:
- Имя сервера или адрес: vpsXXXXXX.ovh.net
- Тип VPN: IKEv2
- Тип информации для входа: Пользователь и пароль
- В свойствах адаптера ncpa.cpl:
- Безопасность:
- Шифрование данных: Опциональное шифрование
- Аутентификация: Использовать Расширяемый Протокол Аутентификации (EAP): Microsoft: Защищенный пароль (EAP-MSCHAPv2) (шифрование включено)
- Сетевая: отключить IPv6
- Безопасность:
CA имеет следующие атрибуты:
Версия:
V3
Серийный номер:
73fbd6a8d90a33db
Алгоритм подписи:
sha1RSA
Алгоритм хеширования подписи:
sha1
Выдавший сертификат:
CN = TEST VPS CA
O = Test Company
C = FR
Действителен с:
Пятница, 27 марта, 2020 15:15:29
Действителен до:
Понедельник, 27 марта, 2023 15:15:29
Тема:
CN = TEST VPS CA
O = Test Company
C = FR
Публичный ключ:
RSA (4096 бит)
Параметры публичного ключа:
05 00
Идентификатор ключа темы:
214851f1fe79e3719be0139fab1799a9d4a08561
Расширенное использование ключей:
Аутентификация сервера (1.3.6.1.5.5.7.3.1)
Основные ограничения:
Тип субъекта=CA
Ограничение длины пути=Нет
Использование ключа:
Информация недоступна
Отпечаток:
78e8cc49ab508b8f477b419d369873036be488b4
Атрибуты сертификата VPS:
Версия:
3
Серийный номер:
3611432227629166526
Алгоритм подписи:
sha1WithRSAEncryption
Выдавший сертификат:
C = FR, O = Test Company, CN = TEST VPS CA
Действительность:
Не раньше: Mar 27 14:15:31 2020 GMT
Не позже: Mar 27 14:15:31 2023 GMT
Тема:
C = FR, O = Test Company, CN = vpsXXXXXX.ovh.net
Алгоритм публичного ключа:
rsaEncryption
Публичный ключ RSA:
(4096 бит)
Расширения X509v3:
X509v3 Идентификатор ключа доверия:
keyid:21:48:51:F1:FE:79:E3:71:9B:E0:13:9F:AB:17:99:A9:D4:A0:85:61
X509v3 Альтернативное имя субъекта:
DNS:vpsXXXXXX.ovh.net
X509v3 Расширенное использование ключей:
TLS Аутентификация веб-сервера
Алгоритм подписи:
sha1WithRSAEncryption
Команды, использованные для создания сертификатов:
ipsec pki --gen --type rsa --size 4096 --outform pem > vpnca.key.pem
ipsec pki --self --flag serverAuth --in vpnca.key.pem --type rsa --digest sha1 \
--dn "C=FR, O=Test Company, CN=TEST VPS CA" --ca > vpnca.crt.der
ipsec pki --gen --type rsa --size 4096 --outform pem > vpn.example.com.key.pem
ipsec pki --pub --in vpn.example.com.key.pem --type rsa > vpn.example.com.csr
ipsec pki --issue --cacert vpnca.crt.der --cakey vpnca.key.pem --digest sha1 \
--dn "C=FR, O=Test Company, CN=vpsXXXXXX.ovh.net" \
--san "vps807542.ovh.net" --flag serverAuth --outform pem \
< vpn.example.com.csr > vpn.example.com.crt.pem
openssl rsa -in vpn.example.com.key.pem -out vpn.example.com.key.der -outform DER
cp vpnca.crt.der /etc/ipsec.d/cacerts
cp vpn.example.com.crt.pem /etc/ipsec.d/certs
cp vpn.example.com.key.der /etc/ipsec.d/private
Надеюсь, у вас достаточно информации, и вы сможете помочь мне, потому что я действительно не понимаю, почему Windows не отвечает на пакет IKE_AUTH…
Спасибо за вашу помощь и берегите себя!
У меня такая же проблема. Вы ее решили?
Но у меня проблема с подключением нативного клиента Android, и он работает с Mac/iOS.
Ответ или решение
Слушайте, я понимаю, что вы столкнулись с проблемой при настройке VPN-сервера на базе IKEv2 с помощью StrongSwan. Давайте разберем вашу конфигурацию и возможные причины возникновения ошибки, чтобы вы могли успешно подключиться с вашего устройства под управлением Windows.
Проблема
Вы упомянули, что попытка подключения с устройства на Windows приводит к ошибке "IKE authentication credentials are unacceptable", а также код ошибки 13801 в журнале событий. Основная проблема, как вы сами заметили, заключается в том, что Windows не отвечает на IKE_AUTH, в то время как Mac и Android работают без сбоев.
Анализ конфигурации
Ваша конфигурация выглядит в целом корректной, вот основные моменты, на которые стоит обратить внимание:
-
Сертификаты: Убедитесь, что все сертификаты были правильно установлены и соответствуют друг другу. На Windows вы уже импортировали корневой сертификат, что является хорошим шагом. Убедитесь, что сертификат VPN-сервера также правильно настроен (его подпись и дата действия).
-
Типа аутентификации: Вы выбрали EAP-RADIUS для аутентификации. Убедитесь, что ваш сервер FreeRADIUS настроен и работает должным образом. Вы можете выполнить тестовую аутентификацию через командную строку на вашем сервере для проверки корректности настроек RADIUS.
-
Свойства адаптера и VPN: В свойствах подключения VPN на Windows выбраны правильные параметры безопасности и шифрования. Убедитесь, что выставлены необходимые параметры для использования EAP и что выбранный тип шифрования совместим с настройками на стороне сервера.
-
Отслеживание журналов: Вы уже используете
swanctl --log
, что очень полезно. Старайтесь следить за любыми дополнительными ошибками или предупреждениями. Если Windows не отправляет ответа, возможно, причина кроется в конфигурации EAP или аутентификации RADIUS.
Рекомендации по устранению неполадок
-
Проверка совместимости RADIUS: Спецификации FreeRADIUS могут отличаться, и не все версии работают с каждой реализацией. Убедитесь в совместимости вашей версии FreeRADIUS с используемым методом EAP.
-
Использование Wireshark: Установите и запустите Wireshark на сервере VPN для захвата трафика. Это даст вам возможность увидеть, что происходит между клиентом на Windows и вашим сервером. Особое внимание уделите пакету IKE_AUTH.
-
Тестирование на другом клиенте: Если есть возможность, попробуйте еще раз поменять клиент на Windows или тестируйте с другими версиями (например, Windows 11) для исключения проблемы с конкретной системой.
-
Логи на стороне FreeRADIUS: Проверьте логи FreeRADIUS на предмет ошибок аутентификации. Это может дать больше информации о том, почему Windows не может пройти аутентификацию.
-
Настройки шифрования и шифры: Убедитесь, что шифры, выставленные в вашей конфигурации (ike и esp), поддерживаются Windows. Рассмотрите возможность упрощения конфигурации для решения проблемы — например, временно установите только один шифр для диагностики.
Заключение
Проблема, с которой вы столкнулись, может иметь множество причин — от некорректной аутентификации на стороне FreeRADIUS до несовместимости шифров и настроек. Шаги по устранению неполадок, приведенные выше, должны помочь вам в диагностике и решении проблемы. Если вы найдете что-то конкретное или потребуется более глубокий анализ, не стесняйтесь задавать дополнительные вопросы. Удачи в вашей настройке VPN!