Поиск по базе знаний

Как интегрировать SMS PASSCODE с VPN на базе Microsoft RRAS

Служба Routing and Remote Access Service является одним из компонентов Windows Server 2008/2012, который часто используется для реализации функциональности VPN-сервера без дополнительных затрат на оборудование и программное обеспечение. 

SMS PASSCODE можно интегрировать с Microsoft RRAS, однако с определенными ограничениями. Сама интеграция с RRAS не рекомендуется SMS PASSCODE и не предлагается в качестве стандартной, но технически совершенно реализуема. Основная проблема при интеграции с RRAS заключается в том, что RRAS не поддерживает протокол Challenge-Response, а это, в свою очередь, делает невозможным корректное представление пользователю запроса одноразового кода. 

Как будет видно ниже, второе ограничение, следующее прямо из первого, - невозможность сохранения имени пользователя и пароля в стандартном VPN-клиенте Windows: пользователю необходимо будет вводить свои учетные данные каждый раз при входе в систему. 

Если эти два нюанса, лишающие пользователей определенного удобства пользования системой, вас не смущают, воспользуйтесь инструкцией ниже по установке и настройке SMS PASSCODE. 

Что вам потребуется? 

  1. Две физические или виртуальные машины с установленной операционной системой Windows Server 2008/2012. 
  2. Дистрибутив SMS PASSCODE
  3. Постоянная или пробная лицензия SMS PASSCODE
  4. GSM-модем или доступ к веб-службе для отправки SMS (вопрос отправки SMS не рассматривается в этой статье)

Установка компонентов системы

Во-первых, нам необходимо подготовить инфраструктуру VPN, которая бы работала без SMS PASSCODE. Лишь после этого стоит приступать к установке SMS PASSCODE. 

Интеграция с RRAS относится к типу интеграций RADIUS Protection. Что это означает? SMS PASSCODE не взаимодействует напрямую с RRAS, а использует уже имеющуюся там функцию переадресации запроса аутентификации на внешний RADIUS-сервер. В качестве этого RADIUS-сервера используется один из компонентов Windows Server - Network Policy Server. Именно с этим компонентом SMS PASSCODE интегрируется напрямую. 

Поэтому на VPN-сервере, к которому будут подключаться пользователи, мы установим саму службу Routing and Remote Access Service (RRAS), а на вторую - Network Policy Server. Технически, это одна и та же роль, которую можно установить из Server Manager на Windows 2008/2012. 

Обратите внимание на то, что для успешной интеграции SMS PASSCODE с RRAS, необходимо, чтобы служба RRAS и Network Policy Server были установлены на разных компьютерах. 

Итак, приступим. 

  1. На VPN-сервере откройте Server Manager, выберите пункт добавления роли и добавьте роль Network Policy and Access

    Добавление роли Network Policy and Access на Windows Server 2008

  2. После добавления роли откройте утилиту настройки RRAS. Укажите, что данный сервер будет выполнять роль VPN-сервера.
  3. В свойствах RRAS-сервера, на вкладке Security укажите в качестве провайдера аутентификации (Authentication Provider) RADIUS Authentication

    Свойства службы RRAS

  4. Нажмите на кнопку Configure для настройки аутентификации RADIUS. Нажмите на кнопку Add для добавления RADIUS-сервера.

    Добавление RADIUS-сервера в свойствах RRAS

     
  5. Введите IP-адрес RADIUS-сервера (второй сервер, который мы пока еще не настроили) и Shared Secret (пароль, который должен быть один и тот же на обоих серверах). Shared Secret вводится в свойствах указанного сервера по нажатию на кнопку Edit
  6. Все остальные параметры службы RRAS оставьте без изменений. 
  7. Откройте Network Policy Server на сервере со службой RRAS. 
  8. Откройте раздел RADIUS Clients and Servers и убедитесь в том, что в подразделе Remote RADIUS Server Groups у вас имеется запись (по умолчанию она будет иметь название Microsoft Routing and Remote Access Service Authentication Servers).

    Раздел Remote RADIUS Server Groups

     
  9. Откройте свойства этой записи и убедитесь в том, что там указан IP-адрес нашего второго (пока ненастроенного) сервера.
  10. Откройте подраздел Connection Request Policies в разделе Policies
  11. По умолчанию там будет две политики: Microsoft Routing and Remote Access Service Policy и Use Windows authentication for all users. Откройте первую политику, далее на вкладке Settings в разделе Authentication убедитесь в том, что выбран пункт Forward requests to the following remote RADIUS server group for authentication. Там же должна быть указана та же группа, что была проверена нами на шаге №8.

    Connection Request Policy

     
  12. Откройте теперь вторую политику (Use Windows authentication for all users) и отключите ее, сняв галочку с пункта Policy Enabled
  13. На этом настройка VPN-сервера завершена. 

Настроим теперь второй сервер:

  1. Добавьте роль Network Policy and Access, аналогично первому серверу. На этот раз в списке компонентов можно не выбирать службу Routing and Remote Access Service. 
  2. После добавления роли откройте Network Policy Server
  3. Откройте подраздел RADIUS Clients в подразделе RADIUS Clients and Servers. Добавьте новый RADIUS Client
  4. При добавлении нового клиента укажите любое имя (Friendly name), IP-адрес первого сервера (VPN-сервера), а также Shared Secret, который совпадает с тем, что Вы указали на шаге №5 при настройке первого сервера. 

    Добавление RADIUS Client

  5. Добавьте пользователя в Active Directory и убедитесь в том, что в его свойствах на вкладке Dial-In включен режим Control Access through NPS Network Policy.

    Добавление пользователя в Active Directory

     

Теперь можно проверить VPN-подключение к первому серверу, который будет проводить аутентификацию пользователя на втором сервере. Для этого создайте обычное VPN-подключение в Windows, указав только IP-адрес первого сервера (VPN-сервера), имя пользователя, пароль и домен. Если подключение не удается, просмотрите файлы журнала Windows обоих серверов - обычно там имеется достаточно информации, чтобы определить причину отказа в доступе. 

Если подключение нормально работает, то вы готовы к установке SMS PASSCODE. 

  1. Запустите программу установки SMS PASSCODE. В процессе установки у вас будет запрашиваться код страны (+7 для России), COM-порт, на котором работает GSM-модем (если присоединен), а также выбор компонентов SMS PASSCODE (оставьте без изменений). 
  2. На странице Authentication Clients в процессе установки выберите RADIUS Client Protection.

    Выбор Authentication Client на этапе установки SMS PASSCODE

     
  3. В конце установки будет автоматически открыта утилита настройки SMS PASSCODE Configuration Tool. Вам необходимо задать Shared Secret (это другой Shared Secret, не имеющий отношения к тому, что вы указали на предыдущих шагах). 

    Укажите Shared Secret в настройках SMS PASSCODE

  4. Откройте вкладку RADIUS Client Protection в Configuration Tool, далее подвкладку Miscellaneous. В разделе Clients not supporting challenge packets добавьте IP-адрес первого сервера (VPN-сервера). 

    Укажите список клиентов, не поддерживающих Challenge-Response

  5. Нажмите кнопку Save, затем Close и завершите установку SMS PASSCODE. 
  6. Откройте веб-интерфейс администрирования SMS PASSCODE (кнопка Start -> SMS PASSCODE -> Web Admin). 
  7. Откройте раздел Users и подраздел Maintain Users. Нажмите на кнопку Add new user
  8. Укажите доменное имя пользователя и его мобильный телефон. Остальные параметры оставьте без изменений. 

  9. После возвращения в список пользователей нажмите на кнопку Test и убедитесь в том, что пользователю приходит SMS. 

Теперь вы готовы провести тестирование всей системы целиком. Откройте VPN-клиент и попробуйте подключиться к VPN-серверу. Отключите пункт "Сохранять имя пользователя и пароль". Введите имя пользователя, пароль и домен и нажмите на кнопку подключения. 

Подключение с помощью клиента VPN в Windows 7

После первичной проверки имени пользователя и пароля вам будет выдан повторный запрос пароля. На этот раз необходимо ввести в поле пароля одноразовый код, который придет на мобильный телефон в виде SMS. Другие параметры (имя пользователя и домен) менять не следует. Галочка "Запомнить это имя пользователя и пароль" должна быть снята. 

Повторный запрос в VPN клиенте

Если все было настроено верно, то после повторного ввода VPN-соединение будет установлено. 

Почему нельзя включать функцию запоминания имени пользователя и пароль? Это очень просто: при вводе одноразового кода и включенной функции запоминания клиент VPN запомнит не настоящий пароль, а одноразовый код. Поэтому в следующий раз VPN-клиент будет использовать неверный пароль и не пройдет первичную (до отправки одноразового кода) аутентификацию. Если бы RRAS и Microsoft VPN поддерживал протокол Challenge-Response, как многие другие продукты, этой проблемы бы не существовало.