====== Двухфакторная аутентификация на Windows Server 2019 ======
С момента написания прошлой заметки [[software:microsoft:2012-otp|Двухфакторная аутентификация на Windows Server 2012]] процедуру установки и настройки упростили, теперь все можно делать быстрее и проще.
Открывать RDP для всего мира довольно чревато - какая-нибудь зараза вполне может подобрать пароль. С другой стороны, использовать VPN тоже далеко не всегда удобно или возможно по разным причинам.
Одно из решений - двухфакторная аутентификация.
Мне нравится multiOTP - это крайне мощная штука, много чего умеет - Windows, Hyper-V, VMWare, RADIUS и совместима практически со всем.
Время на сервере и вашем устройстве (телефон, компьютер) должно совпадать, иначе ключи будут генерироваться неверно!
При установке необходимо все сделать аккуратно и внимательно, в противном случае придется подключаться локально консолью или загружаться в безопасный режим!
===== Установка multiOTP =====
Примечание: продукт очень быстро допиливают, в более новых версиях процедура установки может немного различаться
* Качаем и устанавливаем VisualC++ (x86 и x64) с сайта Microsoft: https://aka.ms/vs/16/release/vc_redist.x64.exe и https://aka.ms/vs/16/release/vc_redist.x86.exe
* Загружаем multiOTP с сайта https://github.com/multiOTP/multiOTPCredentialProvider/releases (есть еще полная версия тут: https://download.multiotp.net/ но в нее понапихано много лишнего)
* Устанавливаем, заполняем следующим образом поля настроек:
* Первый экран
* **multiOTP Login Title**: приветственная фраза которая будет написана на экране входа в систему
* **URL of your multiOTP server(s), separated by semi-colons**: удаляем все, поле должно быть пустым
* **No remote server, local multiOTP only**: - включено
* **Secret shared with your multiOTP server(s)**: удаляем все, поле должно быть пустым
* Второй экран
* **OTP authentication mandarity for remote desktop only** - выбрано, т.к. требуется проверка только для подключений по RDP
* **Enable cache support on this machine if authorized by the server(s)** - включено
* Третий экран: Next -> Install
На этом установка закончена. На это этапе желательно НЕ ПЕРЕЗАГРУЖАТЬ сервер, требуется добавить хотя бы одного пользователя с административными правами.
Далее добавляем ВСЕХ пользователей, которым нужен доступ по RDP по описанной выше процедуре. Если пользователь присутствует в системе но не добавлен в multiOTP - он не сможет удаленно подключиться. При настройке **OTP authentication mandarity for remote desktop only** пользователи могут входит в систему локально с консоли.
===== Управление пользователями =====
При добавлении пользователя создается персональный файл настроек (в моем случае это C:\Program Files (x86)\multiOTP\users\) с расширением db, представляющий обычный текстовый файл в формате "ключ/значение". Если пользователь многократно неверно вводит пароль и ключ авторизации, то блокируется не windows-пользователь, а именно аккаунт multiOTP (параметр locked). Вручную его можно разблокировать изменив locked=1 на locked=0
==== Добавление пользователей ====
* Создаем в системе нового пользователя (или будем использовать уже существующего)
* Открываем консоль, переходим в папку с multiOTP (в моем случае это C:\Program Files (x86)\multiOTP)
* Создаем секрет для этого пользователя: multiotp.exe -fastcreatenopin ИМЯ_ПОЛЬЗОВАТЕЛЯ
* Создаем QR-файл для добавления в аутентификатор: multiotp.exe -qrcode ИМЯ_ПОЛЬЗОВАТЕЛЯ QR_ИМЯ_ПОЛЬЗОВАТЕЛЯ.png
* Открываем аутентификатор (например Google Authenticator) и сканируем полученный QR-код
==== Отключение/блокировка пользователей и включение обратно ====
multiotp -[des]activate user
multiotp -[un]lock user
==== Удаление пользователя ====
multiotp -delete user
multiotp -user-info user
===== Устанавливаем аутентификатор =====
Для генерации OTP-паролей необходимо установить аутентификатор - это может быть плагин для браузера (Google Chrome: Authenticator) или отдельное приложение на Android (приложение "Google Authenticator") или iOS.
Запускаем аутентикатор, создаем новый аккаунт: нажимаем "Добавить", выбраем QR-код, сканируем полученный код
===== Тестирование =====
Тестируем вход под добавленными пользователями, все должно быть Ок.
Примечание: если компьютер не в домене, указывайте имя пользователя в формате SERVER\Username
===== Удаление multiOTP =====
Отключить multiOTP можно удалением программы через Панель управления или импортировав файл реестра: https://download.multiotp.net/credential-provider/multiOTPCredentialProvider-unregister.reg
Если потеряли возможность войти в систему - необходимо войти локально под пользователем (как вариант - в безопасном режиме).
===== Замена логотипа =====
Для логотипа используется файл loginLogo.bmp в папке с multiOTP (в моем случае это C:\Program Files (x86)\multiOTP)
Разрешение: 128х128, формат bmp
{{tag>2019 windows_server OTP multiotp two-factor_authentication двухфакторная_аутентификация двухфакторная_авторизация MultiOTP}}