19
/ 02
Прикручиваем многофакторную аутентификацию к RA VPN на UserGate

Привет, я занимаюсь проектированием, внедрением и тестированием средств защиты информации в Т1 Интеграция.

Как сейчас при отсутствии всяких Palo Alto и прочих Cisco ASA организовать удалённый доступ пользователей в офис небольшой компании, да ещё и недорого? А ещё лучше бесплатно, ну или почти бесплатно. Вот и к нам прилетела такая задача, и первое, что приходит на ум, это использовать действующее оборудование. Рассмотрев имеющийся парк, мы выбрали UserGate. Такая функциональность там заявлена, а наличие сертификата ФСБ, подтверждающего возможности СКЗИ, на тот момент не требовалось. Перед началом внедрения, естественно, надо проверить, как работает многофакторная аутентификация в связке с VPN и какие опции доступны, как это интегрировать.

Сказано — сделано: в лаборатории организовали вот такой стенд:

e2158a8401abaf71dd00134e601dfd55.png

Порядок проверки был такой:

настраиваем аутентификацию пользователей через AD;

настраиваем VPN;

настраиваем Captive portal;

подключаем второй фактор через TOTP.

Для начала настраиваем подключение к AD. Для этого создаём пользователя ldapconnector в нашем домене lab.local. Пользователь должен быть членом группы Domain Users. Поскольку аккаунт технологический, настраиваем также опции «User cannot change password» и «Password never expires».

2226d14f80e3bb61936f0a0bd858a153.png

Далее в разделе «Пользователи и устройства» создаём сервер аутентификации AD или используем тот, что есть по умолчанию, и в нём для подключения к AD вводим параметры нашего пользователя в формате «ДОМЕН\имя пользователя и его пароль»:

1bb27b37d732419be71ba9ffd1333384.png

На вкладке «Домены LDAP» надо указать домен, в моём случае это lab.local. На вкладке «Kerberos keytab» необходимо загрузить keytab‑файл. Для его генерации создайте ещё одного пользователя, отличного от ldapconnector, я буду использовать тестовое имя kerb. И после этого при помощи команды сгенерируем на нашем AD‑сервер keytab‑файл. Обратите внимание, что команда чувствительна к регистру, и там, где значение LAB.LOCAL указано в ВЕРХНЕМ РЕГИСТРЕ, так и должно быть:

После загрузки keytab‑файла, можно нажать «проверить соединение» и убедиться в наличии связности с AD:

05425b951d4879702c66510dd7b9c9c3.png

Клиент на стенде подключается со стороны внешнего интерфейса, то есть со стороны зоны Untrusted надо разрешить в ней работу VPN:

b949a47829dec308bc2a74eb72604bf0.png

Как и на большинстве современных NGFW, зона — это просто группа интерфейсов, к которой можно применять политики и в которой можно настраивать сервисы. Для прерывания пользователей VPN создаётся отдельный туннельный интерфейс, который мы поместим в отдельную зону VPN for remote access в разделе «Сеть» — «Интерфейсы»:

dd7d577687b5c86d9ae140cc00deae2d.png

Подсеть 10.5.5.0/24 — это та подсеть, из которой мы будем выдавать адрес удалённым пользователям.

Чтобы пользователи из VPN for remote access могли ходить в другие зоны, например, к разрешённым ресурсам в зоне Trusted, необходимо создать правило межсетевого экранирования:

a1748c6ed9d7892d6a22df1c41cbd566.png

В моём случае доступ разрешён из VPN к внутренним ресурсам в сети 10.1.1.0/24. Далее создаём профиль безопасности VPN в разделе «VPN» — «Серверные профили». По умолчанию уже существует профиль Remote access VPN‑profile, будем использовать его:

1f210187d7940d9b6810a61a98e1a241.png

Для проверки достаточно выбрать протокол IKE2 и задать общий ключ, тот который обычно «preshared», остальные настройки как на рисунке.

Создадим профиль аутентификации RAVPN в разделе «Пользователи и устройства» — «Профили аутентификации»:

b345bfc199325a00055caabc0d314ad5.png

На этом этапе профиль MFA пока не используем, подключим его после проверки RA VPN:

6f455b0e13b36bf6990737729cc01f32.png

На вкладке «Методы аутентификации» добавим ранее созданный нами сервер AD:

a36680a977740d1048a0b6af6e7bee1d.png

Создадим VPN‑сеть в разделе «VPN» — «Сети VPN». Я назову её RAVPN_Net2, но название может быть любым. Здесь зададим желаемый диапазон адресов для удалённых пользователей. Важно, чтобы он был из той же сети, что и VPN‑интерфейс:

3c36e5eacd9ba5a19c2fe039bdc3f2d3.png

Укажем маршруты к приватным сетям, все остальные маршруты в моей сети более узкие или находятся в интернете, поэтому я могу себе такое позволить. В проде, конечно, надо указывать точнее. Маршруты для UserGate Client не задаю, потому что подключение планируется нативным клиентом Windows:

f1f8dbf648fe04480ca24691e83686e8.png

Далее создаем серверное правило Remote access VPN rule, в нём связываем воедино профиль безопасности, сеть VPN, профиль аутентификации и туннельный интерфейс:

b64d11602798a2dd0822849634cbab01.png>

Зона источника — Untrusted, назначение — адреса на которых разрешено терминировать VPN-подключения , пользователей добавляем из AD, в моём случае это пользователь userovich:

d6c7ed392664a37c2b23e4cd695499fb.png

Всё, теперь можно тестировать подключение с компьютера пользователя:

163242f6435439607e9914a34cc83e7d.png

Для аутентификации пользователя указываем протокол PAP, имя пользователя указываем в формате userovich@lab.local:

34243065f73a6fdf3d54b7ea064462a0.png

Так, VPN заработал, осталось прикрутить 2FA. В качестве второго фактора я буду использовать бесплатный клиент FreeOTP для Android. Чтобы его инициализировать, нам потребуется настроить Captive‑портал. Для этого создаём Captive‑профиль со следующими настройками:

e2b2801cd3ee26a057c7a9d25a69c424.png

На вкладке «Регистрация новых пользователей» оставляем настройки по умолчанию:

3878ad11217c2ebd7a48303eec34805d.png

В Captive-портале добавляем созданный Captive-профиль:

f0a6e8b0d84b38a37da01ed3f737931d.png

В зоне источника указываем VPN for remote access:

b79cb286adb4380bce3660229b16db18.png

В назначении — целевая зона Trusted:

00ca608958e18e32804d13805d0430df.png

Остальные настройки не меняем.

Необходимо также создать профиль TOTP, в котором надо указать, как инициализировать TOTP, и что требуется показать QR‑код:

22f1e1afbddb95751b15f7d711de4b35.png

Теперь в профиле аутентификации укажем профиль MFA:

7ed54d54045e708b5f88dfd00e740a52.png

Метод аутентификации остаётся прежним — через AD.

Для инициализации TOPT необходимо на компьютере клиента, при включённом VPN, перейти по ссылке:

da0ea38149ddb25f0f776a2a2d12bd9d.png

Необходимо дождаться сообщения, что сертификат недоверенный:

db268164dfef4cf6937f6be5d2175a1b.png

После этого введите логин и пароль в нужном формате и отсканируйте QR‑код в приложении:

2c737502b03eba4e73ecfabf7b64ab5a.png

Всё, можно пользоваться, но надо помнить, что теперь при аутентификации в VPN надо вводить пароль пользователя в формате: Password:otp_code, где otp_code — 6 цифр из приложения, которые будут динамически изменяться при каждом подключении.

Ссылка на источник

О компаниях
Контакты для СМИ:
Читайте также
Показать ещё
К вашему бизнесу