Опыт внедрения «Континент TLS VPN» в кластерной конфигурации +7


Привет, Хабр! Перед нами встала задачи по внедрению продукта компании «Код Безопасности» «Континент TLS VPN». В данной статье мы делимся опытом по внедрению данного продукта

Введение


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

Ключевые задачи TLS:

  1. обеспечить конфиденциальность, то есть реализовать защиту от утечек передаваемой информации;
  2. обеспечить обнаружение подмены, то есть реализовать сохранение целостности передаваемой информации;
  3. обеспечить аутентификацию узлов, то есть дать механизм проверки подлинности источника сообщений.

Данный протокол широко используется в приложениях, работающих с сетью интернет, таких как веб-браузеры, электронная почта, обмен мгновенными сообщениями и IP-телефония (VoIP).

Задача


В нашем случае необходимо было обеспечить защищенный с помощью ГОСТ-шифрования доступ к веб-ресурсу.

Предъявляемые требования:

  • Кластерная конфигурация (для решения требуется высокая отказоустойчивость)
  • Высокая пропускная способность
  • Поддержка различных браузеров (IE, Mozilla, Chrome)
  • Максимальное количество соединений в режиме HTTPS-прокси– 10 000
  • Сертификат ФСБ России на СКЗИ

Решение


Ниже представлена схема и описание компонентов.



Для решения данной задачи был выбран продукт компании «Код Безопасности» «Континент TLS VPN», соответствующий всем вышеперечисленным условиям.

Стоит отметить, что на момент проектирования это был единственный сертифицированный ПАК, осуществляющий шифрование по ГОСТ с использованием протокола TLS. В дальнейшем ожидается получение сертификата ПАК ViPNet TLS от «ИнфоТеКС».

Основные элементы системы:

  • СКЗИ «Континент TLS VPN Клиент», версия 1.2.1068
  • Балансировщик нагрузки, Netscaler v12
  • СКЗИ «Континент TLS VPN Сервер», версия 1.2.1.61

Описание элементов


СКЗИ «Континент TLS VPN Клиент» — TLS-клиент представляет собой устанавливаемое на компьютере удаленного пользователя программное обеспечение, функционирующее совместно с TLS-сервером. TLS-клиент предназначен для реализации защищенного доступа удаленных пользователей к веб-ресурсам корпоративной сети по каналам связи общих сетей передачи данных.

NetScaler — это контроллер доставки приложений, обеспечивающий гибкую доставку сервисов для традиционных, контейнерных и микросервисных приложений из центра обработки данных или любого облака. Балансировщик на основе Citrix Netscaler раскидывает сессии HTTPS между кластерами серверов TLS. Ответы от WEB сервера также собирает балансировщик.

СКЗИ «Континент TLS VPN Сервер» — сервер предназначен для обеспечения защищенного доступа удаленных пользователей к защищаемым ресурсам.

Порядок настройки


  1. Инициализируем TLS-сервер, производим настройку кластера, создаем запросы на сертификаты для работы TLS-сервера (корневой сертификат УЦ, сертификат сервера, сертификат для удаленного управления сервером, сертификат администратора и CRL).
  2. Первоначальная настройка TLS-серверов, импорт сертификатов.
  3. Проверка подключения к защищаемому ресурсу удаленного клиента с помощью TLS VPN Клиента.

Инициализация


Первая сложность возникла при запуске TLS-серверов. Появилось сообщение «No controller found». Совместно со специалистами компании «Код Безопасности» была выявлена довольно нестандартная проблема. Оказалось, ПАК отказался работать в ЦОДе с мониторами фирмы BenQ, а с любыми другими работал без проблем.

Первоначальная настройка несложная и состоит в основном из определения ip-адреса и шлюза, а также имени устройства. Плюс создание, экспорт/импорт мастер-ключа.

Заказчик в проекте использовал два сервера TLS. Оба сервера TLS должны работать в состоянии active-active.

На одном сервере создается мастер-ключ, на другие серверы он импортируется. Мастер-ключ (ключ кластера) предназначен для решения следующих задач:

  • шифрование закрытых ключей серверных сертификатов;
  • организация защищенного соединения между элементами кластера.

При экспорте мастер-ключа сервер TLS принял только единственную флешку от Transcend 3.0 4Гб. Никакие флешки, даже те, что шли в комплекте от «Кода Безопасности», к сожалению, не подошли.

Импорт сертификатов


Далее необходимо подключиться к серверу TLS по веб-морде, определить защищаемый ресурс и установить сертификаты для работы серверов (корневой сертификат УЦ, сертификат сервера, сертификат для удаленного управления сервером, сертификат администратора и CRL). Все эти сертификаты должны быть выданы одним УЦ. Для первого подключения по веб-морде нужно использовать КриптоПро CSP, а не «Код Безопасности CSP. При последующих сменах сертификатов, лучше сначала удалить корневой сертификат УЦ, а после менять другие сертификаты.

Из-за невозможности сразу сделать боевые сертификаты было принято решение проверить работоспособность кластера TLS серверов на сертификатах, сделанных на тестовом УЦ Криптопро.

На TLS-серверах есть возможность отключить аутентификацию пользователя. При этом защищенный канал будет создаваться при наличии клиента TLS и установленных сертификатов (корневого, сертификата сервера и CRL), т.е. личного сертификата для работы не требуется.

Проверка подключения


Изначально возникли проблемы с подключением по защищенному каналу к защищаемому ресурсу с помощью сертифицированной версии TLS-клиента от «Кода Безопасности». Получилось подключиться к защищаемому ресурсу с использованием TLS-клиента 2.0 от «Кода Безопасности», но данная версия пока находится на этапе сертификации. Проблема заключалась в неправильном редиректе на защищаемом ресурсе, который не проходил, потому что TLS-серверы не совсем корректно отрабатывали данное правило в релизной версии прошивки. Для решения проблемы необходимо было перепрошивать оба сервера TLS и поднимать сделанные бекапы.

Порядок перепрошивки следующий:

  • сохраняем базу сервера (чтобы не создавать все по новой)
  • заливаем образ на Flash, используя программу flashGUI
  • входим в БИОС, предварительно в настройках ПАК «Соболь» устанавливаем время срабатывания сторожевого таймера, достаточное для внесения изменения настроек в БИОС
  • изменяем порядок загрузки, устанавливаем загрузку с Flash, сохраняем
  • при старте будет сообщение об изменении разделов, соглашаемся
  • в процессе установки выбираем отладочную версию и используемую вами платформу
  • перезагрузка, входим в БИОС, меняем порядок установки, соглашаемся с изменением
  • настраиваем сервер локально
  • подключаемся к серверу
  • загружаем базу

Для входа в режим отладки на сервере TLS необходимо нажать клавишу F2.
Для версии 1.2 файл /usr/share/tls/webmgr/templates/websrv/nginx/base
Убрать из него строчку proxy_redirect и пересчитать контрольные суммы.

После проделанных операций заработал сертифицированный TLS-клиент от «Кода Безопасности», на работе которого в системе настаивал заказчик. Но вот в чем фокус, он не заработал в браузере Chrome, работа в котором была просто необходима заказчику, можно даже сказать, что все затачивалось под него. Был проведен еще ряд тестирований совместно с поддержкой «Кода Безопасности», и, как результат, заработало все на версии чуть более новой (1.2.1073), чем сертифицированная (1.2.1068).

Кстати, еще один из подводных камней при настройке любого клиента TLS от «Кода Безопасности» (кроме версии 2.0) – они не работают на виртуальных машинах. При тестировании часто использовались виртуальные машины, это еще немного усложнило процесс диагностики.

Выводы


В конце хотелось бы подытожить. Продукт несложный в настройке и разворачивании. Есть еще над чем работать разработчикам, это касается и сервера, и клиента. Но в целом продукт рабочий и работает в кластерной конфигурации. Система на текущий момент работает без сбоев и держит нагрузку. Надеемся, что наши набитые шишки помогут вам быстрее и эффективнее разворачивать «Континент TLS».

Статью подготовил Илья Платонов.




К сожалению, не доступен сервер mySQL