Tag Archive | одноразовые пароли

Двухфакторная аутентификация или что нам стоит OTP настроить?

Решил написать небольшую инструкцию по настройке McAfee OTP.

В примере я покажу и расскажу о том, как настроить одноразовые пароли при доступе к Echange OWA.

otp

McAfee One Time Password – программное решение, которое обеспечивает двухфакторную аутентифкаицию пользователей при доступе к различным корпоративным службам (MS Exchange OWA, MS UAG, Citrix XenApp и т.д.). Полный перечень модулей интеграции доступен по ссылке.

В двух словах о том как это работает:

  • Пользователь пытается зайти на корпоративному ресурс используя свои учетные данные;
  • Модуль интеграции перехватывает логин:пароль пользователя и передает их на сервер OTP;
  • Сервер OTP проверяет личность пользователя и считывает из атрибута AD номер телефона пользователя;
  • Сервер OTP генерирует одноразовый пароль для данного пользователя;
  • Согласно выбранному методу доставки (HTTP, SMPP, SMTP, Pledge) пользователю отправляется одноразовый пароль;
  • Пользователь получает одноразовый пароль и вводит его для подтверждения своей личности;
  • Модуль интеграции отправляет введенный пользователем пароль на сервер для проверки;
  • Если отправленный пароль=тому, который ввел пользователь и время жизни пароля не истекло – личность подтверждена;
  • Пользователь получает доступ к корпоративному ресурсу.

План заметки

  1. Установка и первый запуск
  2. Подключение к службе каталогов 
  3. Установка и настройка клиентов (модулей интеграции)
  4. Конфигурация способов доставки, проверка работы OTP
  5. Работа с логами сервера

Приступим к развертыванию.

1. Установка и первый запуск

otp_download

Дистрибутив серверной части может быть развернут под Linux или Windows. Если говорить о платформе Windows –  подойдет Windows Server 2003 или 2008.

Загрузить пробную версию решения можно с портала McAfee перейдя по ссылке.

Сам процесс установки серверной части занимаете пару минут и выполняется в режиме мастера (“далее”-“далее”).

1 2 3 4 5

По завершению установки (перезагрузка ОС не требуется) запуститься мониторинг OTP сервера.

Обратите внимание: если при установке был указан путь к файлу лицензии, OTP сервер будет активирован.

6

2. Подключение к службе каталогов 

Для изменения настроек OTP сервера в окне мониторинга необходимо нажать [Configuration]

Первым делом необходимо показать OTP серверу откуда ему брать информацию о пользователях.

Для этого в настройках переходим в раздел [Databases]

Поскольку в данном случае OTP будет работать с OWA то выбор типа БД очевиден – LDAP.

7

Сначала вводим имя/IP адресс контроллера домена и проверяем соединение.

8

Важно! После проверки связи необходимо нажать [Samples] и выбрать из списка Microsoft Active Directory.

9

После указания Base DN и выбора правильного шаблона можно проверить LDAP аутентификацию.

Для справки: поскольку OTP берет информацию о пользователях из AD, то OTP поддерживает работу с кирилическими именами учетных записей.

11

После того как связь с AD установлена, необходимо выбрать атрибут AD, из которого OTP сервер будет считывать номер телефона пользователя.

В AD есть как минимум два стандартных атрибута в которых храниться номер мобильного телефона пользователя (сотрудника). Вот они:

otp_ad_attribute1 otp_ad_attribute2

Выбор атрибута осуществляется на той же вкладке, на которой мы настраивали подключение к службе каталогов:

12

3. Установка и настройка клиентов (модулей интеграции)

Список готовых модулей интеграции для McAfee OTP доступен по ссылке.

integration_modules

В данном примере я буду интегрировать OTP с Outlook Web App 2010 (OWA).

Модуль интеграции представляет собой самораспаковывающийся архив который необходимо перенести на сервер MS Exchange.

16 17

После распаковки архива первым делом необходимо выполнить слияние reg-файла. Люди знающие могут отредактировать его сразу “под себя”.

Для наглядности я сделаю это позже через regedit.

18

Две .dll`ки из дистрибутива модуля интеграции необходимо скопировать в каталог C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\Owa\Bin

19

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

Нужно запустить Диспетчер служб ISS на сервере Exchange, перейти на Default Web Site и добавить новый виртуальный каталог.

20 21

Указав при этом путь к распакованным файлам. Полный путь на снимке экрана ниже.

На всякий случай продублирую C:\Program Files\McAfee\OTP_Integrations\OWA\OWAIISIntegration\UI

* C:\Program Files\McAfee\OTP_Integrations – каталог в который по-умолчанию распаковываются файлы модуля интеграции.

22

Последний шаг – необходимо отредактировать web.config OWA который расположен по адресу:

C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\Owa\web.config

23

Строка которую необходимо добавить в раздел <modules> выглядит так:

<add name=”HttpAuthenticationModule” type=”McAfee.OTP.IIS.HttpAuthenticationModule” />

24

Важно!

Пока на серверной части не настроен ни один способ доставки (SMS, Email, Pledge) перезагружать IIS на сервере MS Excnahge нельзя, иначе пользователи просто не смогут выполнить вход в OWA.

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

Для этого запускаем редактор реестра (Win+R -> regedit) и переходим в куст HKLM\SOFTWARE\McAfee\One Time Password

Для параметра SessionManageDebug выставляем значение (1) чтобы модуль OTP писал свои события в EventLog сервера.

25

Переходим на уровень ниже HKLM\SOFTWARE\McAfee\One Time Password\OWA

Параметры значение которых необходимо изменить:

EmailClentDetectionName – имя клиента, которое будет использовать сервер при отправке пароля по электронной почте

OtpServerAddress – IP адрес системы, на которой установлена серверная часть McAfee OTP, указывается с номером порта

PledgeClientDetectionName –  имя клиента, которое будет использовать сервер при отправке пароля на программный токен Pledge

SmsClientDetectionName –  имя клиента, которое будет использовать сервер при отправке пароля по СМС

StaticLogonDomain – имя домена которому принадлежат пользователи

26

Прежде чем приступить к следующему шагу настройки необходимо проверить настройки аутентификации OWA в консоли Excnahge.

Собственно для корректной работы McAfee OTP параметры должны выглядеть следующим образом:

Use forms-based authentication: Domain\user name

31

Возвращаемся к настройкам серверной части.

Чтобы наш OTP сервер обрабатывал запросы от OWA нужно создать запись клиента, т.к. показать серверу модуль интеграции.

переходим в раздел Clients и создаем новый Native Client

13

Обратите внимание – при создании клиента OWA необходимо указать IP адрес сервера Excanhge на котором мы ранее настраивали модуль интеграции.

15

На данном этапе настройка модуля интеграции для OWA 2010 завершена.

Напоминаю, что страница входа измениться только после перезапуска службы IIS.

Однако, на данной стадии перезагружать IIS еще рано т.к. нужно настроить хотя бы один способ доставки.

4. Конфигурация способов доставки, проверка работы OTP

Можно посылать сгенерированные сервером одноразовые пароли через местного оператора SMS-рассылок, можно использовать SMS службы McAfee,

можно отправлять пароли по почте или на программный токен McAfee Pledge, который может быть установлен на компьютере сотрудника или на его смартфоне (Android, iOS).

Для примера попробуем настроить отправку одноразовых паролей через провайдера alphasms.

Я покажу настройку двух вариантов – по протоколу SMPP и по протоколу HTTP.

Прежде всего необходимо зарегистрировать тестовый аккаунт на сайте провайдера. После бесплатной регистрации ( с указанием мобильного телефона) получаем доступ в личный кабинет.

alpha1 alpha2 alpha3

Для активации SMPP в качестве метода отправки паролей переходим в конфигуратор McAfee OTP и вводим/изменяем значение параметров.

Тут же есть кнопка <Test> которая позволяет отправить тестовое СМС-сообщение на указанный номер. Ничего сложного.

30

Так как большинство провайдеров услуг SMS рассылки поддерживают метод HTTP рассмотрим его настройку отдельно.

Для корректной отправки одноразового пароля необходимо знать синтаксис сообщения.

У провайдера alphasms синтаксис описан в документации, которая доступна для загрузки в личном кабинете.

Дублирую снимок экрана, на котором видно строчку (документация, PDF):

alpha338

В настройках McAfee OTP есть два раздела отвечающих за отправку паролей по протоколу HTTP – простой и расширенный.

Для работы alphasms нужно выбрать Extended HTTP

Необходимо создать шаблон следующего содержания:

<?xml version=”1.0″ encoding=”utf-8″ ?>
<package key=”6897b63e07c41d25132887e0314392db336fa394“>
<message>
<msg recipient= “$$IDENTITY$$” sender= “mcafee” type=”0″>$$OTP$$</msg>
</message>
</package>

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

Также нужно указать адрес провайдера в поле HTTP(/S) URL 1: https://alphasms.com.ua/api/xml.php

И обязательно прописать Success String вида: <?xml version=”1.0″ encoding=”utf-8″ ?>

39 40

Осталось в настройках клиента выбрать предпочитаемый способ доставки, пусть это будет HTTP Extended

3_otp_client_OWA

Обратите внимание, что для каждого клиента (модуля интеграции) можно указать отдельные настройки БД пользователей и выбранный метод доставки.

Чтобы приступить к проверке работы решения нам необходимо выполнить перезагрузку службы IIS на сервере MS Exchange.

Это нужно сделать для того, чтобы сменить окно входа в OWA. Нужно выполнить команду iisreset в консоли.

33

Если все сделано правильно, после перезагрузки службы IIS окно входа в OWA станет таким:

owa_mcafee

Если в McAfee OTP настроено несколько способов доставки пользователь может выбрать предпочитаемый.

После проверки первого фактора (связка логин:пароль) модуль интеграции осуществляет запрос одноразового пароля,

который отправляется пользователю в примере по SMS методом HTTP. Для доступа к OWA пользователь должен ввести

полученный в SMS одноразовый до окончания времени жизни пароля (по-умолчанию время жизни одноразового пароля = 5 минут).

owa_2 owa_3

36owa_4

Двухфакторная аутентификация в действии.

Небольшая подсказка. Чтобы упростить процесс отладки работы OTP рекомендую сперва настроить в качестве метода доставки SMTP.

Это позволит не тратить баланс SMS. Пример настройки SMTP ниже:

OTP_smtp

5. Работа с логами сервера

Серверная часть McAfee OTP по-умолчанию пишет свои логи в каталог C:\Program Files\McAfee\OTP\logs

Главный лог-файл otpserver.log

Выдержка из лога:

2013-08-22 12:54:15,997: INFO: [] OTPConnection New Socket Open from: 192.168.1.141

2013-08-22 12:54:16,000: DEBUG: [137716475000100000011] OTPConnection [192.168.1.141] –> “CLIENT-INFO:” Request

2013-08-22 12:54:16,001: DEBUG: [137716475000100000011] OTPConnection [192.168.1.141] Client Info: [NordicEdgeOTP.dll, version 1.2.5.0]

2013-08-22 12:54:16,198: INFO: [137716475000100000012] OTPConnection [192.168.1.141] –> “help2”

2013-08-22 12:54:16,199: DEBUG: [137716475000100000012] OTPConnection [192.168.1.141] Client supports error codes

2013-08-22 12:54:16,410: DEBUG: [137716475000100000013] OTPConnection [192.168.1.141] –> “Set Clientname” Request

2013-08-22 12:54:16,410: INFO: [137716475000100000013] OTPConnection [OWA] Clientname set to “SMS” for ip address: 192.168.1.141

2013-08-22 12:54:16,629: DEBUG: [137716475000100000014] OTPConnection [OWA] –> “AUTH-OTP” Request

2013-08-22 12:54:16,629: DEBUG: [137716475000100000014] OTPConnection [OWA] [AUTH_OTP] Database for “192.168.1.141” is “test”

2013-08-22 12:54:16,630: DEBUG: [137716475000100000014] DBHandler [setupDBConnections] Establishing LDAP Connection to “test”

2013-08-22 12:54:16,648: DEBUG: [137716475000100000014] DBHandler [getDNSingle] Executing Searchfilter: (&(samAccountName=admin)(objectclass=user))

2013-08-22 12:54:16,649: INFO: [137716475000100000014] DBHandler [getDNSingle] Found user: “CN=Admin,OU=Quest Admin Acc,DC=quest,DC=local”

2013-08-22 12:54:16,654: DEBUG: [137716475000100000014] OTPBridge. Forcing OTP Delivery Method: “plugins.ExtendedHTTPSender” on Client: “OWA”

2013-08-22 12:54:16,655: DEBUG: [137716475000100000014] OTPBridge Forcing OTP Delivery Method: “plugins.ExtendedHTTPSender” on Client: “OWA”

2013-08-22 12:54:16,656: DEBUG: [137716475000100000014] X-HTTP: Opening connection to “https://alphasms.com.ua/api/xml.php

2013-08-22 12:54:16,717: DEBUG: [137716475000100000014] X-HTTP: DEBUG: [0] SSL Certificate: CN=www.alphasms.com.ua, OU=Domain Control Validated – RapidSSL(R), OU=See www.rapidssl.com/resources/cps (c)12, OU=GT46413644, SERIALNUMBER=0-bDlx2NGvUEoi9ZjRjiukhSMfOboS76

2013-08-22 12:54:16,717: DEBUG: [137716475000100000014] X-HTTP: DEBUG: [1] SSL Certificate: CN=RapidSSL CA, O=”GeoTrust, Inc.”, C=US

2013-08-22 12:54:16,750: DEBUG: [137716475000100000014] X-HTTP: Sending to “https://alphasms.com.ua/api/xml.php

2013-08-22 12:54:17,173: DEBUG: [137716475000100000014] X-HTTP: Waiting for response from “https://alphasms.com.ua/api/xml.php

2013-08-22 12:54:17,174: DEBUG: [137716475000100000014] X-HTTP: Received: <?xml version=”1.0″ encoding=”utf-8″ ?><package><message><msg id=”0″ sms_id=”119815950″ sms_count=”1″>1</msg></message></package>

2013-08-22 12:54:17,174: DEBUG: [137716475000100000014] X-HTTP: Found a success string:”<?xml version=”1.0″ encoding=”utf-8″ ?><package><message><msg id=”0″ sms_id=”119815950″ sms_count=”1″>1</msg></message></package>” OTP successfully sent

2013-08-22 12:54:17,174: DEBUG: [137716475000100000014] X-HTTP: Closing connection to “https://alphasms.com.ua/api/xml.php

2013-08-22 12:54:17,175: INFO: [137716475000100000014] X-HTTP: Sent OTP successfully!

2013-08-22 12:54:17,410: DEBUG: [137716475000100000015] OTPConnection [OWA] Closing Socket for: 192.168.1.141

2013-08-22 12:54:32,291: INFO: [] OTPConnection New Socket Open from: 192.168.1.141

2013-08-22 12:54:32,292: DEBUG: [137716475000100000016] OTPConnection [192.168.1.141] –> “CLIENT-INFO:” Request

2013-08-22 12:54:32,292: DEBUG: [137716475000100000016] OTPConnection [192.168.1.141] Client Info: [NordicEdgeOTP.dll, version 1.2.5.0]

2013-08-22 12:54:32,490: INFO: [137716475000100000017] OTPConnection [192.168.1.141] –> “help2”

2013-08-22 12:54:32,490: DEBUG: [137716475000100000017] OTPConnection [192.168.1.141] Client supports error codes

2013-08-22 12:54:32,697: DEBUG: [137716475000100000018] OTPConnection [192.168.1.141] –> “Set Clientname” Request

2013-08-22 12:54:32,698: INFO: [137716475000100000018] OTPConnection [OWA] Clientname set to “SMS” for ip address: 192.168.1.141

2013-08-22 12:54:32,916: DEBUG: [137716475000100000019] OTPConnection [OWA] –> “Verify OTP” Request

2013-08-22 12:54:32,916: DEBUG: [137716475000100000019] OTPConnection [OWA] Checking OTP MagicNr: hl1B8z for user: admin

2013-08-22 12:54:32,919: INFO: [137716475000100000019] OTPConnection [OWA] OTP is Valid for user “CN=Admin,OU=Quest Admin Acc,DC=quest,DC=local”

2013-08-22 12:54:33,120: DEBUG: [137716475000100000020] OTPConnection [OWA] Closing Socket for: 192.168.1.141

Расшифровка листинга лог-файла

С 16,000 по 16,654 идет процесс запроса одноразового пароля (модуль интеграции обращается к OTP);

C 16,656 по 17,175 осуществляется процесс отправки пароля методом HTTP Extended по SMS;

С 32,291 по 32,919 проходит процесс проверки того что ввел пользователь с тем, что ему было отправлено.

– – – – – –

На этом первичная настройка решения завершена.

В продолжении я опишу настройку и подключение программного токена McAfee Pledge (Windows / iOS / Android / Windows Phone)