IKEv2 Нужна небольшая помощь по Strongswan

Вопрос или проблема

Я пытаюсь создать 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 работают без сбоев.

Анализ конфигурации

Ваша конфигурация выглядит в целом корректной, вот основные моменты, на которые стоит обратить внимание:

  1. Сертификаты: Убедитесь, что все сертификаты были правильно установлены и соответствуют друг другу. На Windows вы уже импортировали корневой сертификат, что является хорошим шагом. Убедитесь, что сертификат VPN-сервера также правильно настроен (его подпись и дата действия).

  2. Типа аутентификации: Вы выбрали EAP-RADIUS для аутентификации. Убедитесь, что ваш сервер FreeRADIUS настроен и работает должным образом. Вы можете выполнить тестовую аутентификацию через командную строку на вашем сервере для проверки корректности настроек RADIUS.

  3. Свойства адаптера и VPN: В свойствах подключения VPN на Windows выбраны правильные параметры безопасности и шифрования. Убедитесь, что выставлены необходимые параметры для использования EAP и что выбранный тип шифрования совместим с настройками на стороне сервера.

  4. Отслеживание журналов: Вы уже используете swanctl --log, что очень полезно. Старайтесь следить за любыми дополнительными ошибками или предупреждениями. Если Windows не отправляет ответа, возможно, причина кроется в конфигурации EAP или аутентификации RADIUS.

Рекомендации по устранению неполадок

  1. Проверка совместимости RADIUS: Спецификации FreeRADIUS могут отличаться, и не все версии работают с каждой реализацией. Убедитесь в совместимости вашей версии FreeRADIUS с используемым методом EAP.

  2. Использование Wireshark: Установите и запустите Wireshark на сервере VPN для захвата трафика. Это даст вам возможность увидеть, что происходит между клиентом на Windows и вашим сервером. Особое внимание уделите пакету IKE_AUTH.

  3. Тестирование на другом клиенте: Если есть возможность, попробуйте еще раз поменять клиент на Windows или тестируйте с другими версиями (например, Windows 11) для исключения проблемы с конкретной системой.

  4. Логи на стороне FreeRADIUS: Проверьте логи FreeRADIUS на предмет ошибок аутентификации. Это может дать больше информации о том, почему Windows не может пройти аутентификацию.

  5. Настройки шифрования и шифры: Убедитесь, что шифры, выставленные в вашей конфигурации (ike и esp), поддерживаются Windows. Рассмотрите возможность упрощения конфигурации для решения проблемы — например, временно установите только один шифр для диагностики.

Заключение

Проблема, с которой вы столкнулись, может иметь множество причин — от некорректной аутентификации на стороне FreeRADIUS до несовместимости шифров и настроек. Шаги по устранению неполадок, приведенные выше, должны помочь вам в диагностике и решении проблемы. Если вы найдете что-то конкретное или потребуется более глубокий анализ, не стесняйтесь задавать дополнительные вопросы. Удачи в вашей настройке VPN!

Оцените материал
Добавить комментарий

Капча загружается...