Как интегрировать 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.
Что вам потребуется?
- Две физические или виртуальные машины с установленной операционной системой Windows Server 2008/2012.
- Дистрибутив SMS PASSCODE
- Постоянная или пробная лицензия SMS PASSCODE
- 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 были установлены на разных компьютерах.
Итак, приступим.
-
На VPN-сервере откройте Server Manager, выберите пункт добавления роли и добавьте роль Network Policy and Access.
- После добавления роли откройте утилиту настройки RRAS. Укажите, что данный сервер будет выполнять роль VPN-сервера.
-
В свойствах RRAS-сервера, на вкладке Security укажите в качестве провайдера аутентификации (Authentication Provider) RADIUS Authentication.
-
Нажмите на кнопку Configure для настройки аутентификации RADIUS. Нажмите на кнопку Add для добавления RADIUS-сервера.
- Введите IP-адрес RADIUS-сервера (второй сервер, который мы пока еще не настроили) и Shared Secret (пароль, который должен быть один и тот же на обоих серверах). Shared Secret вводится в свойствах указанного сервера по нажатию на кнопку Edit.
- Все остальные параметры службы RRAS оставьте без изменений.
- Откройте Network Policy Server на сервере со службой RRAS.
-
Откройте раздел RADIUS Clients and Servers и убедитесь в том, что в подразделе Remote RADIUS Server Groups у вас имеется запись (по умолчанию она будет иметь название Microsoft Routing and Remote Access Service Authentication Servers).
- Откройте свойства этой записи и убедитесь в том, что там указан IP-адрес нашего второго (пока ненастроенного) сервера.
- Откройте подраздел Connection Request Policies в разделе Policies.
-
По умолчанию там будет две политики: 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.
- Откройте теперь вторую политику (Use Windows authentication for all users) и отключите ее, сняв галочку с пункта Policy Enabled.
- На этом настройка VPN-сервера завершена.
Настроим теперь второй сервер:
- Добавьте роль Network Policy and Access, аналогично первому серверу. На этот раз в списке компонентов можно не выбирать службу Routing and Remote Access Service.
- После добавления роли откройте Network Policy Server.
- Откройте подраздел RADIUS Clients в подразделе RADIUS Clients and Servers. Добавьте новый RADIUS Client.
-
При добавлении нового клиента укажите любое имя (Friendly name), IP-адрес первого сервера (VPN-сервера), а также Shared Secret, который совпадает с тем, что Вы указали на шаге №5 при настройке первого сервера.
-
Добавьте пользователя в Active Directory и убедитесь в том, что в его свойствах на вкладке Dial-In включен режим Control Access through NPS Network Policy.
Теперь можно проверить VPN-подключение к первому серверу, который будет проводить аутентификацию пользователя на втором сервере. Для этого создайте обычное VPN-подключение в Windows, указав только IP-адрес первого сервера (VPN-сервера), имя пользователя, пароль и домен. Если подключение не удается, просмотрите файлы журнала Windows обоих серверов - обычно там имеется достаточно информации, чтобы определить причину отказа в доступе.
Если подключение нормально работает, то вы готовы к установке SMS PASSCODE.
- Запустите программу установки SMS PASSCODE. В процессе установки у вас будет запрашиваться код страны (+7 для России), COM-порт, на котором работает GSM-модем (если присоединен), а также выбор компонентов SMS PASSCODE (оставьте без изменений).
-
На странице Authentication Clients в процессе установки выберите RADIUS Client Protection.
-
В конце установки будет автоматически открыта утилита настройки SMS PASSCODE Configuration Tool. Вам необходимо задать Shared Secret (это другой Shared Secret, не имеющий отношения к тому, что вы указали на предыдущих шагах).
-
Откройте вкладку RADIUS Client Protection в Configuration Tool, далее подвкладку Miscellaneous. В разделе Clients not supporting challenge packets добавьте IP-адрес первого сервера (VPN-сервера).
- Нажмите кнопку Save, затем Close и завершите установку SMS PASSCODE.
- Откройте веб-интерфейс администрирования SMS PASSCODE (кнопка Start -> SMS PASSCODE -> Web Admin).
- Откройте раздел Users и подраздел Maintain Users. Нажмите на кнопку Add new user.
-
Укажите доменное имя пользователя и его мобильный телефон. Остальные параметры оставьте без изменений.
- После возвращения в список пользователей нажмите на кнопку Test и убедитесь в том, что пользователю приходит SMS.
Теперь вы готовы провести тестирование всей системы целиком. Откройте VPN-клиент и попробуйте подключиться к VPN-серверу. Отключите пункт "Сохранять имя пользователя и пароль". Введите имя пользователя, пароль и домен и нажмите на кнопку подключения.
После первичной проверки имени пользователя и пароля вам будет выдан повторный запрос пароля. На этот раз необходимо ввести в поле пароля одноразовый код, который придет на мобильный телефон в виде SMS. Другие параметры (имя пользователя и домен) менять не следует. Галочка "Запомнить это имя пользователя и пароль" должна быть снята.
Если все было настроено верно, то после повторного ввода VPN-соединение будет установлено.
Почему нельзя включать функцию запоминания имени пользователя и пароль? Это очень просто: при вводе одноразового кода и включенной функции запоминания клиент VPN запомнит не настоящий пароль, а одноразовый код. Поэтому в следующий раз VPN-клиент будет использовать неверный пароль и не пройдет первичную (до отправки одноразового кода) аутентификацию. Если бы RRAS и Microsoft VPN поддерживал протокол Challenge-Response, как многие другие продукты, этой проблемы бы не существовало.