Назад | Перейти на главную страницу

strongswan IKEv2 VPN + аутентификация RADIUS с NPS в домене Active Directory

Мне удалось запустить strongswan с аутентификацией eap-mschapv2 с использованием сертификата сервера. Теперь я хочу попробовать использовать плагин eap-radius с NPS, работающим на сервере Windows 2012 R2, для аутентификации в Active Directory.

На контроллере домена я создал нового пользователя и группу (VPN_USERS) для удаленного доступа.

На сервере VPN, если я проверю системный журнал, я вижу следующее:

vpn charon: 08[IKE] received cert request for "C=US,O=CR-51 Test,CN=Root CA" 
...
vpn charon: 09[CFG] selected peer config 'ikev2-vpn'
...
vpn charon: 09[IKE] authentication of 'vpn.cr-51-test.local' (myself) with pre-shared key
...
vpn charon: 09[ENC] generating IKE_AUTH response 1 [ IDr AUTH EAP/REQ/ID ]
...
vpn charon: 09[IKE] successfully created shared key MAC 
....
vpn charon: 11[JOB] deleting half open IKE_SA after timeout

На клиенте Windows 10 при попытках подключения возникает следующая ошибка:

dialed a connection named IKEv2 which has failed. The error code returned on failure is 13801.

На сервере NPS в средстве просмотра событий есть запись, в которой указано, что сервер политики сети отказал пользователю в доступе, и предлагается изменить параметры дозвона пользователя в AD, чтобы разрешить доступ или разрешить NPS управлять доступом. Первоначально он был настроен на разрешение NPS управлять доступом, но по-прежнему не работает, когда он настроен на разрешение доступа.

Также я не могу войти в систему с учетными записями на контроллере домена, кроме учетной записи администратора домена, после настройки NPS.

Вот текущие конфигурации

ipsec.conf:

config setup
  charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
  uniqueids=no

conn ikev2-vpn
  auto=add
  compress=no
  type=tunnel
  keyexchange=ikev2
  fragmentation=yes
  forceencaps=yes


  ike=aes256-sha1-modp1024,3des-sha1-modp1024!
  esp=aes256-sha1,3des-sha1-modp1024!

  dpdaction=clear
  dpddelay=300s
  rekey=no

  left=%any
  leftauth=pubkey
  leftid=@vpn.cr-51-test.local
  leftcert=/etc/ipsec.d/certs/vpn.cr-51-test.local.crt.pem
  leftsendcert=always
  leftsubnet=0.0.0.0/0
  lefthostaccess=yes
  leftfirewall=yes

  right=%any
  rightid=%any
  rightauth=eap-radius
  rightgroups="CN=VPN_USERS/CN=Users"
  rightsourceip=10.10.0.0/24
  rightdns=192.150.150.10
  rightsendcert=never
  rightfirewall=yes

 eap_identity=%identity

/etc/strongswan.d/charon/eap-radius.conf:

(Только те разделы, которые я изменил)

load = yes
...
secret = testpass
server = 192.150.150.20

ipsec.secrets:

vpn : RSA "/path/to/key"
: PSK "testpass"

Конфигурация NPS:

Сервер NPS зарегистрирован в домене.

Freindly name: vpn
Addresss (IP or DNS): 192.150.150.11
Shared secret: testpass

Политика запроса подключения

Type of network access server: Remote Access Server(VPN-Dialup)

Conditions:
  NAS Port Type: VPN
  Client Friendly Name: vpn

Политика доступа к сети

Type of network access server: vpn

 Conditions:
   NAS Port Type: VPN
   Client Friendly Name: vpn
   User Groups: VPN_USERS

 Constraints:
   Authentication Methods: EAP-MSCHAP v2
   NAS Port Type: VPN

Обновить

Ошибка NPS

Имя журнала: Источник безопасности: Microsoft-Windows-Security-Auditing Дата: 22.06.2018 17:25:02 Идентификатор события: 6273 Категория задачи: Уровень сервера сетевой политики: Ключевые слова: Ошибка аудита Пользователь: Н / Д Компьютер: nps.cr-51-test.local Описание: Сервер сетевой политики отказал пользователю в доступе.

Обратитесь к администратору сервера политики сети для получения дополнительной информации.

Пользователь: Идентификатор безопасности: CR-51-TEST \ tuser Имя учетной записи: tuser@cr-51-test.local Домен учетной записи: CR-51-TEST Полное имя учетной записи: CR-51-TEST \ tuser

Клиентский компьютер: Идентификатор безопасности: NULL SID Имя учетной записи: - Полное имя учетной записи: - Версия ОС: - Идентификатор вызываемой станции: 192.250.250.11 [4500] Идентификатор вызывающей станции: 192.173.1.90 [4500]

NAS: IPv4-адрес NAS: 192.250.250.11 IPv6-адрес NAS: - Идентификатор NAS: strongSwan Тип порта NAS: Порт виртуального NAS: 4

Клиент RADIUS: Удобное для клиента имя: IP-адрес клиента vpn: 192.250.250.11

Сведения об аутентификации: Имя политики запроса на подключение: Использовать проверку подлинности Windows для всех пользователей Имя сетевой политики: - Поставщик проверки подлинности: Сервер проверки подлинности Windows: nps.cr-51-test.local Тип проверки подлинности: EAP Тип EAP: - Идентификатор сеанса учетной записи: - Результаты ведения журнала : Учетная информация была записана в локальный файл журнала. Код причины: 48 Причина: запрос на соединение не соответствует настроенной сетевой политике.

Событие Xml: 6273 1 0 12552 0 0x8010000000000000 531 Безопасность nps.cr-51-test.local S-1-5-21-2365315230-2476318153-1929964036-1111 tuser@cr-51-test.local CR-51-TEST CR -51-TEST \ tuser S-1-0-0 - - - 192.250.250.11 [4500] 192.173.1.90 [4500] 192.250.250.11 - strongSwan Virtual 4 vpn 192.250.250.11 Использовать проверку подлинности Windows для всех пользователей - Windows nps.cr -51-test.local EAP - - 48 Запрос на подключение не соответствует настроенной сетевой политике. Учетная информация была записана в локальный файл журнала.

Strongswan Ошибка

Комбинирование EAP с аутентификацией по предварительному ключу не является строго допустимым в соответствии с RFC 7296:

Как правило, эти методы асимметричны (предназначены для аутентификации пользователя на сервере) и могут не быть взаимными. По этой причине эти протоколы обычно используются для аутентификации инициатора перед ответчиком и ДОЛЖНЫ использоваться вместе с аутентификацией ответчика перед инициатором на основе открытого ключа и подписи.

Некоторые реализации, такие как strongSwan, позволяют настраивать его, но многие другие - нет, и будут настаивать на аутентификации сервера с помощью сертификата.

Поскольку у вас уже есть сертификат и закрытый ключ, вам может потребоваться только установить leftauth=pubkey. При условии, что на клиенте уже установлен сертификат ЦС.

Для тех, кто ищет решение более надежное, чем простое разрешение всех видов подключений к серверу NPS, есть простая настройка, которую нужно изменить, и она отлично работает с strongSwan.

Что касается причины, по которой это все меняет, я не уверен, почему. Я думаю, это просто потому, что политика, созданная с помощью мастера, предполагает, что наш клиент (сервер VPN) является стандартным оборудованием OEM, которое поставляется с предварительно настроенными параметрами, которые заставят его отправлять дополнительные флаги, которые будут определять, что у него есть "Удаленный доступ Сервер (VPN-Dial up) ». На самом деле, если у кого-то есть четкие объяснения по этому поводу, это было бы очень признательно. Либо измените ответ, либо оставьте комментарий. Спасибо.

Итак, чтобы начать все сначала, щелкните корневой узел «NPS (локальный)», затем на главной панели щелкните «Настроить VPN или удаленное подключение». Следуйте инструкциям, как обычно. Когда вы закончите работу с мастером, будут созданы 2 политики с указанным вами именем; Один в «Политике запросов на подключение», а другой в «Сетевых политиках». В обеих политиках на вкладке «Обзор» в разделе «Метод сетевого подключения» для параметра «Тип сервера доступа к сети» установлено значение «Сервер удаленного доступа (VPN Dial up)». Измените этот параметр на «Не указано». И это все. Внесение этого изменения для меня было единственным, что нужно было сделать, чтобы клиентский запрос имел доступ к нему должным образом. После этого обе политики будут приняты во внимание.

Надеюсь, поможет.

Поэтому я отключил политики, которые я сделал для VPN-подключений на сервере NPS, и изменил политики по умолчанию, которые NPS сделал с минимальными ограничениями, и я смог успешно аутентифицировать пользователей Active Directory через strongswan vpn. Эти политики должны быть хорошей отправной точкой для тестирования.

На VPN-сервере strongswan

Как предложил ecdsa в ipsec.conf Я установил leftauth=pubkey.

На NPS

  • Под Политики запросов на подключение включить Использовать проверку подлинности Windows для всех пользователей политика.
  • Под Сетевые политики отключить Подключения к серверу маршрутизации и удаленного доступа
  • включить Подключения к другим серверам доступа в разделе "Сетевые политики"
  • Щелкните правой кнопкой мыши Подключения к другим серверам доступа и выберите Свойства
  • Измените Подключения к другим серверам доступа политика:


Обеспечить Предоставление доступа выбран

Позволять EAP-MSCHAPv2

Я не уверен, было ли это необходимо, но я также прокомментировал rightgroups параметр, который я установил в ipsec.conf файл, так как strongswan жаловался на это в журналах.