Уже практически ни у кого не вызывает вопросов то, зачем нужна двух факторная аутентификация, особенно при доступе к ресурсам удаленных пользователей. Априори пользователь относится достаточно безответственно к хранению паролей защищающих рабочую информацию, что и не удивительно, учитывая сколько личных паролей приходится помнить и приоритеты обычного человека в плане защиты личной или рабочей информации.

Внедрение аутентификации удаленных пользователей по принципу «something I know+ something I have” позволяет сделать атаку, направленную на перехват или подбор паролей, бессмысленной и значительно снизить угрозы ИБ от получения злоумышленником пароля пользователя.

Представляю Вам руководство по настройке Microsoft Azure Multi-Factor Authentication Server (MFAS) в качестве второго фактора аутентификации при подключение доменных пользователей к ресурсам компании посредством Cisco AnyConnect.

Почему именно MS Azure?


  1. Лучшая интеграция с AD, что очень удобно, когда для VPN используется та же учетная запись, что и для остальных ресурсов.
  2. Разные типы аутентификации, звонок, SMS приложение и офлайн OTP код.
  3. Простота настройки.
  4. Высокая надежность и доверие.

Из минусов, наверное, стоит отметить только то, что это платное решение, но безопасность никогда и не бывает дешевой.

Настройка Microsoft Azure


Приведенные ниже шаги предполагают, что у Вас имеется подписка или же установлена триальная версия Microsoft Azure.
Перейдем непосредственно к настройке:
  1. Заходим на портал управления Azure.


  2. Переходим на вкладку Active Directory -> Поставщики многофакторной проверки подлиности -> Быстрое создание. Указываем необходимые параметры и далее «создать».



    После создания, будет доступна кнопка «Управление», переходим:


  3. Переходим в загрузки. Скачиваем MULTI-FACTOR AUTHENTICATION SERVER.

    Также нужно создать учетную запись для активации сервера.

    Для установки данного сервера понадобится .NET Framework 2.0.
    Важно: Устанавливать рекомендуется на отдельную VM. При установке пропускаем мастер настройки.
    Функции сервера: синхронизация пользователей с AD, RADIUS server для Cisco ASA, отправка запросов на авторизацию по второму фактору, прием и обработка ответов от клиентов, авторизация пользователей. Может устанавливаться как на серверные версии, так и на клиентские.
  4. При первом запуске активируем с помощью ранее сгенерированной учетной записи (от репликации на данном этапе отказываемся).
  5. Настраиваем интеграцию пользователей между AD и нашим сервером. Во вкладке Directory Integration добавляем каталог, который будет синхронизироваться с AD и настраиваем параметры синхронизации:



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

    б) Сохраняем, нажимаем кнопку «Test..» во вкладке Users. Вводим учетные данные пользователя:

    в) На указанный телефон получаем звонок, нажимаем «#». Об успешном завершении теста свидетельствует сообщение:

    Также проверить авторизацию можно через SMS. Для этого, в настройках клиента, необходимо указать способ авторизации Text message – One-Way – OTP. В данном случае MFAS запросит OTP, который в виде SMS придет Вам на телефон.


    Для того, что бы связать пользователя с мобильным устройством, на котором установлен Azure Authenticator, понадобится развернуть и настроить User Portal (Инструкция по установке и настройке User Portal).

    Так же необходимо дополнительно установить и настроить Mobile Portal:

    а) Переходим в директорию C:\Program Files\Multi-Factor Authentication Server


    б) Выбираем необходимую версию и устанавливаем.

    в) После установки редактируем файл:
    С:\Inetpub\wwwroot\MultiFactorAuthMobileAppWebService\Web.conf
    Находим параметры:
    WEB_SERVICE_SDK_AUTHENTICATION_USERNAME
    WEB_SERVICE_SDK_AUTHENTICATION_PASSWORD

    И меняем значения аналогично параметрам User Portal.

    Также в разделе pfup, параметр <valuе>http://localhost:4898/PfWsSdk.asmx </valuе> изменяем по аналогии с User Portal — <valuе>https://EXTERNALFQDN/MultiFactorAuthWebServiceSDK/PfWsSdk.asmx </valuе>. В нашем случае «EXTERNALFQDN» — это mfa.servilon.com
    Стоит отметить, что для работы User Portal необходимо:
    – Запись во внешней DNS зоне, которая будет указывать на User Portal.
    – Доверительные отношения с сервером. В идеале — это «белый» сертификат выписанный для «EXTERNALFQDN».

  7. После установки и настройки, для корректной работы User Portal, вводим URL на портал во вкладке «User Portal» и, если авторизация для доменных пользователей, указываем Primary authentication – Windows Domain.

  8. Во вкладке Mobile App вводим URL Mobile App Web Service и устанавливаем галочку Enable OATH tokens, если хотим использовать мобильное устройство как Software token.

    Принцип работы APP:
    • В режиме Token

    • В стандартном режиме без PIN


  9. После того как портал настроен, для привязки мобильного устройства, переходим по ссылке User Portal, в данном случае https://mfa.servilon.com/multifactorauth

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

  10. В меню Activate Mobile App переходим в Generate Activation Code. Генерируем новый код активации и в результате получаем:


    На мобильном устройстве должно быть установлено приложение Azure Authenticator (ссылки для iOS, Android и Windows Mobile).
    Запускаем приложение – нажимаем + и считываем QR код. В результате учетная запись подвязывается к мобильному устройству:


    Проверка на сервере:


    Теперь можно поэкспериментировать с различными режимами аутентификации и посмотреть, в чем же отличие режима Standard от «OATH token».



Настройка Radius


Для аутентификации пользователей AnyConnect Cisco ASA может использовать сторонний Radius сервер. Для этого на ASA необходимо настроить AAA Server, а на MFAS настроить Radius клиент:




Настройка CISCO ASA


Так как используется доменная аутентификация, ASA должна иметь доверительные отношения с доменом. А также рекомендуется использовать «белый» сертификат для VPN gateway. В нашем случае – vpn.servilon.co

На ASA рекомендуем настроить AnyConnect VPN gateway с локальной аутентификацией. Убедиться, что подключение работает, после чего приступить к настройке аутентификации через Radius.

После чего настраиваем RADIUS. Переходим на Configuration / Remote Access VPN / AAA/Local Users / AAA Server Groups и создаем группу:


Добавляем в группу сервер. Таймаут необходимо увеличить, так как значения по-умолчанию может не хватить для ввода кода.


Тестируем связку с RADIUS сервером:


При успешном тесте, на ранее настроенном «AnyConnect Connection Profiles» меняем аутентификацию с локальной на новую группу:


Настройка профиля:
  1. Сменить таймаут:

  2. Указать FQDN для Anyconnect gateway.



Для того, чтобы протестировать подключение с аутентификацией в стандартном режиме и режиме OATH token, подключаемся к FQDN и вводим доменные учетные данные:



Получаем запрос на ввод кода с мобильного приложения:


Если же используется стандартный режим без PIN, то в приложение придет запрос на подтверждение аутентификации:


После проверки второго фактора происходит аутентификация пользователя. Аутентификация успешна:


В данной статье рассмотрен пример настройки двухфакторной аутентификации пользователей для приложения Cisco AnyConnect, но данная схема может быть реализована для любых сервисов, поддерживающих аутентификацию посредством протокола Radius.

Комментарии (12)


  1. zoommy
    18.11.2015 12:25
    +2

    А почему не использовать google authenticator он же бесплатный


    1. MazayZaycev
      18.11.2015 12:36

      AD Azure имеет больше вариантов OTP аутентификации пользователя


    1. talifan
      18.11.2015 12:49
      +4

      Может быть подскажете как его интегрировать с Cisco?


      1. MazayZaycev
        18.11.2015 13:08
        +1

        Вы в каком виде хотели видеть интеграцию?
        Я сейчас как раз занимаюсь настройкой аутентификации ASA+google authenticator, если успею завтра сделаю статью, если что ваши пожелания учту.


        1. talifan
          18.11.2015 13:12
          +1

          Примерно в таком же виде как и тут.


          1. MazayZaycev
            18.11.2015 13:26
            +1

            Постараюсь успеть. Рассматриваю вариант FreeRadius + Google Auth. Посмотрим, что получится. Aутентифицировать будем клиентов AnyConnect, как и здесь.


            1. talifan
              18.11.2015 13:29

              Круто! Я почитаю точно.


              1. MazayZaycev
                19.11.2015 14:55
                +1

                опубликовал статью «Двухфакторная аутентификация клиентов Cisco AnyConnect. FreeRadius и Google Authenticator Редактировать»
                habrahabr.ru/post/271259


            1. vanyas
              19.11.2015 03:52

              Было бы интересно всё же Cisco ACS вместо FreeRadius


              1. MazayZaycev
                19.11.2015 10:28
                +1

                На сколько мне известно CISCO ACS не умеет работать с Google Authenticator.


  1. DonAlPAtino
    20.11.2015 09:23

    Может ламерский вопрос — а как ASA понимает что у нас пошла MFA? Настройке на ней вроде совсем не отличаются от обыкновенной авторизации через Radius. Или это какие-то команды с radius сервера идут?


    1. MazayZaycev
      20.11.2015 10:36
      +1

      Да все верно, запрос на ввод кода с токена клиенту отправляет MFA Server. ASA в свою очередь ретранслирует его. За данный функционал отвечает настройка “RSA Secure ID integration” в настройках профайла.

      Заголовок спойлера