Попытки настроить двухфакторную аутентификацию в Windows среде

Как в ОС Windows реализовать двухфакторную аутентификацию? Вот пришли мы как-то к такому вопросу и решено было проанализировать несколько разных типов решений. Из более интересных сразу были выделены нативное на базе Windows Hello сервиса + облачная 2FA для администраторов, а так же решение от RCDevs которое поддерживает вроде как целую кучу плюшек, но на деле все оказалось не так радостно, об этом как раз ниже.

Двухфакторная аутентификация с помощью Windows Hello

Плюсы решения Windows hello:

  1. Более простая и удобная установка и настройка (по сути все уже есть, надо лишь это включить через политики)
  2. Возможность интеграции с EMS Intune
  3. Не требуется узобретать велосипеды

Из минусов хочу отметить такие моменты как:

  1. Если не брать в расчет смарт карты, то оставался вариант с пин кодом, а пин в свою очередь не самое надежное решение в отличии от OTP кодов (OTP — One Time Password)
  2. Не подходит для интеграции с Linux системами (хотя, там было еще одно интересное решение для линуксов, на базе open source проекта, с гитхаба)
  3. Если речь заходила об аутентификации аля биометрической с помощью пальцев или камеры — работало через раз (ну это грубо говоря)

По вот тому набору пунтиков выше было решено отказаться от релазиации с Windows Hello. К тому же, там была отдельная аутентификация для администраторов в облаке Office 365, но это не самая большая проблема. С большего не понравилось решение с пин кодом, потому как он постоянно один и тот же и особого отличия от обычного пароля по факту не было бы.

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

А вот теперь давайте поговорим о более интересном, установке и настройке решения по 2FA от компании RCDevs. У них решение довольно универсальное и подходит не только для Windows ПК или серверов, но так же и под линукс платформы, есть возможность интеграции с веб-сайтами (имеется ввиду CMS), некоторыми облачными сервисами и еще какие-то там плюшки. Кроме того, до 50 юзеров в комплекте шли бесплатно!

Смотрите так же   Настраиваем VPS на Debian Ubuntu - часть 1

Пробовал развернуть их приложение с нуля, как то не особо получилось, возможно из-за кучи заморочек с настройкой LDAP конфигов и разных «тонкостей» данной настройки введенной данным вендором, по этому после первого провала в «ручной» установке с нуля, было принято решение просто развернуть их виртуальный аплаинс (с их сайта можно скачать образ для импорта в VMWare или VirtualBox), поверьте — так будет гораздо проще, особенно если недо протестировать, ну и под это дело можно провести сверку конфигов, выявить ошибки, сделать по более живому примеру.

Еще одной проблемой считаю, отсутствие актуальной документации в нужных объемах. Вообще доков вроде бы хватает, они простые, но не все актуальные и подходят под последнии версии данной приблуды, а по некоторым вопросам доков и вовсе нет. Конечно же, еще есть видео на youtube которое тоже в какой-то степени что-то объясняет, но так, по мелочи.

Чтож, после того как скачали и развернули виртуальный инстанс пришла пора все это дело настраивать. Заходим в приложение, первый вход осуществляется с соблюдением всей структуры AD в LDAP (указываем контейнер, группу и юзера), попадаем в веб-морду.

rcdevs-2fa-1

Далее если вы устанавливали сами с нуля, то требуется докачивать, доставлять и включать все требующиеся модули по очереди, в случае если все же пошли по пути наименьшего сопротивления, то требуется лишь выполнить пару кликов в админке чтобы активировать нужные модули.

На главной страничке после логина там где указано «Not registered» регистрируем и включаем:

  1. MFA Authentication Server
  2. Single Sign-On Server
  3. SSH Public Key Server
  4. QR Login & Signing Server

Включал не все, т.к. для тестирования с большего интересовала лишь аутентификация по QR коду.

Смотрите так же   Где можно получить бесплатные SSL сертификаты

Далее заходим в Admin -> Local Domains и указываем путь к нужному контейнеру, где у нас будут все юзеры у которых хотели бы видеть двухфакторную аутентификацию. Можно конечно и не группами работать, а выдавать данную «привилегию» в индивидуальном порядке через настройки пользователя.

rcdevs-2fa-2

Выбираем юзера и далее заходим в MFA Authentication Servers, там выбираем Register / Unregister OTP Token, забиваем все данные, фоткаем QR Code через Google Authenticator и идем дальше.

rcdevs-admin-panel

Нам нужно будет выбрать метод логина пользователя: LDAP, OTP или кримеру LDAPOTP — это когда сразу вводишь доменные креды, а после еще добавочный одноразовый код который сгенерирует приложения гугла.

rcdevs-2fa-3

После этого, все сохраняем, немного ждем, пока ждем (приминения политик), то качаем модуль Windows Logon от RCDevs для того, чтобы двухфакторная аутентификация заработала на нашей системе. Приложение ставится локально. Из минусов — если у вас при загрузке экрана блокировки Windows на левой нижней панельке выводится список ранее заходивших пользователей, то это помогает обойти данную меру защиты и вы можете войти просто по доменному паролю без каких либо дополнительных кодов.

Выглядит это как-то так:

2fa-login-fail

Довольно странно, правда? Но это можно зафиксить конечно же. В настройках безопасности в AD требуется просто отключить функцию показа истории залогиненых юзеров и оно должно прокатить. Я честно говоря самостоятельно не тестировал, ответа на вопрос «как это поправить» на официальном сайте разработчиков сие чуда так же нет, но попробовать как минимум стоит.

Сам же логин с двухфакторкой выглядит так:

2fa-login-work

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

Смотрите так же   Настройка связки nginx + php-fpm

А вот при реализации данного подхода по RDP возникли трудности и пришлось немного еще поколупаться, потому как я не Windows администратор и сходу решить все не получилось. В случае если вам нужно использовать данную фичу по RDP то потребуется включить службу RDS и поднять RDWeb (который в свою очередь требует дополнительные лицензии мелкомягких), по этому от данного солюшена было решено отказаться, слишком топорно и много хлопот.

Для поднятия RDS и RDWeb Access я выполнял следующие манипуляции из гайдов и других блогов, но удобнее всего оказалось простенькое и полезное видео с ютубчика в котором по шагам все четно и понятно показывается. Конечно же, хардкорчик никто не отменял и можно пойти другим путем, к примеру воспользовавшись этим и/или этим гайдами.

2fa-rds-fail-1

Тонкости пересказывать не буду, там и так все будет понятно. Если кратко то суть в том, чтобы на сервере поднять сервис удаленного рабочего стола, настроить разделение сессий и работу через RDWeb в который можно добавлять как приложения по отдельности, так и линк на RDP сессию. Вот такие танцы с бубном, чтобы у нас RDP работало через 2FA.

2fa-rds-fail-2

По итогу оно и не завелось сразу, после некоторых костылей получилось вроде бы, но сути это не меняет — данное решение топорное. Хотя я не отрицаю, что для других примеров использования оно подойдет идеально — к примеру защитить ваш веб-сайт или приложение двухфакторкой, ведь поддерживается такая CMS как WordPress ну и до кучи всего остального, лучше список глянуть на сайте вендора.

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

Может быть интересно:

Добавьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *