Настройка mTLS
Конфигурирование веб-сервера Apache для mTLS
Для использования mTLS между компонентами Termidesk нужно выполнить конфигурирование веб-сервера apache. Для этого:
-
изменить конфигурационный файл
/etc/apache2/sites-available/termidesk.conf, указав:
| Указанные пути к сертификатам используются в качестве примера. |
SSLEngine on
SSLCertificateFile /home/cld/certs/server.cert.pem
SSLCertificateKeyFile /home/cld/certs/server.key.pem
SSLCACertificateFile /home/cld/certs/ca.cert.pem
# SSLVerifyClient require
# SSLVerifyClient optional
# SSLVerifyClient none
#SSLVerifyClient require|optional|none
# Для корректной работы Termidesk с MTLS необходимо настроить директивы ниже
# в соответствии с условиями и требованиями окружения инсталляции
# SSLCACertificateFile
# SSLVerifyClient
# SSLVerifyDepth
# Проброс параметров клиентского сертификата в Termidesk
# через набор собственных заголовков
RequestHeader set X-TDSK-SSL-CLIENT-FORMAT 'apache'
RequestHeader set X-TDSK-SSL-CLIENT-S-DN expr=%{SSL_CLIENT_S_DN}
RequestHeader set X-TDSK-SSL-CLIENT-I-DN expr=%{SSL_CLIENT_I_DN}
RequestHeader set X-TDSK-SSL-CLIENT-SERIAL expr=%{SSL_CLIENT_M_SERIAL}
RequestHeader set X-TDSK-SSL-CLIENT-VALIDITY-START expr=%{SSL_CLIENT_V_START}
RequestHeader set X-TDSK-SSL-CLIENT-VALIDITY-END expr=%{SSL_CLIENT_V_END}
RequestHeader set X-TDSK-SSL-CLIENT-VERIFY expr=%{SSL_CLIENT_VERIFY}
RequestHeader set X-TDSK-SSL-CLIENT-CERT "expr=%{escape:%{SSL_CLIENT_CERT}}"
-
перезапустить веб-сервер:
sudo systemctl restart apache2
Конфигурирование компонентов Termidesk для mTLS
Общие сведения о поддержке mTLS компонентами Termidesk
Termidesk поддерживает взаимную аутентификацию между компонентами Termidesk по протоколу mTLS.
В Termidesk версии 7.0 настройка mTLS поддерживается в компонентах:
-
«Универсальный диспетчер» для всех ролей («Портал администратора», «Портал пользователя», «Агрегатор администратора», «Агрегатор пользователя»);
-
«Менеджер рабочих мест»;
-
«Агент виртуального рабочего места»;
-
«Сессионный агент»;
-
TERA;
-
«Шлюз», реализованный «Балансировщиком нагрузки Термидеск Коннект» (Termidesk Connect).
Для настройки нужно:
-
загрузить сертификаты для mTLS на узел каждого компонента;
-
указать ранее загруженные сертификаты в конфигурационных файлах каждого компонента, участвующего во взаимодействии по mTLS;
-
выбрать сценарии подключений mTLS для сервера Termidesk. Сценарии определяют, между какими компонентами будет использоваться взаимная аутентификация. Выбор сценариев задается в параметре
MTLS_CONNECTIONSконфигурационного файла/etc/opt/termidesk-vdi/termidesk.conf(см. подраздел Конфигурационный файлtermidesk.conf). При распределенной установке серверных компонентов Termidesk параметр может быть задан на каждом узле:-
узле «Универсального диспетчера»;
-
узле «Менеджер рабочих мест»;
-
-
выбрать режим mTLS в конфигурации сервера Termidesk и в каждом компоненте, с которым предполагается взаимодействие и который поддерживает mTLS:
-
для сервера Termidesk («Универсальный диспетчер» и его ролей, «Менеджер рабочих мест») режим mTLS задается в параметре
MTLS_MODEконфигурационного файла/etc/opt/termidesk-vdi/termidesk.conf; -
для компонентов Termidesk режим mTLS задается в конфигурационных файлах каждого компонента;
-
-
выполнить настройку веб-сервера apache для mTLS (см. подраздел Конфигурирование веб-сервера Apache для mTLS);
-
в настройках веб-браузера, из которого будет выполняться подключение к серверу Termidesk, добавить корневой сертификат УЦ в список доверенных (пример для Mozilla Firefox):
-
перейти в меню «Настройки»;
-
выбрать раздел «Приватность и защита». На открывшейся странице переместиться к пункту «Защита - Сертификаты» и нажать экранную кнопку [Просмотр сертификатов…];
-
в открывшемся окне перейти во вкладку «Центры сертификации» и нажать экранную кнопку [Импортировать];
-
выбрать ранее сохраненный файл корневого сертификата УЦ и нажать экранную кнопку [Открыть];
-
в открывшемся окне загрузки сертификата выбрать цели импорта. Рекомендуется отметить все предложенные варианты и затем нажать экранную кнопку [ОК].
-
| При настроенном режиме mTLS подключение к серверу Termidesk выполняется по его FQDN. |
Пример конфигурирования mTLS между компонентами «Универсальный диспетчер» и «Агент виртуального рабочего места»
| Пример приведен для компонентов Termidesk, установленных в ОС Astra Linux Special Edition 1.8. |
Конфигурирование узла «Универсального диспетчера», установленного с ролями «Портал администратора», «Портал пользователя»:
-
загрузить клиентские сертификаты и ключи для mTLS:
-
скопировать их в каталог
/etc/opt/termidesk-vdi/; -
назначить владельцем каждого файла пользователя
termidesk, пример:sudo chown termidesk:termidesk /etc/opt/termidesk-vdi/<имя>.pem -
изменить права на каждый файл:
sudo chmod 600 /etc/opt/termidesk-vdi/<имя>.pem
-
-
указать клиентский сертификат, ключ к нему и корневой сертификат УЦ в конфигурационном файле
/etc/opt/termidesk-vdi/termidesk.confв параметрахMTLS_CLIENT_CERT,MTLS_CLIENT_KEY,MTLS_CLIENT_CAсоответственно; -
в параметре
MTLS_CONNECTIONSзадать значениеva_agent; -
в параметре
MTLS_MODEзадать значениеpermissive; -
перезагрузить службу
termidesk-vdi:
sudo systemctl restart termidesk-vdi
-
выполнить настройку веб-сервера apache для mTLS (см. подраздел Конфигурирование веб-сервера Apache для mTLS).
Конфигурирование узла «Агента виртуального рабочего места»:
-
загрузить серверные сертификаты и ключи для mTLS:
-
скопировать их в каталог
/etc/termidesk; -
назначить владельцем каждого файла пользователя
root, пример:sudo chown root:root /etc/termidesk/<имя>.pem -
изменить права на каждый файл:
sudo chmod 600 /etc/termidesk/<имя>.pem
-
-
загрузить клиентские сертификаты и ключи для mTLS аналогично пункту выше;
-
в графическом интерфейсе ОС перейти «Звезда - Программы - Инструменты», выбрать ярлык «VDI Agent Configuration» и сконфигурировать параметры:
Предаполагается, что подключение к серверу Termidesk уже было указано, поэтому здесь указаны только параметры, необходимые для mTLS.
-
«mTLS»: выбрать значение «Разрешительный режим»;
-
«Источник сертификатов»: выбрать значение «Файловая система»;
-
«Сервер»: указать в параметрах «Цепочка ЦС», «Сертификат», «Закрытый ключ» ранее загруженные файлы сертификатов и ключей. При необходимости заполнить параметр «Пароль» (если ключ защищен паролем) и отметить пункт «Использовать как клиентский сертификат» (если загруженный сертификат может использоваться и как серверный, и как клиентский);
-
«Клиент»: аналогично указать клиентские сертификаты. Если ранее был отмечен пункт «Использовать как клиентский сертификат», то выполнять действие не требуется;
-
-
для проверки корректности подключения к серверу Termidesk необходимо нажать экранную кнопку [Проверить]. Результатом проверки должно являться сообщение «Проверка успешно завершена».
В случае, если сертификаты узлов «Универсального диспетчера» и «Агента виртуального рабочего места» созданы в разных УЦ, то потребуется перечислить корневые и промежуточные сертификаты всех УЦ для компонента «Агента виртуального рабочего места». Пример:
-
пусть файл корневого УЦ, выписавшего сертификаты, загруженные для «Универсального диспетчера», содержит информацию (приведен не полный текст сертификата):
-----BEGIN CERTIFICATE-----
IBAgIBATANBg
-----END CERTIFICATE-----
-
пусть файл корневого УЦ, выписавшего сертификаты, загруженные для «Агента виртуального рабочего места», содержит информацию (приведен не полный текст сертификата):
-----BEGIN CERTIFICATE-----
MIIEfDCCAuSgAw
-----END CERTIFICATE-----
-
тогда следует в файл корневого УЦ, выписавшего сертификаты, загруженные для «Агента виртуального рабочего места», добавить информацию об еще одном УЦ:
-----BEGIN CERTIFICATE-----
MIIEfDCCAuSgAw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
IBAgIBATANBg
-----END CERTIFICATE-----