Беспроводные сети получили широкое распространение, поэтому обеспечение безопасности передаваемых данных – вопрос весьма актуальный. Тема защиты подключения уже поднимались в статьях Безопасность: Настройка демилитаризованной зоны, Обеспечение безопасного использования мобильных решений DIRECTUM, Безопасность: Тюнинг HTTPS. На практике мы должны были убедиться в полноценной работоспособности мобильного решения DIRECTUM Jazz при работе через шифрованные каналы связи виртуальных частных сетей (VPN).Для проверки мы выбрали одну из распространённых программ с открытым исходным кодом – OpenVPN, и продукт, сертифицированный ФСБ РФ, – ViPNet. В этой статье описывается рабочая схема сети и базовые настройки программного обеспечения.
В процессе работы мобильный клиент 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 папках:
После настройки запускаем на сервере службу OpenVPN. На мобильном устройстве с ОС Android запускаем приложение OpenVPN Connect, в контекстном меню выбираем Import – Import Profile from SD card, находим папку, куда скопировали файлы, выбираем файл <имя_клиента>.ovpn. После импорта профиля устанавливаем соединение нажатием на кнопку Connect. В результате получаем установленное защищённое соединение. В DIRECTUM Jazz прописываем адрес сервера NOMAD из корпоративной подсети и подключаемся. Следует отметить, что на сервере OpenVPN должна быть включена и настроена соответствующим образом маршрутизация трафика между подсетью защищённого соединения и внутренней сетью предприятия.
Общая схема организации подключения к корпоративной сети через внешние каналы
На сервер устанавливаем ПО 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 проблем с подключением не обнаружено.
Интересный момент, что с выходом обновлений CheckPoint Capsule VPN появилась поддержка Android 6, но проблема с 4.4 так и не устранена.
Авторизуйтесь, чтобы написать комментарий