Настройка VPN для работы мобильных решений DIRECTUM

13 1

Беспроводные сети получили широкое распространение, поэтому обеспечение безопасности передаваемых данных – вопрос весьма актуальный. Тема защиты подключения уже поднимались в статьях Безопасность: Настройка демилитаризованной зоны, Обеспечение безопасного использования мобильных решений DIRECTUM, Безопасность: Тюнинг HTTPS. На практике мы должны были убедиться в полноценной работоспособности мобильного решения DIRECTUM Jazz при работе через шифрованные каналы связи виртуальных частных сетей (VPN).Для проверки мы выбрали одну из распространённых программ с открытым исходным кодом – OpenVPN, и продукт, сертифицированный ФСБ РФ, – ViPNet. В этой статье описывается рабочая схема сети и базовые настройки программного обеспечения.

Настройка OpenVPN

В процессе работы мобильный клиент OpenVPN устанавливает защищённое соединение с серверной частью. Сервер OpenVPN, в соответствии с настройками, назначает подключенному клиенту IP-адрес из адресного пространства внутренней сети или приватный IP-адрес. В первом случае клиент «видит» сеть так же, как если бы он был подключен в общий коммутатор (так называемый ethernet-bridging). Во втором случае трафик от клиента маршрутизируется в необходимую подсеть сервером (IP-tunneling).  Последний вариант мы и рассмотрим.

Общая схема организации подключения к корпоративной сети через внешние каналы

Процесс настройки несложный. Дистрибутив OpenVPN можно скачать с официального сайта openvpn.net, а мобильное приложение устанавливается через Google Play.

Рассмотрим настройку для ОС Windows (для Linux процесс аналогичен). Устанавливаем OpenVPN 2.1.3 на сервер и проводим настройку:

1. Запускаем командную строку cmd.exe и переходим в папку установки OpenVPN командой

сd "C:\Program Files (x86)\OpenVPN\easy-rsa"

2. Инициируем создание конфигурационных файлов из эталонных, выполняя команду (здесь и далее под выполнением команды будем иметь в виду выполнение скрипта в командной строке)

init-config

3. Можно отредактировать в файле Vars.bat значения по умолчанию US, CA и т.д., чтобы при генерации сертификатов клиентов не изменять их каждый раз:

set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@host.domain

4. После того как отредактировали файл Vars.bat (или нет) выполняем последовательно команды Vars и Clean-all для очистки каталога ключей и сброса их начального индекса генерации, и переходим к следующему шагу – собственно, созданию сертификатов и ключей.

5. Выполняем команду Build-ca для создания сертификата и ключа центра сертификации (по умолчанию он действует 10 лет, но всегда можно отредактировать файл Build-ca.bat под свои нужды). Необходимо будет ввести данные или оставить значения по умолчанию, если редактировали файл Vars.bat (см. пункт 3):

Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [OpenVPN]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address [mail@host.domain]:

6. Генерируем сертификат и ключ для сервера командой Build-key-server server. На запрос ввести «Common Name» вводим значение «server». При запросе подписываем сертификат и принимаем его.

7. Генерацию сертификатов для клиента/ов выполняем командой Build-key <имя_клиента>. Когда запрашивает Common Name, вводим <имя_клиента>. Повторяем данную операцию для каждого клиента.

8. Параметры протокола шифрования Диффи-Хеллмана генерируем командой Build-dh. На этом часть генерации сертификатов и ключей завершается. Приступаем к настройке конфигурационных файлов серверной части OpenVPN.

9. Открываем в блокноте C:\Program Files (x86)\OpenVPN\sample-config\server.ovpn, находим параметры ca ca.crt, cert server.crt, key server.key, dh dh1024.pem и прописываем у них путь, куда скопируем сгенерированные сертификат и ключ серверной части:

ca "C:\\Program Files (x86)\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files (x86)\\OpenVPN\\config\\server.crt"
key "C:\\Program Files (x86)\\OpenVPN\\config\\server.key"
dh "C:\\Program Files (x86)\\OpenVPN\\config\\dh1024.pem"

Сохраняем файл как C:\Program Files (x86)\OpenVPN\config\server.ovpn.

10. Проделываем почти аналогичные действия для клиентского конфигурационного файла: открываем в блокноте C:\Program Files (x86)\OpenVPN\sample-config\client.ovpn, находим параметры ca ca.crt, cert server.crt, key server.key, remote my-server-1 1194 и прописываем у них путь до клиентских ключей и сертификатов:           

ca "C:\\Program Files (x86)\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files (x86)\\OpenVPN\\config\\имя_клиента.crt"
key "C:\\Program Files (x86)\\OpenVPN\\config\\имя_клиента.key"
remote <внешний_ip_адрес_сервера_vpn> 1194

Сохраняем файл как C:\Program Files (x86)\OpenVPN\easy-rsa\имя_клиента.ovpn.

11. Копируем файлы сертификатов в указанные в пунктах 9, 10 папках:

  • на сервере копируем файлы ca.crt, dh1024.pem, server.crt, server.key из папки C:\Program Files (x86)\OpenVPN\easy-rsa в папку C:\Program Files (x86)\OpenVPN\config
  • на мобильное устройство копируем файлы ca.crt, имя_клиента.crt, имя_клиента.key, имя_клиента.ovpn

После настройки запускаем на сервере службу OpenVPN. На мобильном устройстве с ОС Android запускаем приложение OpenVPN Connect, в контекстном меню выбираем Import – Import Profile from SD card, находим папку, куда скопировали файлы, выбираем файл <имя_клиента>.ovpn. После импорта профиля устанавливаем соединение нажатием на кнопку Connect. В результате получаем установленное защищённое соединение. В DIRECTUM Jazz прописываем адрес сервера NOMAD из корпоративной подсети и подключаемся. Следует отметить, что на сервере OpenVPN должна быть включена и настроена соответствующим образом маршрутизация трафика между подсетью защищённого соединения и внутренней сетью предприятия.

Настройка ViPNet

Общая схема организации подключения к корпоративной сети через внешние каналы

На сервер устанавливаем ПО ViPNet Coordinator 4.3, которое осуществляет шифрование и маршрутизацию трафика между клиентами ViPNet и внутренней сетью. На мобильное устройство устанавливаем ViPNet Client for Android. Для Android 4.2 используется версия приложения 2.1.0.86. Для устройств младше Android 4.2 используется версия 1.5, которая требует root-прав.

Так как ПО ViPNet является платным продуктом, то нам для тестовых целей были предоставлены предварительно сгенерированные пользовательские и серверные ключи, которыми мы и произвели активацию. Подробности процесса конфигурирования ключей оставим за рамками этой статьи. Заметим лишь, что ключи активации (dst-ключ) генерируются с помощью утилиты ViPNet Administrator и при конфигурировании в каждый ключ «зашиваются» адреса координаторов, справочники с данными о других клиентах ViPNet.

На координаторе настраиваем туннелирование до сервера NOMAD, для чего запускаем утилиту ViPNet Coordinator. Заходим в Сервис – Настройка приложения – Туннелирование и добавляем внутренний адрес сервера NOMAD (в нашем случае это 172.18.1.2), нажимаем ОК. В меню слева выбираем пункт «Защищённая сеть» и дважды нажимаем на наш хост мобильного клиента, в закладке «IP-адреса» выбираем в пункте «IP-адреса видимости узла» Реальные IP-адреса, нажимаем ОК.
Проверяем, запущена ли на сервере ViPNet Coordinator служба «Маршрутизация и удалённый доступ». Если она выключена, то включаем её автозапуск и перезагружаем компьютер.
На мобильном устройстве после подключения к сети (в нашем случае это был Wi-Fi) логинимся в мобильном клиенте ViPNet, заходим в настройки и прописываем IP-адрес узла такой же, какой был выдан устройству точкой доступа, например:

После чего снова перелогиниваемся в мобильном клиенте. Теперь мобильный клиент ViPNet виден и доступен на координаторе, а это значит, что трафик между клиентом и сервером защищён. Осталось только запустить DIRECTUM Jazz и указать в качестве узла подключения внутренний адрес сервера NOMAD (в нашем случае 172.18.1.2).

В заключение, хочется отметить, что также удалось проверить работу приложений DIRECTUM с использованием решений CheckPoint. Для организации VPN-соединения использовалось решение http://www.checkpoint.com/capsule/. Проверена работа на устройствах Android и iOS. Замечена особенность, что на некоторых Android устройствах версии 4.4 CheckPoint Capsule отказался работать. Судя по комментариям на GooglePlay проблема известная. На устройствах ранее 4.4 проблем с подключением не обнаружено.

13
Авторизуйтесь, чтобы оценить материал.
1
Mikhail Kislitsyn
Замечена особенность, что на некоторых Android устройствах версии 4.4 CheckPoint Capsule VPN отказался работать. Судя по комментариям на GooglePlay проблема известная. На устройствах ранее 4.4 проблем с подключением не обнаружено.

Интересный момент, что с выходом обновлений CheckPoint Capsule VPN появилась поддержка Android 6, но проблема с 4.4 так и не устранена.

Авторизуйтесь, чтобы написать комментарий