TLS

Общие сведения о TLS

TLS используется в Termidesk Connect для:

  • настройки доступа к веб-интерфейсу по протоколу HTTPS;

  • настройки SSL-соединения;

  • настройки функционала SSL Offload;

  • настройки взаимной аутентификации по протоколу mTLS.

Подразумевается, что SSL и TLS – два неразрывно связанных протокола.Поэтому здесь и далее они равнозначны: например, SSL Offload и TLS Offload представляют один и тот же процесс, но далее будет использовано только наименование SSL Offload.

SSL Offload – это процесс, в котором преобразование трафика SSL/TLS выполняется не на серверах приложений (Реальных Серверах), а на Termidesk Connect, что также позволяет снизить нагрузку с Реальных Серверов. Процесс выглядит следующим образом:

  • Termidesk Connect терминирует на себе сессию пользователя;

  • в зависимости от настроек Termidesk Connect:

    • либо преобразует полученные данные к открытому виду для последующего их анализа и обработки;

    • либо не преобразует полученные данные, поскольку они уже пришли в открытом виде;

  • далее, в зависимости от настроек, Termidesk Connect:

    • либо отправляет на Реальный Сервер данные без преобразования;

    • либо преобразует данные, а потом отправляет их на Реальный Сервер.

Для реализации этого функционала создаются SSL-Профили.

Файлы для SSL/TLS

Загрузка сертификатов и ключей выполняется через веб-интерфейс (см. подраздел Веб. TLS).

После загрузки файлы будут расположены в каталоге /etc/ssl/tdc/.

Профили SSL/TLS

Профили определяют настройки и параметры, используемые для преобразования данных. В контексте управления трафиком важно понимать различия между Серверными и Клиентскими Профилями:

  • Серверный SSL-Профиль настраивается для обеспечения безопасного соединения между пользователем и Termidesk Connect;

  • Клиентский SSL-Профиль настраивается для обеспечения безопасного соединения между Termidesk Connect и Реальным Сервером.

Создание и настройка Серверного SSL-Профиля

Создание и настройка Серверного SSL-Профиля выполняется одним из способов:

  • из интерфейса командной строки Termidesk Connect;

  • из веб-интерфейса Termidesk Connect (см. подраздел Веб. TLS).

Команда настройки Серверных SSL-Профилей включает в себя аналогичные параметры, что и Клиентский Профиль, с дополнительной настройкой идентификации имени сервера и управлением режимом взаимной аутентификации (mTLS).

Пример команд настройки Серверного SSL-Профиля:

Описание параметров также приведено в подразделе Объект ssl-profile.
  • создание SSL-Профиля:

set ssl-profile server <имя_Профиля>
  • указание времени ожидания (в секундах) ответа от пользователя:

set ssl-profile server <имя_Профиля> handshake-timeout <значение>
  • (опционально) указание значения поля SNI из TLS Hello, для которого требуются особые настройки обработки:

SNI – расширение протокола TLS, позволяющее пользователю сообщать имя узла, с которым он хочет установить соединение во время процесса «рукопожатия». Это позволяет серверу (в Termidesk Connect – Виртуальному Серверу) предоставлять несколько сертификатов на одном IP-адресе и TCP-порту, и, следовательно, позволяет работать нескольким HTTPS-сайтам или другим сервисам поверх TLS на одном IP-адресе без использования одного и того же сертификата на всех сайтах. Имя узла передается в TLS Hello пользователя.

Если требуется задать правила для нескольких SNI, то для каждого из них должна использоваться индивидуальная настройка.
set ssl-profile server <имя_Профиля> host <имя>
  • указание списка центров сертификации, которые используются для проверки подлинности клиентского сертификата пользователя (используется, если активирована взаимная аутентификация по протоколу mTLS):

set ssl-profile server <имя_Профиля> host <имя> setting ca-certs <список>
  • указание пути к файлу сертификата сервера, который будет использоваться для аутентификации Termidesk Connect:

set ssl-profile server <имя_Профиля> host <имя> setting cert <путь>
  • указание пути к файлу параметров Диффи-Хеллмана, использующегося для безопасного обмена ключами при установлении SSL-соединения:

set ssl-profile server <имя_Профиля> host <имя> setting dh-params <путь>
  • указание пути к файлу закрытого ключа, соответствующему серверному сертификату:

set ssl-profile server <имя_Профиля> host <имя> setting key <путь>
  • (опционально) если ключ зашифрован, то указать пароль для расшифровки закрытого ключа:

set ssl-profile server <имя_Профиля> host <имя> setting password <пароль>
  • активация поддержки взаимной аутентификации по протоколу mTLS:

set ssl-profile server <имя_Профиля> host <имя> setting mtls true
  • определение набора алгоритмов, которые могут использоваться для преобразования данных между пользователем и Termidesk Connect:

Команда позволяет за один раз добавить только один алгоритм.

После создания SSL-Профиля по умолчанию уже назначены следующие алгоритмы: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA25, TLS_AES_128_GCM_SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-RSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA.

set ssl-profile server <имя_Профиля> host <имя> setting ciphers <алгоритм> true
  • указание версии протокола TLS для данного Серверного SSL-Профиля:

set ssl-profile server <имя_Профиля> host <имя> setting versions <версия TLS> true
  • (опционально) задание комментария, который будет привязан к Серверному SSL-Профилю:

Для написания комментария допустимы только латинские буквы. В случае использования пробелов следует заключать текст комментария в двойные кавычки.
set ssl-profile server <имя> description <комментарий>

После настройки Профилей необходимо применить и сохранить данные:

  • применение заданных настроек:

commit
  • сохранение настроек:

write
  • просмотр заданных настроек (указывается формат вывода – XML, JSON и TXT):

show configuration xml ssl-profile server <имя_Профиля>
  • просмотр выполненных команд:

show configuration cli ssl-profile server <имя_Профиля>

Termidesk Connect позволяет использовать особую конфигурацию Серверного SSL-Профиля для соединения, не попавшего в указанные правила.

Если пришедший SNI пуст, либо не соответствует SNI, указанному в параметре host, то для этого соединения будет применена конфигурация setting-default.

Создание и настройка Клиентского SSL-Профиля

Создание и настройка Клиентского SSL-Профиля выполняется одним из способов:

  • из интерфейса командной строки Termidesk Connect;

  • из веб-интерфейса Termidesk Connect (см. подраздел Веб. TLS).

Описание параметров также приведено в подразделе Объект ssl-profile.

Пример команд настройки Клиентского Профиля:

  • создание Клиентского SSL-Профиля:

set ssl-profile client <имя>
При создании Клиентского SSL-Профиля создается минимально необходимая конфигурация для него. Все настройки, приведенные далее, относятся к переопределению конфигурации по умолчанию.
  • указание версии протокола TLS для данного SSL-Профиля:

Команда позволяет за один раз добавить только одно значение протокола TLS. После создания SSL-Профиля по умолчанию уже назначены следующие версии: tls-v1, tls-v11, tls-v12.
set ssl-profile client <имя> versions <версия_TLS> true
  • определение набора алгоритмов, которые могут использоваться для преобразования данных между Termidesk Connect и Реальным Сервером:

Команда позволяет за один раз добавить только один алгоритм.

После создания SSL-Профиля по умолчанию уже назначены следующие алгоритмы: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA25, TLS_AES_128_GCM_SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-RSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA.

set ssl-profile client <имя> ciphers <алгоритм> true
  • указание имени сервера по умолчанию для расширения SNI:

Если sni-default не установлен, то по умолчанию для соединения с Реальным Сервером используется SNI из запроса пользователя. Если sni-default установлен, то Termidesk Connect при соединении с Реальным Сервером будет использовать SNI, указанный в sni-default.
set ssl-profile client <имя> sni-default <имя>
  • указание времени ожидания (в секундах) установки соединения с Реальным Сервером:

set ssl-profile client <имя> handshake-timeout <значение>
  • (опционально) указание пути к файлу сертификата центра сертификации, используемого для проверки подлинности Реального Сервера:

set ssl-profile client <имя> ca-cert <путь>
  • (опционально) указание пути к файлу клиентского сертификата, используемого для аутентификации на Реальном Сервере:

set ssl-profile client <имя> cert <путь>
  • (опционально) указание пути к файлу параметров Диффи-Хеллмана, используемого для обмена ключами и обеспечения безопасного соединения:

set ssl-profile client <имя> dh-params <путь>
  • (опционально) указание пути к файлу закрытого ключа, соответствующему клиентскому сертификату:

set ssl-profile client <имя> key <путь>
  • (опционально) если ключ зашифрован, то указать пароль для расшифровки закрытого ключа:

set ssl-profile client <имя> password <пароль>
  • (опционально) задание комментария, который будет привязан к Клиентскому SSL-Профилю:

Для написания комментария допустимы только латинские буквы. В случае использования пробелов следует заключать текст комментария в двойные кавычки.
set ssl-profile client <имя> description <комментарий>

После настройки профилей необходимо применить и сохранить данные:

  • применение заданных настроек:

commit
  • сохранение настроек:

write
  • просмотр заданных настроек (указывается формат вывода – XML, JSON и TXT):

show configuration xml ssl-profile client <имя>
  • просмотр выполненных команд:

show configuration cli ssl-profile client <имя>