- Двухфакторная аутентификация для терминальных серверов
- Используемые продукты
- Установка multiOTP
- Настройка Google Authenticator
- Установка MultiOneTimePassword-CredentialProvider
- Результаты
- Установка multiOTP сервера с использованием LDAP
- !!ВАЖНО!!
- Установка multiOTP-CredentialProvider
- Добавить комментарий Отменить ответ
- Настройка двухфакторной аутентификации на сервере Windows со службой RD Gateway
- Двухфакторная аутентификация на Windows Server 2019
- Настройки времени
- Внимание
- Установка multiOTP
- Устанавливаем аутентификатор
- Тестирование
- Удаление multiOTP
Двухфакторная аутентификация для терминальных серверов
Грамотный подход к обеспечению IT безопасности в плане авторизации на своих серверах внутри компании и за ее пределами, подразумевает целый ряд мер, таких как: обеспечение уникальности имени пользователя, требований сложности и плановую замену пароля, неразглашение учетных данных сторонним лицам и т.д. Но зачастую бывает так, что пользователь быстро забывает про все это, и для своего удобства вешает бумажку с логином и паролем на видном месте, например, на своем мониторе. Что может оказаться вполне удобным для злоумышленника, желающего получить доступ к данным.
Конечно, существует целый ряд мер, в том числе административных, чтобы данная ситуация не привела к утечке информации. Мы же рассмотрим другой подход.
Радикальным решением является применение двухфакторной аутентификации, основанной на генерации одноразовых паролей.
Одноразовый пароль (англ. one time password, OTP) это пароль, действительный только для одного сеанса аутентификации.
Преимущество одноразового пароля по сравнению со статическим состоит в том, что пароль невозможно использовать повторно. Таким образом, злоумышленник, перехвативший данные из успешной сессии аутентификации (или прочитал с бумажки), не может использовать скопированный пароль для получения доступа к защищаемой информационной системе.
Используемые продукты
В качестве примера, рассмотрим реализацию внедрения OTP пароля, основанном на проекте multiOTP – опенсорсовом софте PHP, умеющим работать на стандартных алгоритмах, которые хорошо себя зарекомендовали в индустрии обеспечения многофакторной аутентификации (HOTP, TOTP, OCRA).
Для обеспечения дополнительного поля ввода OTP пароля в окне входа в систему Windows будем использовать плагин MultiOneTimePassword-CredentialProvider.
Пользователь будет генерировать одноразовые пароли у себя на мобильном устройстве с помощью Google Authenticator.
Установка multiOTP
Скачиваем продукт multiOTP и размещаем содержимое папки windows (из скачанной директории) в корень системного диска: C:\multiotp.
Вся настройка происходит через командную строку. Запускаем CMD от имени администратора и переходим в нашу директорию:
Далее приводится список команд для настройки и синхронизации сервиса multiOTP с Active Directory:
- C:\multiotp>multiotp -config default-request-prefix-pin=0
Ввод ПИН-кода по умолчанию, при создании новых пользователей (1 | 0)
- C:\multiotp>multiotp -config default-request-ldap-pwd=0
Использование пароля Active Directory вместо ПИН-кода по умолчанию(1 | 0)
- C:\multiotp>multiotp -config ldap-server-type=1
Выбор сервер AD/LDAP (1=Active Directory | 2=standart LDAP )
- C:\multiotp>multiotp -config ldap-cn-identifier=»sAMAccountName»
CN идентификатор пользователя (sAMAccountName, eventually userPrincipalName)
- C:\multiotp>multiotp -config ldap-group-cn-identifier=»sAMAccountName»
CN идентификатор группы (sAMAccountName for Active Directory)
- C:\multiotp>multiotp -config ldap-group-attribute=»memberOf»
Атрибут, определяющий принадлежность к группе
Использование SSL соединения по умолчанию (0 | 1)
- C:\multiotp>multiotp -config ldap-port=389
Порт подключения (389 = standart | 636 = SSL connection)
- C:\multiotp>multiotp -config ldap-domain-controllers=servilon.com,ldaps://192.168.254.10:389
Указываем сервер(а) Active Directory
- C:\multiotp>multiotp -config ldap-base-dn=»DC=SERVILON,DC=COM»
Указываем суффикс домена
- C:\multiotp>multiotp -config ldap-bind-dn=»CN=Administrator,CN=Users,DC=servilon,DC=com»
Аккаунт, под которым подключаемся к AD DS.
- C:\multiotp>multiotp -config ldap-server-password=»P@$$w0rd»
Пароль, под которым подключаемся к AD DS.
- C:\multiotp>multiotp -config ldap-in-group=»OTP»
Группа, пользователи которой будут использовать OTP для входа на сервер.
- C:\multiotp>multiotp -config ldap-network-timeout=10
Таймаут ожидания синхронизации в секундах.
- C:\multiotp>multiotp -config ldap-time-limit=30
Таймаут смены OTP пароля на новый.
- C:\multiotp>multiotp -config ldap-activated=1
Включение поддержки AD/LDAP сервисом multiotp.
- C:\multiotp>multiotp -debug -display-log -ldap-users-sync
Синхронизация пользователей с AD/LDAP. Последнюю команду необходимо запускать каждый раз при добавлении новых пользователей или настроить в виде запуска скрипта по расписанию.
Если все команды введены корректно и сервер AD/LDAP доступен, то последняя команда должна показать синхронизацию и создание новых пользователей для сервиса multiotp:
Настройка Google Authenticator
Теперь необходимо передать уникальный ключ пользователя на устройство пользователя. Удобней всего это сделать через QR код. Для этого нам необходимо установить web-server который нам поможет в просмотре и регистрации пользователей. Просто заходим в папку multiotp и запускаем webservice_install.cmd, после чего должен открыться браузер с консолью администрирования. После входа, мы можем создать нового локального пользователя или просмотреть список существующих, что весьма полезно:
Но самое главное, вэб-консоль поможет нам зарегистрировать пользователя на мобильном устройстве. Нажимаем “Print” в строке необходимого пользователя и на новой вкладке мы видим QR код, сгенерированный для данного пользователя:
Сканируем полученный QR код с помощью Google Authenticator. Регистрация завершена.
Как видите все просто, можно например, переслать QR код пользователю почтой и он сам справится с регистрацией. Если все прошло успешно, та на экране мобильного устройства будет доступен OTP пароль, который обновляется каждые 30 секунд:
Установка MultiOneTimePassword-CredentialProvider
Теперь необходимо указать нашему серверу Terminal дополнительно использовать OTP пароль при аутентификации пользователя. Для этого запускаем ранее скачанный установщик MultiOneTimePassword-CredentialProvider, где нам требуется лишь указать установку Default Provider и папку с сервисом multiotp:
Важно! После установки CredentialProvider, пользователи, которые не получили настройку OTP не смогут зайти на сервер. Поэтому необходимо позаботится чтобы у учетной записи администратора был также настроен OTP пароль.
Результаты
Теперь наш сервер Terminal получил дополнительный уровень безопасности в виде внедрения OTP пароля на базе бесплатного решения проекта multiOTP и multiOTP-Credential Provider.
Данное решение вполне можно развернуть и на самом ПК пользователя, выставив барьер для злоумышленника при попытке входа на рабочем месте сотрудника.
Если вы хотите настроить двухфакторную аутентификацию или провести аудит ИТ безопасности в компании с нашей помошью – отправьте нам сообщение. Мы свяжемся с вами, чтобы уточнить детали.
Установка multiOTP сервера с использованием LDAP
1.Скачиваем multiOTP и CredentialProvider тут.
(В архиве находятся версии под Linux, Raspberry и Windows, инструкция базируется на Win.)
2. Папку “windows” распаковываем где-нибудь на диске.
3. Далее открываем cmd с правами админа, указав путь до multiotp.exe, вставим туда следующую конфигурацию:
Где multiotp -config ldap-bind-dn= нужно указать УЗ, которая подключится Active Directory
А здесь, multiotp -config server-secret=, указываем секретное слово для подключения к серверу miltiOTP
!!ВАЖНО!!
При добавлении новых учетных записей в Active Directory, нужно повторно выполнить команду
multiotp -debug -display-log -ldap-users-sync
Стоит создать запланированную задачу, которая будет проверять наличие новых пользователей автоматически.
4. В этой же папке ищем исполняемый файл webservice_install.cmd и запускаем с правами администратора, нас перекинет на веб-интерфейс.
Не забудь сменить пароль:)
5. Залогинившись, видим список всех УЗ домена, нажимаем print возле учетки, которую хотим настроить.
Для аутентификации можно использовать мобильные решения от Microsoft, Google или любое другое.
Для этого можно считать второй QR код или вписать seed с устройства владельца УЗ.
Установка multiOTP-CredentialProvider
Для того чтобы всё это начало работать, установим CredentialProvider.
- Указываем IP сервера, на котором был установлен multiOTP.
В нижнее поле впишем секретное слово из конфигурации multiOTP.
2. Включим требуемые настройки.
3. Next >> Install
4. Проверить корректность работы 2fa для настроенного пользователя
На этом настройка двухфакторной авторизации окончена.
Собственно сам результат:
Подробнее о всех features и конфигах multiOTP можно найти тут.
!!ВАЖНО!!
Для сервера multiOTP стоит создать локального пользователя с правами администратора с параметром (), на всякий случай, чтобы можно было попасть на сервер, если multiOTP перестанет работать. Или же оставить любые другие backdoor-ы, которые будут более надежными, по Вашему мнению.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
Настройка двухфакторной аутентификации на сервере Windows со службой RD Gateway
В статье описывается настройка Windows сервера для включения двухфакторной аутентификации при подключении удаленного рабочего стола (RDP) со службой RD Gateway.
RD Gateway — компонент Windows сервера, позволяющий подключаться к рабочему столу через шлюз, который выполняет функции VPN, а именно создает зашифрованное подключение по протоколу TLS.
Применимо к версиям:
- Windows Server 2012 R2
- Windows Server 2016
- Windows Server 2019
Возможные способы аутентификации:
- Мобильное приложение MultiFactor
- Telegram
- Звонок (нужно принять вызов и нажать #)
- Пользователь подключается к удаленному рабочему столу через шлюз RD Gateway;
- RD Gateway проверяет логин, пароль, политику авторизации ресурсов (RAP) и переадресовывает запрос в Network Policy Server (NPS);
- NPS получает запрос от RD Gateway, запрашивает второй фактор аутентификации по RADIUS протоколу в компоненте MultiFactor Radius Adapter;
- Мультифактор отправляет на телефон пользователя запрос подтверждения входа;
- Пользователь подтверждает запрос в телефоне и подключается к VPN.
- настройка доступа на основе принадлежности пользователя к группе в Active Directory;
- избирательное включение второго фактора на основе принадлежности пользователя к группе в Active Directory;
- использование телефона пользователя из профиля Active Directory для звонка на мобильный телефон;
Требования к серверу
- На сервере должны быть установлены и настроены компоненты Remote Desktop Gateway и Network Policy and Access Service.
- На сервере с NPS необходимо установить компонент MultiFactor Radius Adapter.
- Для работы Мультифактора серверу необходим доступ к хосту api.multifactor.ru по порту 443 (TLS).
Настройка MultiFactor Radius Adapter
Разверните компонент MultiFactor Radius Adapter, настройте файл конфигурации следующим образом:
Придумайте сложное значение SHARED_SECRET и запишите в конфигурационный файл.
- В разделе Remote RADIUS Server Groups создайте новую группу:
- Group name: MFA
- Нажмите Add:
- Server: 127.0.0.1
- Shared secret: ранее придуманный SHARED_SECRET
- Load Balancing: поставьте таймауты по 60 секунд
- В разделе Connection Requests Policies, откройте свойства политики TS GATEWAY AUTHORIZATION POLICY:
- На вкладке Settings:
- в разделе Authentication выберите вариант Forward requests to the following remote RADIUS server group for authentication: MFA
- На вкладке Settings:
Двухфакторная аутентификация на Windows Server 2019
С момента написания прошлой заметки Двухфакторная аутентификация на Windows Server 2012 процедуру установки и настройки упростили, теперь все можно делать быстрее и проще.
Открывать RDP для всего мира довольно чревато — какая-нибудь зараза вполне может подобрать пароль. С другой стороны, использовать VPN тоже далеко не всегда удобно или возможно по разным причинам.
Одно из решений — двухфакторная аутентификация.
Мне нравится multiOTP — это крайне мощная штука, много чего умеет — Windows, Hyper-V, VMWare, RADIUS и совместима практически со всем.
Настройки времени
Внимание
Установка multiOTP
Далее добавляем ВСЕХ пользователей, которым нужен доступ по RDP по описанной выше процедуре. Если пользователь присутствует в системе но не добавлен в multiOTP — он не сможет удаленно подключиться.
Устанавливаем аутентификатор
Для генерации OTP-паролей необходимо установить аутентификатор — это может быть плагин для браузера (Google Chrome: Authenticator) или отдельное приложение на Android (приложение «Google Authenticator») или iOS.
Запускаем аутентикатор, создаем новый аккаунт: нажимаем «Добавить», выбраем QR-код, сканируем полученный код
Тестирование
Тестируем вход под добавленными пользователями, все должно быть Ок.
Удаление multiOTP
Отключить multiOTP можно удалением через Панель управления.
Если потеряли возможность войти в систему — необходимо загрузиться в безопасном режиме.