Содержание

Двухфакторная аутентификация на Windows Server 2012

Открывать RDP для всего мира довольно чревато - какая-нибудь зараза вполне может подобрать пароль. С другой стороны, использовать VPN тоже далеко не всегда удобно (если нужно подключить пользователя быстро или он не хочет/не может устанавливать дополнительное ПО или настраивать всякие PPTP/L2TP/etc).

Одно из решений - двухфакторная аутентификация.

Есть много решений - платных и открытых. Минусы платных (например https://duo.com/) - привязка к сервису, сервер должен иметь доступ к интернету, стоимость как самого сервиса так и звонков/СМС и т.д.

Поэтому данное решение я делаю на основе MultiOTP. Это крайне мощная штука, много чего умеет - Windows, Hyper-V, VMWare, RADIUS и совместима практически со всем. Минус на мой взгляд только один: добавление пользователей не очень удобное.

Настройки времени

Время на сервере и вашем устройстве (телефон, компьютер) должно совпадать, иначе ключи будут генерироваться неверно!

Внимание

При установке необходимо все сделать аккуратно и внимательно, в противном случае придется загружаться в безопасный режим!

Установка MultiOTP

Создание пользователя MultiOTP

Включаем двухфакторную аутентификацию в Windows

Качаем нужный пакет отсюда (x32 или x64): https://github.com/LastSquirrelIT/MultiOneTimePassword-CredentialProvider

Устанавливаем, при установке включаем «Default provider», указываем путь до нашей папки с MultiOTP (в моем случае это C:\MultiOTP), заполняем «Login Text» (например «Введите логин, пароль и одноразовый код»)

Устанавливаем аутентификатор

Для генерации OTP-паролей необходимо установить аутентификатор - это может быть плагин для браузера (Google Chrome: Authenticator) или отдельное приложение на Android (приложение «Google Authenticator») или iOS.

Запускаем аутентикатор, создаем новый аккаунт: вводим понятное название и ранее созданный ключ (у меня это «27s3zdwvvjedor4n»), тип ключа: «По времени» (Time Based)

Тестируем

Подключаемся, вводим логин, пароль и полученный ключ OTP. Если все сделано правильно - попадаем на сервер.