51111111111Rating 5.00 (3 Votes)
multiotp provider install3
 
На днях озадачился вопросом в отношении одноразового пароля, мультифакторной / двухфакторной аутентификацией в Windows. Что по факту - нужно при входе в Windows помимо пароля пользователя вводить дополнительный пароль из Google Authenticator. Итак, что нужно:
  • Загрузить со страницы проекта MultiOTP последнюю версию MultiOTP
  • Загрузить со страницы MultiOneTimePassword-CredentialProvider собственно провайдер
  • На Windows машине настроить NTP синхронизацию (синхронизацию с интернет тайм-сервером)

Установка MultiOTP

  • Необходимо создать папку (например с именем MultiOTP или просто OTP) в любом удобном месте, например на диске c:\ или в %programfiles%
  • Скопировать папку windows из содержимого архива multiotp_*** в созданную папку
  • Открыть командную строку от имени администратора, перейти в папку, для примера запустить help:
cd c:\MultiOTP
multiotp.exe -help

Предварительные настройки, отключение пина, включение вывода:

multiotp.exe -debug -config default-request-prefix-pin=0 display-log=1

Изменение имени провайдера (можно указать например имя своей компании или компьютера):

multiotp.exe -debug -config issuer="Sys-Adm.in"

Генерация ключей MultiOTP

Так как я работаю на Linux, то и ключи буду генерировать в Linux, для начала нужно создать 160-битный hex ключ, я создаю ключ в 20 символов так:
for i in $(seq 1 20); do echo -n $(echo "obase=16; $(($RANDOM % 16))" | bc); done; echo
После конвертнуть его в base32 (спасибо за подсказку @determination):
echo `echo MYKEY | xxd -r -p | base32`
  1. Первый ключ - нужен для MuliOTP в момент создания пользователя
  2. Второй - для Google Auth

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

Далее создаем пользователя Windows:
net user /add testuser user-password
Создаем пользователя MultiOTP:
multiotp.exe -debug -create testuser TOTP HEX-KEY 6
Создаем QR картинку для пользователя:
multiotp -qrcode testuser > c:\MultiOTP\users\testuser.png

Установка OTP провайдера

Устанавливаем MultiOneTimePasswordCredentialProviderSetup-*** в процессе установки необходимо включить параметр Default Provider
 
multiotp provider install
 
Указать путь к папке MupliOTP
 
multiotp provider install2

Установка / Использование Google Auth

  • Установить Google Authenticator из Google Play / Иного репозитория
  • Добавить ключ, который конвертили в base32 или отсканировать QR код

Проверка OTP перед выходорм из системы

Перед выходом из системы, обязательно проверям работоспособность:
multiotp.exe -display-log testuser GOOGLE-AUTH-KEY
В результате должно появиться сообщени об успешной проверке:
LOG 2018-02-08 notice (user testuser) User OK: User testuser successfully logged in with TOTP token
Совершаем выход из системы, проверяем. Done!

Решение проблем

  • Если OTP сломался, грузимся в безопасный режим (F4 > F8 в момент загрузки ОС)
  • В безопасном режиме функционал OTP отключается, там же решаем проблемы
Если OTP был создан только для одного пользователя, то вход можно осуществить только под ним, поэтому либо он должен быть админом на компе, либо нужно для Администора создать OTP

Облегчение жизни Linux админу

После всех манипуляций написал bash скрипт который сводит все действия на нет, при этом пишет лог по создаваемым пользователям. Результат работы скрипта выглядит примрно так:
 
multiotp provider install4
 
В результате:
  • System key (наш HEX)
  • GA (Google Auth)
  • Подсказка, как создать юзера в Windows + сгенерированный пароль
  • Подсказка, как сбросить пароль Windows (на случай если тебе пароль покажется слишком сложным)
  • Команда создания MultiOTP юзера, достаточно скопи-пастить
  • Команда проверки
  • Команда генерации QR
  • Сам скрипт на GitHub
Есть вопросы? Иди на форум или сюда

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


Защитный код
Обновить

Сейчас 155 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз