How to MFA, или настройка многофакторной аутентификации для удалённого VPN-доступа

How to MFA, или настройка многофакторной аутентификации для удалённого VPN-доступа

Многофакторная аутентификация (MFA) в условиях вынужденной удалённой работы и использования VPN-сервисов приобретает особое значение для многих организаций. На примере RADIUS-сервера и Microsoft Azure, а также FreeRADIUS-сервера и службы Google Authenticator расскажем, как обезопасить учётные данные сотрудников и защитить свою сеть.

 

 

 

 

  1. Введение
  2. Аутентификация удалённого доступа с использованием сервера RADIUS и службы Microsoft Azure
    1. 2.1. Настройка RADIUS на Windows Server 2016
    2. 2.2. Настройка RADIUS-аутентификации для удалённого VPN-доступа в Check Point SmartConsole
  3. Аутентификация удалённого доступа с использованием сервера FreeRADIUS и службы Google Authenticator
    1. 3.1. Начальная настройка сервера Ubuntu
    2. 3.2. Настройка RADIUS-аутентификации в политике безопасности Check Point
    3. 3.3. Установка FreeRADIUS и Google Authenticator (генератор QR-кодов)
    4. 3.4. Работа мобильного приложения
  4. Выводы

Введение

В последнее время удалённая работа становится распространённым видом организации рабочего процесса. Всё больше компаний переводят сотрудников на работу вне офиса. Но кроме всех очевидных выгод растут и риски. По данным ESET, число ежедневных брутфорс-атак выросло до 100 000 из-за самоизоляции. Заметное количество пользователей, работающих с конфиденциальными данными, оказалось под угрозой.

Большинство компаний, перешедших на удалённый формат работы, используют VPN-сервисы для подключения к своим внутренним ресурсам. Идентификация и аутентификация пользователей при этом, как правило, осуществляются путём ввода имени пользователя и пароля.

Учитывая, что имя пользователя зачастую можно найти в открытых источниках, перед злоумышленником остаётся лишь одна преграда — пароль. Подбор, троянская программа, социальная инженерия... способов незаконного получения пароля — множество.

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

Сегодня мы рассмотрим примеры организации MFA для VPN-шлюза Check Point. Описание настройки дано в двух вариантах:

  1. Аутентификация удалённого доступа с использованием сервера RADIUS и службы Microsoft Azure.
  2. Аутентификация удалённого доступа с использованием сервера FreeRADIUS и службы Google Authenticator.

Аутентификация удалённого доступа с использованием сервера RADIUS и службы Microsoft Azure

Подробная инструкция по интеграции Microsoft Azure с Active Directory доступна по этой ссылке и здесь рассматриваться не будет.

Для описания процесса интеграции и настройки взаимодействия будем рассматривать схему, приведённую на рисунке ниже.

 

Рисунок 1. Логическая схема взаимодействия компонентов решения

Логическая схема взаимодействия компонентов решения

 

Настройка RADIUS на Windows Server 2016

Шаг 1. В случае если Network Policy Server (NPS) не установлен на вашем сервере, откройте «Server Manager», далее — «Manage» → «Add roles and features», в открывшемся окне проходим первые этапы настройки без изменений, нажимая «Next» до пункта «Server roles». Находим пункт «Network Policy and Access Services», выбираем его, далее вновь нажимаем «Next» до завершения установки.

После завершения перезагрузите сервер. Далее запускаем «Server Manager» и во вкладке «Tools» открываем появившийся «Network Policy Server».

 

Рисунок 2. Интерфейс Network Policy Server

Интерфейс Network Policy Server

 

Шаг 2. Создайте клиент RADIUS, выбрав «RADIUS» → «New». Заполнять поля следует согласно значениям в вашей инфраструктуре.

 

Рисунок 3. Создание клиента RADIUS

Создание клиента RADIUS

 

Шаг 3. Переходим к окну NPS. Выберите «Network policy» и далее «New».

 

Рисунок 4. Создание политики

Создание политики

 

Шаг 4. Введите имя для своей политики и оставьте в поле с типом сервера для доступа к сети вариант «Unspecified». Затем нажмите кнопку «Next», в поле «Select condition» выберите «Add».

 

Рисунок 5. Окно «Specify conditions»

Окно «Specify conditions»

 

Шаг 5. Выберите «Windows Groups», а затем «Add group». Введите своё название группы и нажмите кнопку «Check Names».

 

Рисунок 6. Добавление группы

Добавление группы

 

Шаг 6. Нажмите «OK» дважды в соответствующих окнах, а затем — «Next». На следующей странице выберите «Access granted».

 

Рисунок 7. Назначение доступа

Назначение доступа

 

Шаг 7. Нажмите кнопку «Next». Для указания методов проверки подлинности необходима как минимум проверка MS-CHAP-v2 или PAP (в соответствии с аналогичными параметрами протоколов в настройках RADIUS-сервера в консоли управления Check Point (шаг 16)).

 

Рисунок 8. Настройка метода аутентификации

Настройка метода аутентификации

 

Шаг 8. Нажмите кнопку «Next». Выберите необходимые дополнительные ограничения, например по времени работы.

Шаг 9. Выберите «Vendor Specific» и нажмите кнопку «Add».

Шаг 10. Нажмите кнопку «Add» в следующем окне.

Шаг 11. Измените вендора на пользовательское значение и выберите «Vendor-Specific». Нажмите кнопку «Add» ещё раз.

 

Рисунок 9. Добавление вендора

Добавление вендора

 

Шаг 12. Нажмите кнопку «Add» ещё раз. Измените значение в поле «Enter Vendor Code» на «2620» (это значение атрибута вендора используется для продуктов Check Point). Затем — «Configure Attribute».

 

Рисунок 10. Информация о вендоре

Информация о вендоре

 

Шаг 13. Введите «229» для приписываемого номера, выберите строку для формата атрибута и введите имя созданной группы. Значение «229» используется для продуктов Check Point под управлением ОС Gaia.

 

Рисунок 11. Определение атрибута вендора

Определение атрибута вендора

 

Шаг 14. Нажмите «OK» необходимое количество раз, а затем выберите «Next». Проверьте настройки и нажмите кнопку «Finish».

 

Рисунок 12. Завершение настройки NPS

Завершение настройки NPS

 

Настройка RADIUS-аутентификации для удалённого VPN-доступа в Check Point SmartConsole

Шаг 15. Создайте хост-объект для сервера RADIUS.

 

Рисунок 13. Создание хост-объекта в консоли Check Point SmartConsole

Создание хост-объекта в консоли Check Point SmartConsole

 

Шаг 16. Создайте объект «RADIUS Server» (значение поля «Shared secret» должно быть идентично тому, что было на шаге 2).

 

Рисунок 14. Создание объекта сервера RADIUS

Создание объекта сервера RADIUS

 

Шаг 17. Создайте пустую группу с названием «RAD-Attributevalue». Значение «Attributevalue» должно соответствовать названию атрибута, указанному в шаге 13.

 

Рисунок 15. Создание группы

Создание группы

 

Шаг 18. Опубликуйте свои изменения и закройте консоль.

Шаг 19. Откройте GuiDBedit (находится в директории с установленной консолью Check Point SmartConsole в папке «PROGRAM»).

Шаг 20. Измените свойство «add_radius_groups» («Global properties» → «Firewall properties») с «false» на «true».

 

Рисунок 16. Изменение параметров «add_radius_groups» в окне GuiDBedit

Изменение параметров «add_radius_groups» в окне GuiDBedit

 

Шаг 21. Измените значение «radius_groups_attr» с 25 на 26 (атрибут 26 позволяет вендору создавать дополнительные 255 значений IETF и инкапсулировать их за значением атрибута 26). Сохраните изменения и закройте GuiDBedit.

 

Рисунок 17. Изменение параметров «radius_groups_attr» в окне GuiDBedit

Изменение параметров «radius_groups_attr» в окне GuiDBedit

 

Шаг 22. Откройте SmartConsole. Нажмите на кнопку «Manage & Settings», а затем — «Blades», выберите «Mobile Access», затем «Configure in SmartDashboard».

 

Рисунок 18. Настройка Mobile Access Blade

Настройка Mobile Access Blade

 

Шаг 23. Выберите значок пользователя в «Object Explorer» в левом нижнем углу. Затем выберите правой кнопкой мыши «External user profiles» и «New external user profile».

 

Рисунок 19. Добавление профиля пользователя

Добавление профиля пользователя

 

Шаг 24. Откройте раздел «Authentication» и измените схему аутентификации на «RADIUS». Затем выберите созданный на шаге 16 объект сервера RADIUS.

 

Рисунок 20. Выбор способа аутентификации

Выбор способа аутентификации

 

Шаг 25. Нажмите «OK» и сохраните изменения. Затем закройте окно SmartConsole.

Шаг 26. В SmartConsole откройте объект шлюза удалённого доступа.

 

Рисунок 21. Интерфейс объекта шлюза в Smart Center

Интерфейс объекта шлюза в Smart Center

 

Шаг 27. Выберите «VPN clients», затем — «Authentication».

Примечание: в данном примере был настроен единственный метод аутентификации с использованием RADIUS. Также можно настроить различные методы через «Multiple authentication settings», добавив необходимые варианты с помощью кнопки «Add». Эта технология поддерживается в Mobile Access Portal и в последних версиях Check Point Endpoint Client:

  • Capsule VPN;
  • Capsule Workspace — iOS 10.02.2 и выше;
  • Capsule Workspace for Android — версия 7.1 и выше;
  • Remote Access VPN Blade of the Endpoint Security Suite (Windows) — версия E80.65 и выше;
  • Endpoint Security VPN (Windows) — версия E80.65 и выше;
  • SecuRemote (Windows) — версия E80.65 и выше;
  • Check Point Mobile for Windows — версия E80.65 и выше.

 

Рисунок 22. Настройка аутентификации в параметрах шлюза

Настройка аутентификации в параметрах шлюза

 

Шаг 28. Измените метод проверки подлинности на «RADIUS» и выберите сервер, созданный на шаге 16. Установите флажок «Allow older clients to connect to this gateway» (это нужно для того, чтобы удалённые пользователи, подключавшиеся раньше другими методами, смогли выбрать в приложении метод аутентификации и указать «Standard», применив тем самым настройки RADIUS). Далее нажимаем «ОК».

 

Рисунок 23. Выбор метода аутентификации в настройках шлюза

Выбор метода аутентификации в настройках шлюза

 

Шаг 29. Активация мобильного приложения.

Нужно установить на мобильный телефон приложение Microsoft Authenticator. По этой ссылке необходимо зайти под учётной записью Microsoft Azure.

 

Рисунок 24. Активация мобильного приложения

Активация мобильного приложения

 

Шаг 30. Выберите «Настроить приложение Authenticator».

 

Рисунок 25. Настройка мобильного приложения

Настройка мобильного приложения 

 

Шаг 31. Выбор учётной записи — необходимо в приложении телефона отсканировать QR-код с экрана компьютера.

 

Рисунок 26. Выбор учётной записи

Выбор учётной записи

 

Шаг 32. В приложении утверждаем вход — Microsoft MFA с учётной записью Azure активирована.

 

Рисунок 27. Утверждение входа

Утверждение входа

 

Шаг 33. Проверка работы MFA для VPN-подключения. С рабочей станции, на которой установлен VPN-клиент, подключаемся используя учётные данные Microsoft Azure.

 

Рисунок 28. VPN-подключение

VPN-подключение

 

Шаг 34. В мобильном приложении появляется всплывающее окно об утверждении или отклонении запрашиваемого удалённого подключения. Важно иметь в виду, что новый пароль генерируется каждые 30 секунд. Если не успеть утвердить в данный отрезок времени — сессия организована не будет.

 

Рисунок 29. Успешное подключение

Успешное подключение

 

Аутентификация удалённого доступа с использованием сервера FreeRADIUS и службы Google Authenticator

Рассмотрим пример при работе под управлением сервера Ubuntu версии 16.04 (дистрибутив данной или более новой версии доступен по ссылке).

Для описания процесса интеграции и настройки взаимодействия будем рассматривать схему, приведённую на рисунке ниже.

 

Рисунок 30. Логическая схема взаимодействия компонентов

Логическая схема взаимодействия компонентов

В качестве VPN-сервера выступает шлюз межсетевого экранирования CheckPoint R80.30.

Начальная настройка сервера Ubuntu

Шаг 1. Установите сервер с настройками по умолчанию. После установки убедитесь, что сервер имеет доступ в интернет.

Шаг 2. Выполните конфигурацию сетевого интерфейса и установите корректные настройки времени. Авторизуйтесь под учётными данными, которые были заданы при установке, и выполните конфигурацию.

Пример конфигурации. Файл /etc/network/interfaces:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto ens160
#iface lo inet loopback
iface ens160 inet static
address 10.X.X.123
netmask 255.255.255.0
network 10.X.X.0
broadcast 10.X.X.255
gateway 10.X.X.1
dns-nameservers 8.8.8.8 8.8.4.4

Пример настройки часового пояса:

# timedatectl set-timezone Europe/Moscow
# service ntp restart

Выполните повторную перезагрузку:

# sudo reboot now

Шаг 3. Дополнительно необходимо установить службы:

ntp;
build-essential;
libpam0g-dev;
freeradius;
git;
libqrencode3;
libpam-google-authenticator.

Настройка RADIUS-аутентификации в политике безопасности Check Point

Шаг 4. Необходимо, чтобы на межсетевом экране были разрешены следующие взаимодействия: доступ с вашего ПК к серверу Ubuntu, доступ Ubuntu в интернет для обновления и установки приложений, доступ Ubuntu к NTP-серверу.

Шаг 5. Создайте хост-объект для сервера FreeRADIUS.

 

Рисунок 31. Создание хост-объекта FreeRADIUS

Создание хост-объекта FreeRADIUS 

 

Шаг 6. Создайте объект RADIUS-сервера (правое меню в SmartConsole: «New» → «More» → «Server» → «More» → «RADIUS») с указанием значения «Shared secret». Такое же значение «Shared secret» необходимо задать в настройках FreeRADIUS на шаге 13.

 

Рисунок 32. Создание объекта RADIUS

Создание объекта RADIUS

 

Шаг 7. В настройках шлюза выберите «VPN clients», затем — «Authentication».

Примечание: В данном примере был настроен единственный метод аутентификации с использованием RADIUS. Также можно настроить различные методы через «Multiple authentication settings», добавив необходимые варианты с помощью кнопки «Add». Эта технология поддерживается в Mobile Access Portal и в последних версиях клиентов для конечных точек: 

  • Capsule VPN;
  • Capsule Workspace — iOS 10.02.2 и выше; 
  • Capsule Workspace for Android — версия 7.1 и выше;
  • Remote Access VPN Blade of the Endpoint Security Suite (Windows) — версия E80.65 и выше;
  • Endpoint Security VPN (Windows) — версия E80.65 и выше;
  • Check Point Mobile for Windows — версия E80.65 и выше;
  • SecuRemote (Windows) — версия E80.65 и выше.

Установите флажок «Allow older clients to connect to this gateway» (необходимо для того, чтобы удалённые пользователи, подключавшиеся раньше другими методами, смогли выбрать в приложении метод аутентификации и указать «Standard», применив тем самым настройки RADIUS), а затем нажмите «Settings». После этого выберите метод аутентификации «RADIUS» согласно шагу 6.

 

Рисунок 33. Настройка метода аутентификации

Настройка метода аутентификации

 

Установка FreeRADIUS и Google Authenticator (генератор QR-кодов)

Шаг 8. Подключитесь к серверу Ubuntu по SSH. В настройках сессии необходимо указать достаточный размер окна для того, чтобы мог быть отображен QR-код.

 

Рисунок 34. Настройка подключения по SSH

Настройка подключения по SSH

 

Шаг 9. Установите FreeRADIUS и Google Authenticator:

# sudo apt-get install build-essential libpam0g-dev freeradius git libqrencode3
# sudo apt-get install libpam-google-authenticator

Шаг 10. Выполните настройку FreeRADIUS для обеспечения второго фактора с использованием Google Authenticator:

# sudo addgroup radius-disabled
# sudo nano /etc/freeradius/radiusd.conf

Найдите группы:

user = freerad
group = freerad

Закомментируйте эти записи и вставьте:

user = root
group = root

Это необходимо для того, чтобы по умолчанию FreeRADIUS использовал учётную запись с правами администратора и не было проблем с доступом.

Шаг 11. Введите команду:

# sudo nano /etc/freeradius/users

Найдите следующую запись:

#Deny access for a group of users.
#Note that there is NO 'Fall-Through' attribute, so the user will not
#be given any additional resources.

Введите под этим блоком:

DEFAULT Group == "radius-disabled", Auth-Type := Reject
Reply-Message = "Your account has been disabled."
DEFAULT Auth-Type := PAM

Шаг 12. Настройте PAM для комбинирования пользовательских паролей и PIN-кодов, генерируемых Google Authenticator:

# sudo nano /etc/freeradius/sites-enabled/default
#Pluggable Authentication Modules.
#                pam
                  pam
# sudo nano /etc/pam.d/radiusd

Приведите файл к следующему виду:

# /etc/pam.d/radiusd - PAM configuration for FreeRADIUS
#
# We fall back to the system default in /etc/pam.d/common-*
#
#@include common-auth
#@include common-account
#@include common-password
#@include common-session
auth requisite pam_google_authenticator.so forward_pass
auth required pam_unix.so use_first_pass

Шаг 13. Выполните настройку:

#sudo nano /etc/freeradius/radiusd.conf
# auth = no auth = yes
# Log passwords with the authentication requests.
# auth_badpass - logs password if it's rejected
# auth_goodpass - logs password if it's correct
#
# allowed values: {no, yes}
#
auth_badpass = no
auth_goodpass = no

Шаг 14. Настройка клиентов FreeRADIUS.

Клиенты — рабочие станции и серверы, которые проходят аутентификацию через RADIUS.

Выполните:

# sudo nano /etc/freeradius/clients.conf

В конец файла необходимо добавить информацию о клиентах аналогично примеру ниже:

client 10.X.X.5 {
secret = secret
shortname = CPSG
}
#
client 10.X.X.138 {
secret = secret
shortname= endpoint
}

«CPSG» — это VPN-шлюз Check Point, «endpoint» — рабочая станция, подключающаяся к шлюзу по VPN с использованием Check Point Mobile.

Шаг 15. Настройка пользователей FreeRADIUS.

Процесс состоит из следующих шагов:

  1. Добавление пользователя.
  2. Переход в домашнюю директорию пользователя.
  3. Смена владельца сессии — переход в сессию вновь созданного пользователя.
  4. Создание токена Google Authenticator.
  5. Установка параметров Google Authenticator.
  6. Регистрация Google Authenticator с использованием QR или секретного кода.
  7. Выход из пользовательской сессии. 
  8. Рестарт процесса FreeRADIUS.

Процесс настройки приведён ниже (см. рис. 35).

 

Рисунок 35. Данные, выводимые программой в процессе настройки пользователей FreeRADIUS

Данные, выводимые программой в процессе настройки пользователей FreeRADIUS

 

QR-код, изображённый на иллюстрации выше, доступен лишь до конца сессии. Если есть потребность в том, чтобы воспользоваться QR-кодом позднее, то необходимо сохранить ссылку, которая находится непосредственно над ним (в нашем случае — https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/cpmonitor@fru%3Fsecret%3DZLVQMR7ZTCRP24LZGRL3WQOWRQ%26issuer%3Dubuntu).

Работа мобильного приложения

Шаг 16. В мобильном приложении, которое бесплатно можно скачать на любое мобильное устройство, нужно отсканировать QR-код (иконка «+»), после чего в приложении каждые 30 секунд будет генерироваться 6-значный пароль, который нужно будет вводить после пароля пользователя при подключении с помощью Check Point Mobile.

 

Рисунок 36. Мобильное приложение Google Authenticator

Мобильное приложение Google Authenticator

 

Шаг 17. Проверить работу RADIUS непосредственно на сервере Ubuntu для данного пользователя можно следующей командой:

# radtest endpoint <passwd><g-auth-code> localhost 18120 testing123
Sending Access-Request of id 104 to 127.0.0.1 port 1812
User-Name = "cpmonitor"
User-Password =
"<unix_password>493895" NAS-IP-Address =
127.0.1.1
NAS-Port = 18120
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=104, length=20

Шаг 18. После выполнения всех вышеперечисленных операций можно подключаться, используя 6-значный код из приложения Google Authenticator.

 

Рисунок 37. Подключение VPN-клиента

Подключение VPN-клиента

 

Шаг 19. Убеждаемся в том, что аутентификация проходит через FreeRADIUS.

 

Рисунок 38. Успешное подключение

Успешное подключение

 

Выводы

В текущих реалиях высокого запроса на защищённые удалённые подключения вопрос обеспечения безопасности ощущается особо остро. Рассмотренные в статье методы организации мультифакторной аутентификации помогут администратору настроить инфраструктуру Check Point для использования второго фактора при удалённом подключении пользователей.

Решения от Google и Microsoft не являются единственным выбором при настройке мультифакторной аутентификации, но в силу широкого распространения могут быть востребованы во многих организациях. К тому же общий принцип настройки остаётся неизменным вне зависимости от конкретной реализации.

Авторы:

Наиль Насыбуллин, инженер отдела защиты информации, группа компаний «InnoSTage»

Марат Нурмухаметов, ведущий инженер отдела защиты информации, группа компаний «InnoSTage»

Полезные ссылки: 
Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru