Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Аутентификация пользователя на терминальном сервере по сертификату

При выключенном Kerberos на десктоп-клиенте

В этом разделе описано, как настроить аутентификацию пользователя на терминальном сервере по сертификату при выключенном Kerberos на десктоп-клиенте.

Linux

Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Это можно сделать тремя способами:

Способ 1. Через условный блок, используя один порт для подключения

  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

    Таким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.

  2. Перезагрузите sshd с помощью команды:

    sudo systemctl restart sshd

Способ 2. Через условный блок, используя два порта (для пользователей и администратора)

  1. Для этого после установки терминального агента в файле /etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)/ /etc/openssh/sshd_config(ALT Linux) раскомментируйте строку с указанием порта, если она ранее не была изменена (Смотрите Ручное изменение портов в файле конфигурации шлюза и агента).

  2. Ниже добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:

    Port 22
    Port 2222

    Где:

    • Port 22 — порт для пользователей;

    • Port 2222 — порт для администратора.

  3. В том же файле в конце добавьте строки:

    Match LocalPort 22
          TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub
          AuthenticationMethods publickey,password
    Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ
          AuthenticationMethods password publickey

    Таким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом, но только через порт 22. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений, но только через порт 2222.

  4. Перезагрузите sshd с помощью команды:

    sudo systemctl restart sshd

    На системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:

    sudo semanage port -a -t ssh_port_t -p tcp 2222

Способ 3. Через дублирование ssh-сервиса

  1. Создайте копии конфигурационного файла с помощью команды:

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_crt_pwd
    2. Для ALT Linux:

      sudo cp /etc/openssh/sshd_config /etc/openssh/sshd_config_crt_pwd
  2. В новом конфигурационном файле измените строку с портом на любой другой:

    Port 2222
  3. Создайте новый сервис sshd через копирование конфигурации существующего сервиса с помощью команды:

    sudo cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd_crt_pwd.service
  4. Измените строку ExecStart (укажите путь до нового конфигурационного файла sshd_config_crt_pwd) в скопированном файле:

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_config_crt_pwd
    2. Для ALT Linux:

      ExecStart=/usr/sbin/sshd -D -f /etc/openssh/sshd_config_crt_pwd
  5. Запустите и добавьте в автозагрузку новый сервис с помощью команды:

    sudo systemctl enable --now sshd_crt_pwd.service

    На системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:

    sudo semanage port -a -t ssh_port_t -p tcp 2222
  6. Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса /etc/ssh/sshd_config/ /etc/openssh/sshd_config(ALT Linux):

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ
    2. Для ALT Linux:

      AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ

      Таким образом по порту 22 сможет подключаться только администратор системы.

  7. Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса /etc/ssh/sshd_config_crt_pwd:

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub
      AuthenticationMethods publickey,password
    2. Для ALT Linux:

      TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub
      AuthenticationMethods publickey,password

      Таким образом по 2222 порту смогут подключаться остальные пользователи, которые предоставят сертификат, подписанный доверенным ключом.

  8. Перезапустите сервисы с помощью команды:

    sudo systemctl restart sshd && sudo systemctl restart sshd_crt_pwd

Windows

На ТС Windows необходимо скачать и установить OpenSSH версии v9.5.0.0p1-Beta.

Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Для этого после установки терминального агента:

  1. Настройте терминальный агент в конфигурационном файле C:\ProgramData\ssh\sshd_config. Для этого:

    1. В файле конфигурации измените параметр Port:

      Port 13389
    2. Перезагрузите sshd с помощью команды:

      Restart-Service sshd -Force

      Подробнее смотрите в разделе.

  2. Настройте ssh. Это можно сделать двумя способами:

Способ 1. Через условный блок, используя один порт для подключения

  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

    Таким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.

  2. Перезагрузите sshd с помощью команды:

    Restart-Service sshd -Force

Способ 2. Через условный блок, используя два порта (для пользователей и администратора)

  1. В конфигурационном файле SSH (C:\ProgramData\ssh\sshd_config) добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:

    Port 2222

    Где:

    • Port 2222 — порт для администратора.

  2. В том же файле перед строками:

    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
  3. Перезагрузите sshd с помощью команды:

    Restart-Service sshd -Force

    Чтобы разрешить сервису SSH использовать новый порт, требуется открыть входящее подключение. Для этого выполните команду:

    New-NetFirewallRule -DisplayName "SSH Range" -Direction Inbound -Protocol TCP -LocalPort 13389,2222 -Action Allow
  4. В файле конфигурации агента "C:\Program Files\TermitAgent\config" измените параметр TERMIT_AGENT_RDP_PARAMS:

    TERMIT_AGENT_RDP_PARAMS={"rdpOverSshPort": 13389}
  5. Перезапустите агент с помощью команды

    Restart-Service termit-agent -Force

При включенном Kerberos на десктоп-клиенте

В этом разделе описано, как настроить аутентификацию пользователя на терминальном сервере по сертификату при включенном Kerberos на десктоп-клиенте.

Linux

Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Это можно сделать тремя способами:

Способ 1. Через условный блок, используя один порт для подключения

  1. Для этого после установки терминального агента в конце файла /etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)/ /etc/openssh/sshd_config(ALT Linux) добавьте строки:

    TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub
    AuthenticationMethods publickey
    Match User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ
          AuthenticationMethods password publickey

    Таким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.

  2. Перезагрузите sshd с помощью команды:

    sudo systemctl restart sshd

Способ 2. Через условный блок, используя два порта (для пользователей и администратора)

  1. Для этого после установки терминального агента в файле /etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)/ /etc/openssh/sshd_config(ALT Linux) раскомментируйте строку с указанием порта, если она ранее не была изменена (Смотрите Ручное изменение портов в файле конфигурации шлюза и агента).

  2. Ниже добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:

    Port 22
    Port 2222

    Где:

    • Port 22 — порт для пользователей;

    • Port 2222 — порт для администратора.

  3. В том же файле в конце добавьте строки:

    Match LocalPort 22
          TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub
          AuthenticationMethods publickey
    Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ
          AuthenticationMethods password publickey

    Таким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом, но только через порт 22. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений, но только через порт 2222.

  4. Перезагрузите sshd с помощью команды:

    sudo systemctl restart sshd

    На системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:

    sudo semanage port -a -t ssh_port_t -p tcp 2222

Способ 3. Через дублирование ssh-сервиса

  1. Создайте копии конфигурационного файла с помощью команды:

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_crt_pwd
    2. Для ALT Linux:

      sudo cp /etc/openssh/sshd_config /etc/openssh/sshd_config_crt_pwd
  2. В новом конфигурационном файле измените строку с портом на любой другой:

    Port 2222
  3. Создайте новый сервис sshd через копирование конфигурации существующего сервиса с помощью команды:

    sudo cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd_crt_pwd.service
  4. Измените строку ExecStart (укажите путь до нового конфигурационного файла sshd_config_crt_pwd) в скопированном файле:

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_config_crt_pwd
    2. Для ALT Linux:

      ExecStart=/usr/sbin/sshd -D -f /etc/openssh/sshd_config_crt_pwd
  5. Запустите и добавьте в автозагрузку новый сервис с помощью команды:

    sudo systemctl enable --now sshd_crt_pwd.service

    На системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:

    sudo semanage port -a -t ssh_port_t -p tcp 2222
  6. Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса /etc/ssh/sshd_config/ /etc/openssh/sshd_config(ALT Linux):

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ
    2. Для ALT Linux:

      AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ

      Таким образом по порту 22 сможет подключаться только администратор системы.

  7. Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса /etc/ssh/sshd_config_crt_pwd:

    1. Для РЕД ОС, AstraLinux, Debian, OpenSUSE:

      TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub
      AuthenticationMethods publickey
    2. Для ALT Linux:

      TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub
      AuthenticationMethods publickey

      Таким образом по 2222 порту смогут подключаться остальные пользователи, которые предоставят сертификат, подписанный доверенным ключом.

  8. Перезапустите сервисы с помощью команды:

    sudo systemctl restart sshd && sudo systemctl restart sshd_crt_pwd

Windows

Внутренние пользователи осуществляют подключение к серверу по стандартному RDP-порту 3389, в то время как внешние пользователи подключаются через защищённый туннель, использующий порт 13389.

Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Для этого после установки терминального агента выполните настройки из раздела .