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
Загрузка сертификатов, ключей, CRL и других файлов выполняется с помощью протокола SFTP или через веб-интерфейс (см. подраздел Веб. TLS).
После загрузки файлы будут расположены в каталоге /etc/ssl/tdc/.
|
Профили SSL/TLS
Профили определяют настройки и параметры, используемые для преобразования данных. В контексте управления трафиком важно понимать различия между Серверными и Клиентскими Профилями:
-
Серверный SSL-Профиль настраивается для обеспечения безопасного соединения между пользователем и Termidesk Connect;
-
Клиентский SSL-Профиль настраивается для обеспечения безопасного соединения между Termidesk Connect и Реальным Сервером.
Создание и настройка Серверного SSL-Профиля
Создание и настройка Серверного SSL-Профиля выполняется одним из способов:
-
из интерфейса командной строки Termidesk Connect;
-
из веб-интерфейса Termidesk Connect (см. подраздел Веб. TLS).
Команды настройки Серверного SSL-Профиля включают в себя аналогичные параметры, что и Клиентский SSL-Профиль, с дополнительной настройкой идентификации имени сервера и управления режимом взаимной аутентификации (mTLS).
Пример команд настройки Серверного SSL-Профиля:
Описание параметров также приведено в подразделе Объект ssl-profile.
|
-
создание SSL-Профиля:
set ssl-profile server <имя_Профиля>
-
указание времени ожидания (в секундах) ответа от пользователя (значение от 1 до 60, по умолчанию –
5):
set ssl-profile server <имя_Профиля> handshake-timeout <значение>
-
(опционально) указание значения поля SNI из TLS Hello, для которого требуются особые настройки обработки:
|
SNI – расширение протокола TLS, позволяющее пользователю сообщать имя узла, с которым он хочет установить соединение во время процесса «рукопожатия». Это позволяет серверу (в Termidesk Connect – Виртуальному Серверу) предоставлять несколько сертификатов на одном IP-адресе и TCP-порту, и, следовательно, позволяет работать нескольким HTTPS-сайтам или другим сервисам поверх TLS на одном IP-адресе без использования одного и того же сертификата на всех сайтах. Имя узла передается в TLS Hello пользователя. Если требуется задать правила для нескольких SNI, то для каждого из них должна использоваться индивидуальная настройка. Поддерживается задание шаблонов SNI по формату:
|
set ssl-profile server <имя_Профиля> host <имя>
-
(опционально) указание файла сертификата УЦ, который используются для проверки подлинности клиентского сертификата пользователя (используется, если активирована взаимная аутентификация по протоколу mTLS):
|
Указывается полное имя файла с расширением. Для одного правила SNI может быть задано несколько файлов сертификатов УЦ. Команда позволяет за один раз добавить только один файл. Так же файлы могут быть получены из Хранилища секретов. Пример значения параметра: |
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
-
если активирован протокол mTLS, указать метод проверки отзыва для клиентских сертификатов (по умолчанию –
NONE):
|
Значение может быть:
|
set ssl-profile server <имя_Профиля> host <имя> setting mtls-check <метод_проверки_mTLS>
-
если выбран метод
CRL, настроить параметры проверки клиентских сертификатов методом CRL:-
указание CRL-файла для проверки клиентских сертификатов:
Указывается полное имя файла с расширением. Пример значения параметра:
crl.pem.Так же файл может быть получен из Хранилища секретов. Пример значения параметра:
pki://v1/pki/cert/crl#certificate.set ssl-profile server <имя_Профиля> host <имя> setting crl-param file <имя_файла>
-
-
если выбран метод
OCSP, настроить параметры проверки клиентских сертификатов методом OCSP:-
указание URL-адреса сервера (OCSP Responder):
В текущей версии Termidesk Connect для сервера (OCSP Responder) поддерживается только протокол HTTP. Пример: http://myocspserver.local/.set ssl-profile server <имя_Профиля> host <имя> setting ocsp-param url <URL> -
указание метода HTTP-запроса:
В текущей версии Termidesk Connect поддерживается только метод POST.set ssl-profile server <имя_Профиля> host <имя> setting ocsp-param method POST -
указание времени ожидания (в секундах) ответа от сервера (OCSP Responder) (по умолчанию –
10)set ssl-profile server <имя_Профиля> host <имя> setting ocsp-param timeout <значение> -
(опционально) активация кеширования OCSP-ответов (по умолчанию –
true):set ssl-profile server <имя_Профиля> host <имя> setting ocsp-param cache true -
(опционально) активация поддержки расширения Nonce (по умолчанию –
true):set ssl-profile server <имя_Профиля> host <имя> setting ocsp-param nonce true -
(опционально) активация строгого режима проверки (по умолчанию –
true):Значение может быть:
-
true– допуск только клиентов, чьи сертификаты разрешены; -
false– допуск клиентов, чьи сертификаты разрешены или чьих сертификатов нет в БД.
set ssl-profile server <имя_Профиля> host <имя> setting ocsp-param strict true -
-
-
(опционально) активация поддержки OCSP Stapling с фоновым обновлением подписи серверного сертификата через OCSP Responder (по умолчанию –
false):
|
Для OCSP Stapling не задается URL-адрес, т.к он извлекается из серверного сертификата. В файле серверного сертификата необходимо указывать всю цепочку сертификатов, ведущую к УЦ, включая все промежуточные сертификаты. |
set ssl-profile server <имя_Профиля> host <имя> setting stapling 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
-
использование механизма Secure Renegotiation (по умолчанию –
ENABLE):
|
Механизм Secure Renegotiation применяется для протокола TLS версии 1.2 или старше и позволяет безопасно пересогласовать параметры SSL-соединения без разрыва текущего защищенного канала. Secure Renegotiation требуется в сценариях, при которых необходима периодическая смена ключей. При активированном Secure Renegotiation:
|
set ssl-profile server <имя> host <имя> setting ssl-reneg state ENABLE
-
задание лимита запросов в минуту на SSL-соединение (по умолчанию –
10):
|
При превышении заданного лимита для всех последующих попыток будет возвращено предупреждение о невозможности согласования на уровне протокола, пока период не обновится. При значении |
set ssl-profile server <имя> host <имя> setting ssl-reneg rate <значение>
-
использование механизма Session Reuse (по умолчанию –
STATEFUL):
|
Механизм Session Reuse (повторное использование SSL-сессии) применяется для протокола TLS версии 1.2 или старше и позволяет повторно использовать ранее согласованные SSL-параметры для новых соединений, что исключает необходимость выполнения полного рукопожатия (handshake). Значение может быть:
|
set ssl-profile server <имя> host <имя> setting session-reuse type <значение>
-
(если используется
STATEFUL) задание времени хранения (в секундах) SSL-сессии в кеше (по умолчанию –7200):
set ssl-profile server <имя> host <имя> setting session-reuse stateful-param session-timeout <значение>
-
(опционально) задание комментария, который будет привязан к Серверному 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
-
использование механизма Secure Renegotiation (по умолчанию –
ENABLE):
|
Механизм Secure Renegotiation применяется для протокола TLS версии 1.2 или старше и позволяет безопасно пересогласовать параметры SSL-соединения без разрыва текущего защищенного канала. Secure Renegotiation требуется в сценариях, при которых необходима периодическая смена ключей. При активированном Secure Renegotiation:
|
set ssl-profile client <имя> ssl-reneg state ENABLE
-
определение набора алгоритмов, которые могут использоваться для преобразования данных между 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 <имя>
-
указание времени ожидания (в секундах) установки соединения с Реальным Сервером (значение от 1 до 60, по умолчанию –
5):
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 <имя>
Политики SSL/TLS
SSL-Политики определяют выбор SSL-Профиля и (или) Сервера Балансировки на основании данных, полученных из сообщения TLS Hello.
Создание и настройка SSl-Политики выполняется одним из способов:
-
из интерфейса командной строки Termidesk Connect;
-
из веб-интерфейса Termidesk Connect (см. подраздел SSL-Политики).
Для создания и настройки SSL-Политики используются команды:
Описание параметров также приведено в подразделе Объект ssl-policy.
|
-
создание SSL-Политики:
set ssl-policy policy <имя>
-
указание порядкового номера для условия SSL-Политики:
|
Чем ниже номер, тем выше приоритет, и тем раньше условие будет обработано SSL-Политикой. Может быть задано несколько условий для одной SSL-Политики. Команда позволяет за один раз добавить только одно условие. |
set ssl-policy policy <имя> rules <номер>
-
указание условия для правила SSL-Политики:
|
Возможные типы условий:
|
set ssl-policy policy <имя> rules <номер> <тип> <условие> <значение>
-
указание действия при выполнении условия:
|
Параметром может быть:
|
set ssl-policy policy <имя> rules <номер> action <параметр> <значение>
-
применение заданных настроек:
commit
-
сохранение настроек:
write
-
просмотр заданных настроек (указывается формат вывода –
XML,JSONилиTXT):
show configuration xml ssl-policy policy <имя>
-
просмотр выполненных команд:
show configuration cli ssl-policy policy <имя>