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, указанному в параметре |
Создание и настройка Клиентского 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 <имя>