Двухфакторная аутентификация клиентов AnyConnect. Active Directory и Azure Multi-Factor Authentication Server



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

    Внедрение аутентификации удаленных пользователей по принципу «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.
    C уважением коллектив компании Servilon
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 13

      +2
      А почему не использовать google authenticator он же бесплатный
        0
        AD Azure имеет больше вариантов OTP аутентификации пользователя
          +4
          Может быть подскажете как его интегрировать с Cisco?
            +1
            Вы в каком виде хотели видеть интеграцию?
            Я сейчас как раз занимаюсь настройкой аутентификации ASA+google authenticator, если успею завтра сделаю статью, если что ваши пожелания учту.
              +1
              Примерно в таком же виде как и тут.
                +1
                Постараюсь успеть. Рассматриваю вариант FreeRadius + Google Auth. Посмотрим, что получится. Aутентифицировать будем клиентов AnyConnect, как и здесь.
                  0
                  Круто! Я почитаю точно.
                    +1
                    опубликовал статью «Двухфакторная аутентификация клиентов Cisco AnyConnect. FreeRadius и Google Authenticator Редактировать»
                    habrahabr.ru/post/271259
                    0
                    Было бы интересно всё же Cisco ACS вместо FreeRadius
                      +1
                      На сколько мне известно CISCO ACS не умеет работать с Google Authenticator.
            0
            Может ламерский вопрос — а как ASA понимает что у нас пошла MFA? Настройке на ней вроде совсем не отличаются от обыкновенной авторизации через Radius. Или это какие-то команды с radius сервера идут?
              +1
              Да все верно, запрос на ввод кода с токена клиенту отправляет MFA Server. ASA в свою очередь ретранслирует его. За данный функционал отвечает настройка “RSA Secure ID integration” в настройках профайла.
              Заголовок спойлера

              0
              Вместо Windows Authentication можно перенаправлять запросы на старый RADIUS, если разрешить на нём PAP, SPAP в Constraints > Authentication Methods и убрать NAS IPv4 Address из Conditions в настройках сетевых политик.

              Это может пригодиться, когда старый RADIUS отдаёт имя групповой политики ASA для их автоматического назначения.

              Only users with full accounts can post comments. Log in, please.