pfSense ikev2 c авторизацией Active Directory

Подготовка

Сертификаты

Для того, чтобы ikev2 без головной боли работал на клиентах, серверу всегда нужен валидный сертификат от реального центра сертификации. Использовать самоподписанные и импортировать CA на всех клиентах то ещё развлечение, по этому

  1. Добавьте запись в DNS, со ссылкой на внешний айпшиник pfsense. Типа vpn.example.com или ещё как-то
  2. Установите в pfSense расширение acme, которое автоматизирует получение бесплатных сертификатов от Let’sEncrypt. Там всё достаточно просто и очевидно.
  3. Получите бесплатный сертификат. Я делал это с проверкой через DNS, что требует добавления текстовой записи вида _acme-challenge.vpn.exmaple.com в DNS
  4. Запомните на будущее, что клиент должен обращаться к серверу только по созданному и указанному в сертификате доменному имени (то самое vpn.example.com)

Авторизация

Для авторизации логично использовать стандартный доменный пароль пользователей, это облегчает жизнь администратору :), но EAP-MSCHAPv2 авторизация не поддерживает прямое обращение к LDAP, т.к. шифрует логин и пароль. Зато шифрованные пароли хорошо поддерживает RADIUS, а Windows умеет в RADIUS, по этому:

  1. Создайте в AD группу, в которую будут входить пользователи VPN. В отличие от LDAP, в pfsense, RADIUS-метод управляет на основе групп, а не на основе контейнеров
  2. Настройте Microsoft NPS по инструкции от NetGate Не забудьте сохранить в блокнот «общий секрет» из мастера — он понадобится при настройке pfSense
  3. Дополните настройку NPS по вот этой инструкции от NetGate
  4. Настройте связь pfSense с RADIUS. Я опять же пользовался инструкцией от NetGate Протокол авторизации — MS-CHAPv2

ikev2

Просто настройте ikev2 по инструкции от NetGate, внеся изменения.

1. Выберите RADIUS-сервер в настройках Mobile Client

2. Выберите EAP-RADIUS протоколом аутентификации при настройках phase 1