В этой статье мы покажем, как внедрить двухфакторную аутентификацию пользователей в домене Windows с помощью open source продукта multiOTP. MultiOTP эта набор php скриптов и утилит, который реализует протокол OATH для HOTP/TOTP (Time-based One Time Password). Возможно использовать как в Windows, так и через RADIUS для реализации 2FA практически в чем угодно.
После внедрения multiOTP для входа пользователя Windows будет запрашивать дополнительный одноразовый пароль (OTP – one time password), который пользователь должен получить со своего мобильного устройства (приложение Microsoft или Google Authenticator, или другого генератора OTP). Вы можете настроить двухфакторную аутенфтикацию для входа на рабочие станции Windows, или для удаленного RDP доступа к хостам RDS на Windows Server.
Установка и настройка MultiOTP в домене Active Directory
В этом разделе мы покажем, как установить MultiOTP в Windows Server 2019 и настроить синхронизацию пользователей из Active Directory.
Начнем с настройки сервера MultiOTP, который будет получать пользователей из Active Directory, генерировать уникальные QR коды для пользователей и проверять правильность второго фактора.
Создадим в Active Directory отдельную группу и добавим в нее пользователей, для которых мы будет требовать проверку второго фактора при входе в Windows. Создадим группу с помощью PowerShell:
New-ADGroup 2FAVPNUsers -path 'OU=Groups,OU=Moscow,dc=winitpro,DC=ru' -GroupScope Global -PassThru –Verbose
Добавьте пользователей в группу:
Add-AdGroupMember -Identity 2FAVPNUsers -Members kbuldogov, user1, user2
Создайте в AD нового пользователя multiotp_srv, который будет использоваться multiotp для доступа к AD (с минимальными привилегиями).
$passwd = ConvertTo-SecureString -String "P@ssw0rd!" -AsPlainText -Force
New-ADUser -Name "multiotp_srv" -SamAccountName "multiotp_srv" -UserPrincipalName "[email protected]" -Path "OU=ServiceAccounts,OU=Moscow,DC=winitpro,DC=ru" –AccountPassword $passwd -Enabled $true
Скачайте архив с файлами MultiOTP с сайта разработчиков https://download.multiotp.net/.
Откройте архив multiotp_5.8.2.9.zip и извлеките из него каталог windows в папку на локальном диске (C:\MultiOTP).
Откройте командную строку и перейдите в каталог с утилитой multiotp.exe:
CD C:\MultiOTP\windows
Следующими командами мы настроим MultiOTP для получения пользователей из LDAP каталога Active Directory.
multiotp -config default-request-prefix-pin=0
multiotp -config default-request-ldap-pwd=0
multiotp -config ldap-server-type=1
multiotp -config ldap-cn-identifier="sAMAccountName"
multiotp -config ldap-group-cn-identifier="sAMAccountName"
multiotp -config ldap-group-attribute="memberOf"
multiotp -config ldap-ssl=0
multiotp -config ldap-port=389
REM Адрес контроллера домена
multiotp -config ldap-domain-controllers=msk-dc03.winitpro.ru,ldap://192.168.13.10:389
multiotp -config ldap-base-dn="DC=winitpro,DC=ru"
REM Учетная запись для аутентификации multiotp в AD:
multiotp -config ldap-bind-dn="CN=multiotp_srv,OU=ServiceAccounts,OU=Moscow,DC=winitpro,DC=ru"
multiotp -config ldap-server-password="P@ssw0rd!"
REM группа пользователей, для которых нужно включить OTP
multiotp -config ldap-in-group="2FAVPNUsers"
multiotp -config ldap-network-timeout=10
multiotp -config ldap-time-limit=30
multiotp -config ldap-activated=1
REM ключ для доступа к MultiOTP серверу
multiotp -config server-secret=secretOTP
Ранее мы создали группу 2FAVPNUsers и добавили в нее 3 пользователей. Выполните синхронизацию пользователей AD в MultiOTP.
multiotp -debug -display-log -ldap-users-sync
OG 2022-01-17 14:36:44 info LDAP Info: 3 users created, based on 3 LDAP entries (processed in 00:00:00) LOG 2022-01-17 14:36:44 debug System Info: *File created: c:\MultiOTP\windows\.\users\a.ivanov.db
В данном случае MultiOTP обнаружила трех пользователей и синхронизировала их.
multiotp -debug -display-log -ldap-users-sync
Запустите с правами администратора файл webservice_install.cmd. Это установит веб интерфейс управления MultiOTP.
Зайдите на веб-интерфейс
_http://127.0.0.1:8112/
под учётной запись admin с паролем 1234 (желательно сменить при входе).
Настройка двухфакторной аутентификации MultiOTP для пользователя домена
В разделе List of users будет доступен список пользователей домена, которые были синхронизированы ранее (источник AD/LDAP).
Выберите пользователя и нажмите Print. Перед вами появится QR код пользователя, который нужно добавить в приложение-аутентфикатор.
Установите на смартфон пользователя приложение Microsoft Authenticator (или Google Authenticator) из Google Play или App Store. Запустите его и отсканируйте QR код пользователя.
В результате в приложении появится учетная запись пользователя, в которой каждые 30 секунд генерируется новый шестизначный цифровой пароль (тот самый второй фактор).
Из командной строки можно проверить, что MultiOTP позволяет аутентифицировать данного пользователя с помощью OTP:
multiotp.exe -display-log kbuldogov 719854
где
719854
– одноразовый пароль, полученный из приложения.
LOG 2022-01-17 15:13:11 notice (user kbuldogov) User OK: User kbuldogov successfully logged in with TOTP token Filter-Id += "2FAVPNUsers"
Также можно проверить корректность работы OTP из веб-интерфейса. Перейдите в раздел Check a user, введите имя пользователя и одноразовый пароль.
Установка multiOTP CredentialProvider в Windows
Следующий этап – установка multiOTP-CredentialProvider на компьютеры Windows, на которых вы хотите внедрить двухфакторную аутентификацию пользователей с помощью MultiOTP. CredentialProvider можно установить на все версии Windows 7/8/8.1/10/11 и Windows Server 2012(R2)/2016/2019/2022.
В это примере мы настроим двухфакторную аутентификацию для RDP входа пользователей на RDSH сервер на Windows Server 2019.
Скачайте и установите multiOTP CredentialProvider с GitHub https://github.com/multiOTP/multiOTPCredentialProvider/releases. На момент написания статьи эта версия
5.8.4.0
.
Запустите установку:
- Укажите IP сервера, на котором был установлен multiOTPНе забудьте открыть порт в файерволе на сервере и клиенте multiOTP. Открыть порт в Windows Firewall на сервере можно с помощью PowerShell:
New-NetFirewallRule -DisplayName "AllowMultiOTP" -Direction Inbound -Protocol TCP –LocalPort 8112 -Action Allow
- В нижнее поле укажите секретное слово из конфигурации multiOTP (
в нашем конфиге); - Выберите тип входа в Windows, для которых нужно применять аутентфикацию через OTP. В нашем примере мы ограничимся 2FA только для RDP входов (OTP authentication mandatory for remote desktop only).
MultiOTP CredentialProvider хранит настройки в реестре HKEY_CLASSES_ROOT\CLSID\{FCEFDFAB-B0A1-4C4D-8B2B-4FF4E0A3D978}. Если нужно, вы здесь можете изменить настройки CredentialProvider без переустановки.
Перезагрузите Windows Server RDS и попробуйте через RDP подключиться к нему. Теперь после отправки имени и пароля пользователя появляется дополнительное окно one-time password. Здесь пользователь должен ввести одноразовый пароль из приложения Authenticator на своем смартфоне.
На севере MultiOTP можно включить ведение логов, это полезно при отладке:
multiotp -config debug=1
multiotp -config display-log=1
Your script is running from C:\MultiOTP\windows\ 2022-01-17 15:21:07 debug CredentialProviderRequest Info: *Value for IsCredentialProviderRequest: 1 0 SPB-SRV01 2022-01-17 15:21:07 debug Server-Client Info: *CheckUserToken server request. 0 SPB-SRV01 2022-01-17 15:21:07 notice kbuldogov User OK: User kbuldogov successfully logged in (using Credential Provider) with TOTP token 0 SPB-SRV01 2022-01-17 15:21:07 debug Server-Client Info: *Cache level is set to 1 0 SPB-SRV01 2022-01-17 15:21:07 debug Server-Client Info: *Server secret used for command CheckUserToken with error code result 0: secretOTP 0 SPB-SRV01
Не забудьте убедиться, что ваш домен синхронизирует время с тайм-серверами в интернете и время на клиентах не разбегается. Эти критично для работы OTP.
На этом настройка двухфакторной аутентификации в Windows Server с помощью MultiOTP закончена. Доступны сценарии использования MultiOTP с RADIUS сервером, для аутентификации практически любых типов клиентов через OTP. Также вы можете использовать OTP для дополнительной зашиты RDP серверов в интернете от брутфорса в дополнении к https://winitpro.ru/index.php/2019/10/02/blokirovka-rdp-atak-firewall-powershell/.
OpenOTP с бесплатной лицензией до 40 пользователей — более гибкий продукт и администрировать удобнее.
да но не всем подходит ограничение в 40 юзверей
протестировал у себя на компе, все хорошо, но при установке multiOTP CredentialProvider в конкретно Вашем примере нужно указывать пароль не P@ssw0rd!, а secretOTP. видимо очепятались
Верно, поправил 🙂
поправьте название группы
А если на компьютер с multiOTP CredentialProvider по RDP будет заходить пользователь, который не входит в группу 2FAVPNUsers, то он совсем не сможет зайти по RDP, или он зайдет по паролю и без 2FA ?
Такой пользователь не сможет зайти, т.к. для него будет требоваться одноразовый пароль:
2022-01-19 12:31:44 warning System Error: database file C:\MultiOTP\windows\users\a.khramov.db for user a.khramov does not exist 0 SRV01
2022-01-19 12:31:44 debug Server-Client Info: *Server secret used for command ReadUserData with error code result 21: secretOTP 0
Если нужно разрешить ему вход по RDP без 2FA, нужно будет добавить его аккаунт в веб интерфесе с опцией Token type: Without2FA.
При входе по RDP у него будет появляться запрос OTP, в нем нужно просто нажать Enter (пустой пароль)
2022-01-19 12:42:15 notice a.khramov User OK: User a.khramov successfully logged in (using Credential Provider) without 2FA token 0 SPB-SRV01
Огромное спасибо, всё понятно!
И ещё один вопрос. Получается, что ни брутфорс, ни использование уязвимостей протокола RDP не позволят злоумышленнику проникнуть по RDP на сервер при использовании на сервере 2FA?
В релизе 5.9.5.0 и выше исправили проблему входа для пользователей без 2FA
https://coder.social/multiotp/multiotp/issues/147
Теперь можно сделать 2 группы, одну для пользователей с 2FA (группа «2FAVPNUsers») и ещё одну для пользователей БЕЗ 2FA (группа «without2fa»)
Команды
multiotp -config ldap-in-group="2FAVPNUsers"
— для пользователи с 2FAmultiotp -config ldap-without2fa-in-group=”without2fa”
— для пользователи без 2FAПри этом обе группы будут синхронизированы с доменом, через команду:
multiotp -debug -display-log -ldap-users-sync
Естественно в обе группы одного и того же пользователя добавлять нельзя.
И да, сервер multiotp обязательно должен знать всех пользователей, как с 2FA, так и без 2FA.
Иначе последних он просто не пустит.
Для того чтобы пользователи без 2FA, заходили на сервер сразу (без необходимости подтверждения пустого пароля OTP), в реестре multiOTPCredentialProvider надо ключ multiOTPWithout2FA поменять на 1.
для версии 5.9.5.6 multiOTPCredentialProvider это ключ:
HKEY_CLASSES_ROOT\CLSID\{FCEFDFAB-B0A1-4C4D-8B2B-4FF4E0A3D978}
Брутфорс да, идет мимо.
С RDP уязвимостями не все так очевидно.
Подавляющее большинство узявимостей в RDP предполагали, что на компьютере отключена NLA (Network Level Authentication) для RDP. Но она как раз включена по-умолчанию, но некоторые отключают ее. Чего делать не надо.
Если вы о выставлении наружу чистого RDP — наверно все таки не стоит. Никто не гарантирует, что в NLA не появится 0-day уязвимость.
Спасибо за полезную статью и комментарии!
У нас в прошлом году так работало человек 500. Из них нашлось человек 30, у которых сгенерированные на их устройствах коды не работали. Вот вообще никак. Брали другой телефон и там работало. А некоторые устройства нет и хоть ты тресни. Как оказалось на не рабочих устройствах было рассинхронизировано время. Несмотря на заданную автосинхронизацию, всё равно как-то умудрялись. При чём ни минуты, а какие-то секунды. Лечилось пересинхронизацией времени на телефоне
В GA есть встроенная функция коррекции времени — работает безотказно.
Сам давно хотел попробовать эту штуку, но никак руки не доходили, да и останавливало то, что не хотелось включать двухфакторную авторизацию именно на уровне сервера RD. А чтобы она работала на уровне RDGW. Смысл в том, что если человек заходит с доменного компа и в доменной (доверенной) сети, то работает SSO и 2fa не требуется, а вот если через RDGW, тогда требуется ввести и пароль и 2fa.
Такое возможно с MultiOTP?
Можно попробовать интергацию RD Gateway с multiotp, описанное в этом блоге _https://roman.gallauner.at/?p=886 (см не пробовал, но выглядит рабочим).
Это безопасность только Web Access.
На сколько я понимаю, она не может работать на попытку подключения к ресурсам через RDGW.
Подскажите есть ли что-то бесплатное для роли RDS Gateway?
https://www.rcdevs.com/docs/howtos/rdgateway/rdgateway/ до 40 пользователей бесплатно.
Попробовал установить на Windows Server 2019, но при запуске multiotp -config default-request-prefix-pin=0
выскакивает сообщение о том, что VCRUNTIME140.DLL не найдена. Достановил к имеющемуся Microsoft Visual C++ 2013 Redistributable x64 Microsoft Visual C++ 2015-2022 Redistributable x64, но ошибка не исчезает. Никто не сталкивался с таким?
Решил проблему установкой 32х битного Microsoft Visual C++ 2015-2022 Redistributable
надо 64 и 86
Спасибо за статью! Интересно увидеть реализация multiotp сервера на линуксе….
интересует как поменять логитип когда запраштвает пароль…сине зеленая буква М неочень красива)))
Нужно сменить файл логотипа в папке программы C:\Program Files (x86)\multiOTP (BMP v3 128х128)
После чего откорректировать верку реестра HKEY_CLASSES_ROOT\CLSID{FCEFDFAB-B0A1-4C4D-8B2B-4FF4E0A3D978}\v1_bitmap_path
В этой же ветке можно поменять текст о вводе временного пароля
Сменил файл логотипа и отредактировал реестр, однако логотип остался прежний.
Значит Вы поменяли файл, но в ветке реестра не прописали путь C:\Program Files (x86)\multiOTP\loginLogo.bmp
Если указать в реестре, картинка поменяется
Спасибо за статью! Как я понял, QR код администратор должен передать пользователю, а есть ли возможность пользователю самостоятельно получить QR?
Да, в самом простом случае администратор передает qr коды пользователям.
При желании можно все автоматизировать на powershell. по крайней мере рассылку qr на email пользователей тут можно сделать совсем простым скриптом.
Генерация png файла с qr для пользователя:
multiotp -qrcode user png_file_name.png
(only for TOTP and HOTP)Осталось только полуит email пользователя из AD и отправку файла на почту.
$MailMessage = @{
To = "[email protected]"
Bcc = "[email protected]",
From = "DC server "
Subject = "QR код для RDP"
Body = "Ваш QR Сформировано: $(Get-Date -Format g)”
Smtpserver = "smtp.winitpro.ru"
Port = 25
UseSsl = $false
BodyAsHtml = $true
Encoding = “UTF8”
Attachment = “C:\multiotp\png_file_name.png”
}
Send-MailMessage @MailMessage -Credential $cred
https://winitpro.ru/index.php/2011/03/30/otpravka-pochty-iz-powershell/
Хорошая статья,а если ли опция уменьшить время генерации времени одноразового пароля и уменьшить кол-во попыток входа(если пользователь например ввел одноразовый пароль более 3-х раз неверно он блокируется)
Все есть в документации по ссылке из статьи:
The lockout parameters can be modified using these command lines:
multiotp -config failure-delayed-time=60
multiotp -config max-block-failures=12
multiotp -config max-delayed-failures=10
К сожалению среди этих команд нету той, которая увеличивает интервал времени временного пароля. В документации сходу не нашел. Может кто-то нашел решение увеличить время показа пароля с 30 до 60 секунд?
При сохранении конфигурации из веб интерфейса вылезает ошибка:*** BACKUP ERROR ***»false»
В чем может быть причина?
В свете последних событий появилась потребность данная.
Но у меня по всем разным решениям всегда один и тот же вопрос который никак не затрагивается ни в документации, ни в статье этой.
-«Каким образом мобильное приложение получает одноразовый пароль?»
1. Мобильное приложение обращается напрямую по API на WEB (другое) интнерфейс MultiOTP и получает одноразовый пароль.
2. Мобильное приложение обращается на своё облачное решение по своему закрытому API, а в момент входа пользователя на RDS (другое) сервер MultiOTP так же обращается в это же «облако» что бы туда передать текущий одноразовый пароль.
Надеюсь 1-й вариант.
Но если 1-й, тогда по инструкции совершенно не ясно какие порты надо и надо ли прокидывать на внешку и как мобильное приложение получает одноразовый пароль если на внешку никак не прокинуто ничего от MultiOTP?
Пошёл гуглить «как работает OTP» и тут как всё понял!
Никакого взаимодействия. Только текущее время и общий секрет.
Все верно )
Спасибо за интересную статью. А как будет происходить авторизация пользователя с пк, где нет CredentialProvider, учётной записи, которая состоит в группе 2FAVPNUsers ? Пустит по паролю в AD без 2fa ? То есть, если так — решение не подходит в качестве защиты от pass the hash атак ?
на пк где не установлен credential provider не будет и otp, данная схема работает в режиме клиент-сервер(где клиент credential provider)
Прекрасная статья! Всё получилось как по маслу! Это же работает и в RemoteApp, проверил буквально сегодня в тестовом окружении (взял подневную виртуалку). Единственный вопрос — можно ли как-то сделать, чтобы 2FA запрашивалась, когда пользователь стучится извне? А изнутри сети — не запрашивало
Подскажите пожалуйста почему когда я захожу в веб интерфейс пишу пароль дефолтный 1234, ничего не происходит, там какой то другой пароль?
пробуй по https://
это как
Классная статья, спасибо автору. Все работает очень хорошо, но несколько раз в день приходится перезагружать службу multiOPT Web Service. Кто-то может сталкиваться с такой проблемой, может у кого есть решение данной проблемы. Спасибо
Правильно ли я понимаю, описанная в статье фича — исключительно защита внутри домена (в том числе и при использовании VPN)?
То есть для работы multiOTP CredentialProvider обязательно должен быть установлен на ПК, который имеет связь с сервером multiOTP?
Если да, то зачем это нужно внутри сети? В основном же защита идёт от внешнего фактора)
Или же всё же можно как-нибудь организовать через multiOTP второй фактор защиты, подключаясь извне по RDP с использованием шлюза удаленных рабочих столов, не устанавливая что-либо на клиентской машине?
Не совсем так.
multiOTP CredentialProvider должен быть установлен на RDP/RDS сервере, куда подключаются пользователи. На клиентской машине ничего не нужно ставить.
При использовании multiOTP вам не важно, откуда приходит клиент — изнутри сети или снаружу.
Другой вопрос в том, что врядли вы будете выставлять RDP хост напрямую в интернет. Придется делать дополнительный уровень защиты — типа vpn или rds gateway.
Сценарием скрещивания multiOTP с rds gateway я не видел (не было задачи), но вот с предварительной установкой VPN все будет работать.
Никто не сталкивался с проблемой входа на сервер сразу после установки? Уже попробовал разные версии — всё одно и то же. Открываю страницу _http://127.0.0.1:8112/ и там написано:
Login
Username: (default is admin) User NOT authenticated
Password: (default is 1234) Login
Пароль 1234 ввожу, нажимаю окей — поле затирается, входа не происходит.
попробуй открыть через https://
chrome в помощь
у меня аналогичная проблема. После ввода данных поле пароль очищается и ничего не происходит. Пробовал в IE, Chrome, Mozilla. По https также не открывается, скорее всего и не должен, т.к. при настройке OTP вроде не поднимали данный протокол, не говоря уже о сертификате.
Разобрался. По http по порту 8112 не входит. Действительно необходимо входить через https, но необходимо использовать другой порт 8113. Это описано в инсталляторе webservice_install.cmd.
Мне не помогал ни 8112 ни 8113, а помогла команда multiotp -config debug=1 , хотя по описанию она вроде лог включает…
Привет! А не знаете, работает ли импорт пользователей из нескольких разных доменов?
То есть в строку ldap-base-dn прописать несколько разных доменов. Ну или указать несколько таких строк, каждая со своим доменом. Ну и строки с пользователем понятное дело тоже указать для нескольких доменов. Не нашел упоминания подобного в оф документации. Есть только упоминание возможности указания нескольких серверов в ldap-domain-controllers, но это видимо просто для отказоустойчивости, но в одном домене.
MultiOTP через RADIUS, как использовать с брандмауэром Fortigate? пожалуйста, помогите что я мог бы использовать MultiOTP для Remote Access VPN с пользователей из Active Directory
Как я понял, у вас VPN терминируется на Fortigate. Задача, использовать встроенный RADIUS и MultiOTP для 2fa пользователей в AD.
У меня такого гайда просто нет. В документации видел, чьл MultiOTP поддерживате FreeRADIUS. В Fortigate что используется?
Добрый день! У меня такой же кейс, пользователи используют решение FortiClient (IPsec VPN), хотелось бы внедрить 2fа, есть ли какие либо идеи как можно реализовать?
FreeRadius имеется
Огромное спасибо за статью, очень полезно и все понятно!
Особенно радует что это открытое ПО.
тут писали насчет использования multiOTP для VPN, это возможно если на роутере (VPN сервере) есть Radius клиент и он может через него авторизовать VPN пользователей. Просто используем multiOTP как radius сервер для нашего роутера. Такая схема легко делается на роутере pfSense, но насчет других роутеров не уверен.
насколько я вижу Fortigate умеет работать как radius клиент и в настройках VPN есть авторизация через radius
https://docs.fortinet.com/document/fortiauthenticator/6.5.0/cookbook/390697/connecting-the-fortigate-to-the-radius-server
https://docs.fortinet.com/document/fortiauthenticator/6.5.0/cookbook/826101/creating-the-user-and-user-group-on-the-fortiauthenticator
С первого взгляда все должно быть очень просто в настройке, попробуйте. У меня нет Fortigate чтобы проверить.
Пропала синхронизация пользователей между Сервером MultiOTP (папка C:\MultiOTP\windows\users) и собственно машиной с авторизацией по 2FA, где установлен Credential Provider (папка C:\Program Files (x86)\multiOTP\users).
Подскажите пожалуйста, в какую сторону копать для автоматической синхронизации. А то сейчас приходится синхронизировать их методом копирования файлов *.db
В последней версии Credential provider хранит данные по пути
C:\Program Files\multiOTP\users
.Если устанавливали обновление, то причина может быть в этом.
Подскажите что может быть не так? Вроде все правильно заполнено, группа и пользователи созданы. Пользователь под которым проходит тест также и пароль верный но тест не проходит.
Версия:
Windows Server 2022 Standard
MultiOTP 5.9.6.7
C:\Multiotp>multiotp -debug -display-log -ldap-users-sync
LOG 2023-11-08 11:32:08 debug LDAP Debug: *AD/LDAP synchronization started at 11:32:08 / Memory used: 14.5MB / Peak: 27.1MB
LOG 2023-11-08 11:32:08 info LDAP Info: AD/LDAP synchronization started
LOG 2023-11-08 11:32:08 debug System Debug: *LDAP cache folder value: C:\Users\adm\AppData\Local\Temp\.ldap_cache/
LOG 2023-11-08 11:32:08 warning LDAP Error: FATAL: AD bind failed. Check the login credentials (49: Invalid credentials). (80090308: LdapErr: DSID-0C09056B, comment: AcceptSecurityContext error, data 52e, v4f7c)
99 *ERROR: Authentication failed (and other possible unknown errors)
LOG 2023-11-08 11:32:08 debug Debug Debug: *Attributes sent to the RADIUS server: Reply-Message := "ERROR: Authentication failed (and other possible unknown errors)"
Reply-Message := "ERROR: Authentication failed (and other possible unknown errors)"
Пересоздал пользователя в AD — все пошло.
Подскажите, в чем может быть проблема? Не синхронизируются пользователи из AD
LOG 2023-11-23 10:11:02 info LDAP Info: No update for the 0 LDAP synced users, based on 1 LDAP entries
Добрый день, подскажите пожалуйста, можно ли настроить время действия одноразовых паролей?
Установил MultiOTP 5.9.6.7 на Windows Server 2022, синхронизировал 1 пользователя через LDAP, в качестве приложения-аутентфикатора использую Яндекс.Ключ. Если сгенерировать одноразовый пароль, то воспользоваться им можно хоть через 20 минут, например. Можно ли это настроить, или это у меня такая проблема?
В интеграции FortiGate и MultiOTP нет ничего сложного, но есть одно «НО».
Очень просто сделать конструкцию, в которой пользователь будет авторизоваться по доменному логину и OTP. Так же просто сделать конструкцию, в которой пользователь будет авторизоваться по доменному логину и паролю с OTP в одной строке «Password». Однако, пока не нашел решения, как сделать интерактивную работу multiOTP:
1. Пользователь вводит доменные логин и пароль в VPN-клиенте.
2. MultiOTP проверяет валидность учетной записи и пароль через AD.
3. Если пароль верный, то отправляется запрос на токен.
4. Происходит проверка токена.
5. Устанавливается VPN-соединение.
Если у кого будут идеи, подскажите, пожалуйста. Вот, к примеру, интересная статья на эту тему: https://habr.com/ru/articles/516362/. Вроде похоже, но не удалось реализовать это именно с MultiOTP.
А для того, чтобы сделать самую простую конструкцию, надо в фортигейте прописать RADIUS сервер (Users & Devices -> RADIUS Servers). Потом в фортигейте создать пользователя типа «Radius» и при его создании указать, что он будет работать через прописанный на предыдущем шаге RADIUS сервер. Остальные настройки аналогичны настройкам для использования LDAP.
Всех приветствую. Сделал все по инструкции, успешно синхронизировались группы с двухфакторкой и без(ответ в строке получил) но при попытке зайти в веб интерфейс получаю ошибку NGINX BAD GATEWAY 502. Подскажите пожалуйста в какую сторону копать? Перерыл конфиг файлы и не могу понять в чем проблема.
При запуске скрипта проверки получаю следующее:
KO! ONLY 29/33 TESTS HAVE PASSED SUCCESSFULLY !
— KO! Error authenticating the user test_stéphane with the first token (files)
— KO! multiOTP web service is not responding correctly on _http://127.0.0.1:58112 (files)
— KO! multiOTP web service is not responding correctly on _https://127.0.0.1:58113 (files)
— KO! multiOTP web service is not responding correctly on _http://127.0.0.1:58112 (files)
Подскажете как установить\сконфигурировать NGINX/APACHE для доступа к службе.
Заранее признателен за указание направления.
Рекомендую присмотреться к open source проекту https://github.com/neos-sdi/adfsmfa
Не выглядит как набор костылей. Поднял за пару дней без проблем (adfs19), имеет приятную консоль, powershell, отличную документацию и быстрый отклик автора проекта.
При вводе кода, в логах на сервере возникает ошибка.
Server secret used for command ReadUserData with error code result 19
multiotp -config server-secret менял, результата нет.
у меня успешно выполнилась синхронизация пользователей AD в multiotp, но почему-то веб-интерфейс не открывается, я проверила конфигурацию, прочла readme, перепробовала http и https, ничего, ваще не знаю что делать, помогите, пожалуйста!!!!
Проверяйте, случушается ли локальный порт 80 или 443. Если да, то каким процессом.
https://winitpro.ru/index.php/2022/10/24/kakoy-process-slushaet-port-windows/
Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess
Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess
Если порт слушаетя локальным веб сервером multiotp — скорее всего дело в файерволе.
а если слушается не локальным веб-сервером multiotp? 80 ничем, 443 чем-то, но не multiotp, делаю тасккил и на 443 сразу другое вешается. как сделать, чтобы 80 или 443 слушался multiotp? и почему мы проверяем 80 или 443, а не 8112? (8112 я тоже проверила, ничем не слушается) пожалуйста, простите, если вопросы глупые((
webservice_install я не забыла запустить от адм если что
Все правильно, нужно было проверять порт 8112 и службу которая его слушает . Я подзабыл что там другой порт по-умолчанию.
переустановила multiotp и все заработало, но интересно в чем было дело…
Подскажите, пожалуйста, по моему вопросу. Если я всем внутри домена включу ОТР, то он будет запрашиваться только при входе в ПК после перезагрузке или при разблокировке тоже? ПК блокируется каждые 15 минут простоя.
При каждой разблокировке надо будет вводить второй фактор
После установки web интерфейса, выдает ошибку 502 Bad Gateway, порты все открыты, служба работает, уже и брандмауэр отключал полностью, все равно не пускает :С
Включайте лог ….
…
log=1
…
«`
И в веб сервере nginx.
Пробовали оба порта 8112 и 8113?
Установите MS C++ pack на 32bit’a и на 64. Там ошибка в длл …140.dll, на ngixe -> php.exe
В чем может быть проблема, голову уже всю сломал? Сервер multiOTP стоит на отдельной виртуалке, порты открыты, пользователи синхронизируются, chek a user успешно проходят в web интерфейсе.
Провайдер установлен на другой виртуалке и при входе и введении one time password выдает wrong password. 8112 везде открыт
включил логи и там ошибка:
authentication typed by the user is 15 chars long instead of 6 chars
98 *ERROR: Authentication failed (wrong token length)
У меня то же самое — переустанавливаю уже 3й раз — всё ошибка 502
Народ, ВНИМАНИЕ!
У меня получилось решить проблему с BAD GATEWAY!!!
Крч, необходимо установить MS Visual C++. Казалось бы, что тут такого — мы его и так, конечно же, ставим — ставим VC_redist.x64…
А вот нихрена! Данная версия MultiOTP требует именно x86 версию! И ставить надо VC_redist.x86!!!
Бился два дня, а оказалось всё так банально.
И правда дело было в MS Visual C++!) плюс ко всему прочему, если сервер MultiOTP у вас удаленный, то и на машины с провайдером тоже нужно ставить MS Visual C++
не знаю баг это или фича, но подключаясь по rdp на вм где провайдер настроен на remote все дальнейшие rdp подключения уже с этой вм куда угодно так же требуют введения одноразового пароля. Что не совсем удобно.
Спустя время решил изменить secretOTP пароль, подключения все так же проходят. Хотя на клиентах прописан старый. Бред.
Если удалить на клиенте файл синхронизации «username» в папке MultiOTP, то уже не входит (нужно прописать новый пароль).
Есть инфа по синхронизации в этой штуке?
добрый день здесь у Вас в конфиге указывается один и тоже контроллер?
multiotp -config ldap-domain-controllers=msk-dc03.winitpro.ru,ldap://192.168.13.10:389
или это разные контроллеры? Если это у Вас один и тот же контроллер то как указать несколько контроллеров?
Это запись для одого сервера, его адрес и IP для доступа к LDAP (если проблемы с DNS). Можно указать несколько DC через запятую:
Set the Active Directory server(s), comma separated:
multiotp -config ldap-domain-controllers=my.srv.com,ldaps://12.13.14.15:636
(you can define more than one server, and you can also use a SSL connection only for one server, on a specific port)
Можно каким то образом изменить логин admin или создать новый?
Подскажите, где конфигурится возможность смены expired passwords?
Вродебы пишут, что Credential Provider это умеет с 2021 года, но где настроить — не совсем понятно.
Как я понял, смена просроченного пароля доступна для коммерческих редакций multiOTP Pro/Entreprise
Здравствуйте! Теструю, если отключить сервер 2FA, то вход все равно проходит, хотя я отключил хранения кэша… Почему так? По идеи должен не пускать…
Как вы отключили кэш на клиенте с multiOTP-CredentialProvider? Уже после установки через параметр реестра multiOTPCacheEnabled = 0? Сервис перезапускали?
Молодая команда пользователей заявляет, что нашла «обход»:
1. Начинаем подключение на сервер, вводим пароль
2. получаем приглашение ввести код OTP
3. отрубаем у себя интернет (начинается «попытка переподключения 1…5»
4. включаем интернет — MS RDP радостно проходит авторизацию, так и не получив код
Попробуйте вариат с отключением кэширование в multiOTP-CredentialProvider
При вводе пароля при включенном MultiOTP его нельзя посмотреть (нет справа кнопки как обычно в ОС). Можно ли как-то включить эту опцию? Гугление не дало результатов, как и изучение конфига (
А какой в этом смысл? через полминуты будет сгенерирован уже новый одноразовый пароль OTP, так что смотреть старый уже будет поздно )
Добрый день!
А можно как-то настроить имя записи в аутентификаторе, то есть по итогам сканирования QR
сохранялось не «multiOTP:samaccountname»
а иное произвольное
хмм, ругался на отсутствующий VCRUNTIME140.dll, установил обе версии пакета Visual C++ 2015, теперь на каждую команду отвечает:
PHP Warning: 'C:\Windows\SYSTEM32\VCRUNTIME140.dll' 14.0 is not compatible with this PHP build linked with 14.29 in Unknown on line 0
Сам спросил — сам ответил:
Помогла установка Visual C++ версии 14.29, в списке программ значится как 2015-2019
Добрый день,
У кого нибудь получилось синхронизировать большой AD с несколькими дочерними поддоменами в лесу? MultiOTP у меня прекрасно работает только с родительским доменом. Пользователей дочерних доменов добавлял и в группы безопасности родительского домена, не видит новых пользователей. Пробовал и группы безопасности с дочерних доменов указывать в конфиге multiotp, не синхронизирует новых. Еще в настройках пробовал указывать в параметры «ldap_users_dn» через точку с запятой DN адреса дочерних, но всё равно нет новых пользователей. У кого нибудь получилось настроить дочерние домены в связке с multiOTP?