pfSense openvpn настройка с доменной аутентификацией в Active Directory.
В статье я опишу настройку openvpn на pfSense с доступом по учетным записям в домене Active Directory.
Когда возникла необходимость найти альтернативу виндовому vpn, на глаза попался дистрибутив pfSense, который включает в себя несколько вариантов vpn и умеет авторизовывать пользователей домена Active Directory. Выбор пал на openvpn, настройку которого я и опишу. Установку самого pfSense я описывать не буду, там всё довольно просто и понятно.
Настройка openvpn.
Итак, будем считать, что у вас уже есть установленный pfSense с внешним и локальным интерфейсами и настроенными маршрутами. Если нет — настроить маршруты можно на вкладке Система->Маршрутизация. Там же настраиваются и шлюзы.
Для работы openvpn требуются центр сертификации и сертификаты сервера и пользователя. Давайте их создадим.
Переходим в Система->Менеджер сертификатов
На вкладке Центры сертификации жмем Добавить. Заполняем необходимую информацию и сохраняем.
Далее на вкладке Сертификаты добавим сертификат сервера.
Обратите внимание, тип сертификата должен быть Server certificate.
Теперь по аналогии создаем сертификат пользователя.
Теперь тип сертификата должен быть User Certificate.
Настройка аутентификации пользователей.
Давайте настроим аутентификацию наших доменных пользователей Active directory.
Для этого переходим на вкладку Система—Менеджер пользователей. Выбираем Серверы Аутентификации и жмем Добавить. Указываем имя нашей аутентификации, протокол LDAP, адрес контроллера домена. В поле Base DN укажите свой домен.
Далее указываем контейнеры аутентификации, ставим галку Расширенного запроса и указываем группу, членам которой будет разрешено подключаться к впн серверу(эта группа дожна присутствовать в домене). Также снимите галку Привязать анонимно и укажите имя и пароль пользователя домена, от имени которого наш сервер будет подключаться к контроллеру домена. Исходный шаблон укажите Microsoft AD, а атрибут члена группы memberOf.
Сохраните изменения. Проверить правильность настройки можно на вкладке Диагностика—Аутентификация. Если при вводе учетных данных доменного пользователя, состоящего в нужной доменной группе тест пройден успешно, значит всё настроено правильно.
Установка пакета client-export.
Для установки сервера почти всё готово, давайте установим еще пакет для экспорта клиентов openvpn. Для этого переходим на вкладку Система—Менеджер пакетов.
Переходим на вкладку Доступные пакеты.
Находим пакет openvpn-client-export.
Нажимаем install и подтверждаем установку пакета.
Через некоторое время пакет будет установлен.
Создание сервера openvpn.
Пришло время создать наш openvpn сервер. Для этого жмем на VPN и в выпадающем списке выбираем OpenVPN.
В открывшемся окне выберите Мастер установки.
Этот мастер поможет создать openvpn сервер и создаст разрешающее правило в межсетевом экране. На этапе создания пригодятся и созданные нами ранее сертификаты.
При настройке сервера впн укажите сеть для туннеля и локальные сети, которые должны быть доступны подключившимся клиентам.
Можете поставить галки, заставляющие клиентов отправлять весь трафик в туннель, если вам это нужно.
Есть много опций, которые вы можете передать клиентам openvpn. Например, можно сообщить адреса днс-серверов, запретить Windows клиентам использовать внешние ДНС серверы и т.д.
В расширенных настройках можно добавить дополнительные опции, такие как дополнительные сети и домены. Я еще установил галку для использования имени пользователя вместо имени сертификата и установил оповещение подключенных пользователей при выключении или перезагрузке сервера.
Со всеми доступными опциями разбираться можно долго. Сделать это можно на странице сообщества OpenVPN.
Подключение клиентов.
После настройки сервера осталось только передать клиентам настройки сервера. Сделать это можно на вкладке OpenVPN—Client Export.
Выберите пакет для нужной операционной системы и кликните по нему для скачивания. Передайте скачанный файл клиенту. Для ОС семейства Linux выбирайте Archive.
Далее на Windows запустите скачанный файл и следуйте подсказкам установщика. После завершения установки на рабочем столе появится ярлык для запуска. После запуска openvpn, он будет доступен в трее.
На линукс системах разархивируйте скачанный файл и при добавлении VPN-подключения выберите вариант Импортировать из файла.
Введите имя пользователя и пароль и сохраните настройки. Подключение готово к использованию.
Еще пару слов о настройке клиентов на Линукс для pfSense openvpn. Мне не удалось заставить NetworkManager использовать туннель openvpn только для маршрутов в сети, предоставляемые сервером. Он ставит шлюз по умолчанию через туннель с меньшей метрикой, чем дефолтный шлюз на клиенте. Единственное, что помогло оставить дефолтный маршрут на клиенте через его собственный шлюз — это установка в свойствах впн подключения галки Использовать это подключение только для ресурсов в этой сети. На Windows клиентах такой проблемы не было.
Если у вас есть дополнения, исправления, пожелания и т.д. — пишите в комментариях.