Аутентификация пользователя на терминальном сервере по сертификату
При выключенном Kerberos на десктоп-клиенте
В этом разделе описано, как настроить аутентификацию пользователя на терминальном сервере по сертификату при выключенном Kerberos на десктоп-клиенте.
Linux
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Это можно сделать тремя способами:
Способ 1. Через условный блок, используя один порт для подключения
-
Для этого после установки терминального агента в конце файла
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) добавьте строки:TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,password Match User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshd
Способ 2. Через условный блок, используя два порта (для пользователей и администратора)
-
Для этого после установки терминального агента в файле
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) раскомментируйте строку с указанием порта, если она ранее не была изменена (Смотрите Ручное изменение портов в файле конфигурации шлюза и агента). -
Ниже добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:
Port 22 Port 2222Где:
-
Port 22 — порт для пользователей;
-
Port 2222 — порт для администратора.
-
-
В том же файле в конце добавьте строки:
Match LocalPort 22 TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,password Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом, но только через порт 22. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений, но только через порт 2222.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshdНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222
Способ 3. Через дублирование ssh-сервиса
-
Создайте копии конфигурационного файла с помощью команды:
-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
sudo cp /etc/openssh/sshd_config /etc/openssh/sshd_config_crt_pwd
-
-
В новом конфигурационном файле измените строку с портом на любой другой:
Port 2222 -
Создайте новый сервис sshd через копирование конфигурации существующего сервиса с помощью команды:
sudo cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd_crt_pwd.service -
Измените строку ExecStart (укажите путь до нового конфигурационного файла
sshd_config_crt_pwd) в скопированном файле:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
ExecStart=/usr/sbin/sshd -D -f /etc/openssh/sshd_config_crt_pwd
-
-
Запустите и добавьте в автозагрузку новый сервис с помощью команды:
sudo systemctl enable --now sshd_crt_pwd.serviceНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222 -
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config//etc/openssh/sshd_config(ALT Linux):-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ -
Для ALT Linux:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫТаким образом по порту 22 сможет подключаться только администратор системы.
-
-
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config_crt_pwd:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,password -
Для ALT Linux:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,passwordТаким образом по 2222 порту смогут подключаться остальные пользователи, которые предоставят сертификат, подписанный доверенным ключом.
-
-
Перезапустите сервисы с помощью команды:
sudo systemctl restart sshd && sudo systemctl restart sshd_crt_pwd
Windows
|
На ТС Windows необходимо скачать и установить OpenSSH версии v9.5.0.0p1-Beta. |
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Для этого после установки терминального агента:
-
Настройте терминальный агент в конфигурационном файле
C:\ProgramData\ssh\sshd_config. Для этого:-
В файле конфигурации агента
"C:\Program Files\TermitAgent\config\config"измените параметр TERMIT_AGENT_RDP_PORT. Например:TERMIT_AGENT_RDP_PORT=13389 -
Перезапустите агент с помощью команды:
Restart-Service termit-agent -Force -
В файле конфигурации агента
"C:\ProgramData\ssh\sshd_config"измените параметр Port. Например:Port 13389 -
Перезапустите сервис с помощью команды:
Restart-Service sshd -ForceПодробнее смотрите в разделе.
-
-
Настройте ssh. Это можно сделать двумя способами:
Способ 1. Через условный блок, используя один порт для подключения
-
Откройте конфигурационный файл SSH (
C:\ProgramData\ssh\sshd_config) и перед строками:Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keysдобавьте:
casignaturealgorithms ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa PubkeyAcceptedAlgorithms=ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa TrustedUserCAKeys "C:\Program Files\TermitAgent\config\termit-ssh-ca.pub" AuthenticationMethods publickey Match User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.
-
Перезагрузите sshd с помощью команды:
Restart-Service sshd -Force
Способ 2. Через условный блок, используя два порта (для пользователей и администратора)
-
В конфигурационном файле SSH (
C:\ProgramData\ssh\sshd_config) добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:Port 2222Где:
-
Port 2222 — порт для администратора.
-
-
В том же файле перед строками:
Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keysДобавьте:
Match LocalPort 13389 casignaturealgorithms ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa PubkeyAcceptedAlgorithms=ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa TrustedUserCAKeys "C:\Program Files\TermitAgent\config\termit-ssh-ca.pub" AuthenticationMethods publickey Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickey -
Перезагрузите sshd с помощью команды:
Restart-Service sshd -Force
|
Чтобы разрешить сервису SSH использовать новый порт, требуется открыть входящее подключение. Для этого выполните команду:
|
При включенном Kerberos на десктоп-клиенте
В этом разделе описано, как настроить аутентификацию пользователя на терминальном сервере по сертификату при включенном Kerberos на десктоп-клиенте.
Linux
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Это можно сделать тремя способами:
Способ 1. Через условный блок, используя один порт для подключения
-
Для этого после установки терминального агента в конце файла
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) добавьте строки:TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,password Match User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshd
Способ 2. Через условный блок, используя два порта (для пользователей и администратора)
-
Для этого после установки терминального агента в файле
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) раскомментируйте строку с указанием порта, если она ранее не была изменена (Смотрите Ручное изменение портов в файле конфигурации шлюза и агента). -
Ниже добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:
Port 22 Port 2222Где:
-
Port 22 — порт для пользователей;
-
Port 2222 — порт для администратора.
-
-
В том же файле в конце добавьте строки:
Match LocalPort 22 TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,password Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом, но только через порт 22. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений, но только через порт 2222.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshdНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222
Способ 3. Через дублирование ssh-сервиса
-
Создайте копии конфигурационного файла с помощью команды:
-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
sudo cp /etc/openssh/sshd_config /etc/openssh/sshd_config_crt_pwd
-
-
В новом конфигурационном файле измените строку с портом на любой другой:
Port 2222 -
Создайте новый сервис sshd через копирование конфигурации существующего сервиса с помощью команды:
sudo cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd_crt_pwd.service -
Измените строку ExecStart (укажите путь до нового конфигурационного файла
sshd_config_crt_pwd) в скопированном файле:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
ExecStart=/usr/sbin/sshd -D -f /etc/openssh/sshd_config_crt_pwd
-
-
Запустите и добавьте в автозагрузку новый сервис с помощью команды:
sudo systemctl enable --now sshd_crt_pwd.serviceНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222 -
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config//etc/openssh/sshd_config(ALT Linux):-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ -
Для ALT Linux:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫТаким образом по порту 22 сможет подключаться только администратор системы.
-
-
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config_crt_pwd:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,password -
Для ALT Linux:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,passwordТаким образом по 2222 порту смогут подключаться остальные пользователи, которые предоставят сертификат, подписанный доверенным ключом.
-
-
Перезапустите сервисы с помощью команды:
sudo systemctl restart sshd && sudo systemctl restart sshd_crt_pwd
Windows
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Для этого после установки терминального агента выполните настройки из раздела .