Page tree

Клиентский агент Rutoken KeyBox Agent – дополнительный компонент, который позволяет удаленно управлять устройствами пользователей (USB-токенами, смарт-картами). Rutoken KeyBox Agent устанавливается после развертывания Rutoken KeyBox.

С помощью агента на рабочих станциях пользователей в автоматическом режиме выполняются следующие операции:

  • добавление и назначение устройства;
  • выпуск пустого или назначенного устройства;
  • продолжение выпуска и обновления устройства в состоянии В ожидании;
  • запрос смены PIN-кода Пользователя по истечении заданного количества дней;
  • блокировка и сброс PIN-кода Пользователя;
  • обновление содержимого устройства;
  • очистка и инициализация устройства при отзыве;
  • смена PIN-кода Администратора;
  • контроль использования устройств и блокировка пользовательской сессии и устройства;
  • мониторинг устройств с информацией об устройствах с заблокированным PIN-кодом Пользователя и Администратора, о попытках ввода неверного PIN-кода и о подключении незарегистрированных устройств.

Rutoken KeyBox Agent устанавливается вместе с Rutoken KeyBox Middleware на рабочие станции, к которым подключаются устройства, выпущенные с помощью Rutoken KeyBox.

Установка и настройка

Выберите инструкцию в зависимости от ОС, где установлен сервер Rutoken KeyBox:

Чтобы установить и настроить Rutoken KeyBox Agent, выполните следующие действия:

  1. Создайте сертификаты сервисов агента.
  2. Настройте защищенное соединение с сайтом сервисов агента.
  3. Настройте Rutoken KeyBox для работы с клиентскими агентами.
  4. Установите и настройте агенты на рабочих станциях.

Создание сертификатов сервисов агента

Для работы агента требуются следующие сертификаты:

  • CM Agent CA – корневой сертификат сервисов агента. Используется для выдачи сертификатов рабочим станциям пользователей, на которых будут устанавливаться агенты.
  • CM Agent SSL – сертификат проверки подлинности, подписан корневым сертификатом. Необходим для установки двустороннего защищенного соединения между сервером и рабочей станцией с установленным агентом. Сертификат выдается на имя рабочей станции, на которой развернут сервер Rutoken KeyBox.
  • Сертификат рабочей станции – выдается автоматически при регистрации агента. Обращаясь к серверу, клиентский компьютер предоставляет свой сертификат, а сервер Rutoken KeyBox проверяет его подлинность. После проверки сервер добавляет клиентский компьютер в список доверенных и может передавать на него задачи. 

Сертификаты сервисов агента создаются с помощью утилиты Cm.Agent.Cert.Generator.

Генерация корневого и SSL-сертификата:

/root – генерация корневого сертификата сервисов агента.
/rootKeySize – размер закрытого ключа корневого сертификата сервисов агента (необязательный параметр, по умолчанию генерируется закрытый ключ размером 4096 бит, возможный диапазон от 512 до 8192 бит).
/sn <DNS-имя сервера> – генерация SSL-сертификата на указанное DNS-имя сервера.
/csn – генерация SSL-сертификата на имя сервера, на котором запущена утилита.
/sslKeySize – размер закрытого ключа SSL-сертификата (необязательный параметр, по умолчанию генерируется закрытый ключ размером 2048 бит, возможный диапазон от 512 до 4096 бит).
/pwd – пароль SSL-сертификата (необязательный параметр).
/installToStore – публикует сертификаты, выпущенные утилитой, в хранилища сертификатов сервера (необязательный параметр):

  • сертификат CM Agent CA в Доверенные корневые центры сертификации (Trusted Root Certification Authorities).
  • сертификат CM Agent SSL в хранилище Личных сертификатов рабочей станции, на которой установлен сервер Rutoken KeyBox.

Генерация только SSL-сертификата с помощью корневого сертификата CM Agent CA:

/rootKey – путь до файла корневого сертификата сервисов агента.
/ssl – генерация SSL-сертификата сервисов агента.
/sn <DNS-имя сервера> – генерация SSL-сертификата на указанное DNS-имя сервера.
/csn – генерация SSL-сертификата на имя сервера, на котором запущена утилита.
/pwd – пароль SSL-сертификата (необязательный параметр).
/sslKeySize – размер закрытого ключа SSL-сертификата (необязательный параметр, по умолчанию генерируется закрытый ключ размером 2048 бит, возможный диапазон от 512 до 4096 бит).

Чтобы создать сертификаты сервисов агента:

  1. Перейдите в каталог Rutoken KeyBox.WindowsServer\Misc\AgentCertGenerator на сервере Rutoken KeyBox.
  2. От имени администратора запустите в командной строке утилиту Cm.Agent.Cert.Generator c параметрами и дождитесь завершения ее работы:

    Cm.Agent.Cert.Generator.exe /root /csn /installToStore

В каталоге с утилитой появятся файлы:

  • agent_root_ca.json - корневой сертификат сервисов агента с закрытым ключом в формате JSON;
  • agent_root_ca.cer - корневой сертификат сервисов агента;
  • agent_root_ca.key - закрытый ключ корневого сертификата сервисов агента;
  • agent_ssl_cert.cer - SSL-сертификат сайта сервисов агента;
  • agent_ssl_cert.key - закрытый ключ SSL-сертификата сайта сервисов агента;
  • agent_ssl_cert.pfx - SSL-сертификат сервисов  агента с закрытым ключом в формате PFX.

Поместите сертификат CM Agent CA (agent_root_ca.cer) в Доверенные корневые центры сертификации (Trusted Root Certification Authorities) на сервере Rutoken KeyBox.

Для инсталляций с несколькими серверами Rutoken KeyBox

Если в вашей инфраструктуре развернуто несколько серверов Rutoken KeyBox с агентами, то для каждого сервера необходимо выпустить SSL-сертификат сервисов агента, используя общий корневой сертификат CM Agent CA. Корневой сертификат сервисов агента на всех серверах должен быть один и тот же.

Чтобы создать SSL-сертификат дополнительного сервера или обновить истекший сертификат, перенесите на сервер каталог с утилитой Cm.Agent.Cert.Generator и корневой сертификат сервисов агента с закрытым ключом в формате JSON (agent_root_ca.json) и выполните команду:

Cm.Agent.Cert.Generator.exe /rootKey <путь к файлу agent_root_ca.json> /ssl /sn <DNS-имя сервера Rutoken KeyBox> /installToStore
Пример
Cm.Agent.Cert.Generator.exe /rootKey "C:\AgentCertGenerator\agent_root_ca.json" /ssl /sn server.demo.local /installToStore

Настройка защищенного соединения с сайтом сервисов агента

  1. Перейдите в Диспетчер служб IIS (Internet Information Services (IIS) Manager).
  2. Выберите сайт Rutoken KeyBox Agent Site и перейдите в раздел Привязки... (Bindings...).
  3. Выберите привязку по порту 3003.
  4. Нажмите Изменить... (Edit...).
  5. Укажите в качестве SSL-сертификата сертификат CM Agent SSL или другой SSL/TLS-сертификат, выпущенный с любого доверенного УЦ в инфраструктуре на имя сервера системы и нажмите OK.

Порт 3003 используется по умолчанию. Если вы используете другой порт, то создайте и настройте новую привязку для него. Убедитесь, что порт открыт для входящих подключений в брандмауэре.

В качестве SSL/TLS-сертификата допускается использование RSA-сертификата, выпущенного c любого доверенного УЦ на имя сервера Rutoken KeyBox.

  • Субъект (Subject) сертификата должен содержать атрибут Общее имя (Common name) (FQDN сервера системы).
  • Дополнительное имя субъекта (Subject Alternative Name) сертификата должно содержать атрибут DNS-имя (DNS Name) (FQDN сервера системы).
    Например: server.demo.local или соответствующую запись с подстановочными знаками, например: *. demo.local (Wildcard certificate).
  • Улучшенный ключ (Enhanced Key Usage) сертификата должен содержать значение Проверка подлинности сервера (Server Authentication).

Чтобы установить и настроить Rutoken KeyBox Agent, выполните следующие действия:

  1. Создайте сертификаты сервисов агента.
  2. Настройте защищенное соединение с сайтом сервисов агента.
  3. Настройте Rutoken KeyBox для работы с клиентскими агентами.
  4. Установите и настройте агенты на рабочих станциях.

Создание сертификатов сервисов агента

Для работы агента требуются следующие сертификаты:

  • CM Agent CA – корневой сертификат сервисов агента. Используется для выдачи сертификатов рабочим станциям пользователей, на которых будут устанавливаться агенты.
  • CM Agent SSL – сертификат проверки подлинности, подписан корневым сертификатом. Необходим для установки двустороннего защищенного соединения между сервером и рабочей станцией с установленным агентом. Сертификат выдается на имя рабочей станции, на которой развернут сервер Rutoken KeyBox.
  • Сертификат рабочей станции – выдается автоматически при регистрации агента. Обращаясь к серверу, клиентский компьютер предоставляет свой сертификат, а сервер Rutoken KeyBox проверяет его подлинность. После проверки сервер добавляет клиентский компьютер в список доверенных и может передавать на него задачи. 

Сертификаты сервисов агента создаются с помощью утилиты Cm.Agent.Cert.Generator.

Генерация корневого и SSL-сертификата:
/root – генерация корневого сертификата сервисов агента.
/rootKeySize – размер закрытого ключа корневого сертификата сервисов агента (необязательный параметр, по умолчанию генерируется закрытый ключ размером 4096 бит, возможный диапазон от 512 до 8192 бит).
/sn <DNS-имя сервера> – генерация SSL-сертификата на указанное DNS-имя сервера.
/csn – генерация SSL-сертификата на имя сервера, на котором запущена утилита.
/sslKeySize – размер закрытого ключа SSL-сертификата (необязательный параметр, по умолчанию генерируется закрытый ключ размером 2048 бит, возможный диапазон от 512 до 4096 бит).
/pwd – пароль SSL-сертификата (необязательный параметр).

Генерация только SSL-сертификата с помощью корневого сертификата CM Agent CA:

/rootKey – путь до файла корневого сертификата сервисов агента.
/ssl – генерация SSL-сертификата сервисов агента.
/sn <DNS-имя сервера> – генерация SSL-сертификата на указанное DNS-имя сервера.
/csn – генерация SSL-сертификата на имя сервера, на котором запущена утилита.
/pwd – пароль SSL-сертификата (необязательный параметр).
/sslKeySize – размер закрытого ключа SSL-сертификата (необязательный параметр, по умолчанию генерируется закрытый ключ размером 2048 бит, возможный диапазон от 512 до 4096 бит).
/installToStore – публикует SSL-сертификат, выпущенный утилитой, в хранилище Личных сертификатов рабочей станции, на которой установлен сервер системы (необязательный параметр).

Чтобы создать сертификаты сервисов агента:

  1. Откройте терминал на сервере Rutoken KeyBox, перейдите в директорию RutokenKeyBox.LinuxServer\Misc\AgentCertGenerator и добавьте право на выполнение файла Cm.Agent.Cert.Generator:

    sudo chmod +x Cm.Agent.Cert.Generator.dll
  2. Запустите утилиту c параметрами /root /csn и дождитесь завершения ее работы:

    dotnet Cm.Agent.Cert.Generator.dll /root /csn

В каталоге с утилитой появятся файлы:

  • agent_root_ca.json - корневой сертификат сервисов агента с закрытым ключом в формате JSON.
  • agent_root_ca.cer - корневой сертификат сервисов агента.
  • agent_root_ca.key - закрытый ключ корневого сертификата сервисов агента.
  • agent_ssl_cert.cer - SSL-сертификат сайта сервисов агента.
  • agent_ssl_cert.key - закрытый ключ SSL-сертификата сайта сервисов агента.
  • agent_ssl_cert.pfx - SSL-сертификат сервисов  агента с закрытым ключом в формате PFX.

Поместите сертификат CM Agent CA (agent_root_ca.cer) в Доверенные корневые центры сертификации (Trusted Root Certification Authorities) на сервере Rutoken KeyBox.

Для инсталляций с несколькими серверами Rutoken KeyBox

Если в вашей инфраструктуре развернуто несколько серверов Rutoken KeyBox с агентами, то для каждого сервера необходимо выпустить SSL-сертификат сервисов агента, используя общий корневой сертификат CM Agent CA. Корневой сертификат сервисов агента на всех серверах должен быть один и тот же.

Для создания SSL-сертификата дополнительного сервера или обновления истекшего сертификата перенесите на сервер каталог с утилитой Cm.Agent.Cert.Generator и корневой сертификат сервисов агента с закрытым ключом в формате JSON (agent_root_ca.json) и выполните команду:

dotnet Cm.Agent.Cert.Generator.dll /rootKey <путь к файлу agent_root_ca.json> /ssl /sn <DNS-имя сервера Rutoken KeyBox> /installToStore
Пример
dotnet Cm.Agent.Cert.Generator.dll /rootKey ./agent_root_ca.json /ssl /sn server.demo.local1

Настройка защищенного соединения с сайтом сервисов агента

Выберите инструкцию в зависимости от ОС, где установлен сервер Rutoken KeyBox:

  1. Скопируйте SSL-сертификат сайта агентских сервисов, созданный утилитой Cm.Agent.Cert.Generator, и его приватный ключ в хранилище/etc/ssl/на сервере Rutoken KeyBox, а корневой сертификат агента – в хранилище доверенных корневых сертификатов.

    sudo cp ./agent_ssl_cert.cer /etc/ssl/
    sudo cp ./agent_ssl_cert.key /etc/ssl/
    sudo cp ./agent_root_ca.cer /etc/pki/ca-trust/source/anchors/
  2. Запустите команду обновления хранилища доверенных корневых сертификатов.

    sudo update-ca-trust extract
  3. Укажите пути до сертификата и закрытого ключа в конфигурационном файле используемого веб-сервера в разделе, который описывает сайт сервисов агента.

  1. Скопируйте SSL-сертификат сайта агентских сервисов, созданный утилитой Cm.Agent.Cert.Generator, и его приватный ключ в соответствующие хранилища на сервере Rutoken KeyBox, а корневой сертификат агента – в хранилище доверенных корневых сертификатов.
    Конвертируйте формат корневого сертификата агента в CRT.

    sudo cp ./agent_ssl_cert.cer /etc/ssl/certs/
    sudo cp ./agent_ssl_cert.key /etc/ssl/private/
    sudo cp ./agent_root_ca.cer /usr/local/share/ca-certificates/agent_root_ca.crt
  2. Запустите команду обновления хранилища доверенных корневых сертификатов.

    sudo update-ca-certificates -f
  3. Укажите пути до сертификата и закрытого ключа в конфигурационном файле используемого веб-сервера в разделе, который описывает сайт сервисов агента.


server {
        listen              3003 ssl;
        server_name         server.demo.local;

        ssl_certificate     "/etc/ssl/certs/agent_ssl_cert.cer"; 
        ssl_certificate_key "/etc/ssl/private/agent_ssl_cert.key";
        ssl_verify_client   optional_no_ca;

        location /agentregistrationapi 
             {   include /etc/nginx/conf.d/proxy.conf;  
                proxy_pass http://localhost:5006/agentregistrationapi;  }
        location /agentserviceapi      
         {   include /etc/nginx/conf.d/proxy.conf;  
                proxy_pass http://localhost:5007/agentserviceapi;  
                proxy_set_header x-ssl-client-cert $ssl_client_escaped_cert;  }
    }

<VirtualHost *:3003>
    protocols h2 http/1.1

    SSLCertificateFile /etc/apache2/ssl/agent_ssl_cert.cer
    SSLCertificateKeyFile /etc/apache2/ssl/agent_ssl_cert.key
    SSLCipherSuite @SECLEVEL=1:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384                

    ErrorLog logs/error.log
    CustomLog logs/access.log combined

    SSLEngine on
    SSLProtocol -all +TLSv1.2
    SSLHonorCipherOrder off
    SSLCompression off
    SSLSessionTickets on
    SSLUseStapling off
    SSLProxyEngine on
    RequestHeader set X-Forwarded-Proto https
    Header always set Strict-Transport-Security "max-age=63072000"

        ProxyPass /agentregistrationapi http://localhost:5006/agentregistrationapi
        ProxyPassReverse /agentregistrationapi http://localhost:5006/agentregistrationapi

    <Location "/agentserviceapi">
        SSLVerifyClient optional_no_ca
        SSLOptions +ExportCertData
        RequestHeader unset x-ssl-client-cert
        RequestHeader set x-ssl-client-cert "expr=%{escape:%{SSL_CLIENT_CERT}}"
        #RequestHeader set x-ssl-client-cert "expr=%{escape:%{SSL_CLIENT_S_DN}}"

        ProxyPass http://localhost:5007/agentserviceapi
        ProxyPassReverse http://localhost:5007/agentserviceapi 
    </Location>
</VirtualHost>

Порт 3003 используется по умолчанию. Если вы используете другой порт, то создайте и настройте новую привязку для него. Убедитесь, что порт открыт для входящих подключений в брандмауэре.

В качестве SSL/TLS-сертификата допускается использование RSA-сертификата, выпущенного c любого доверенного УЦ на имя сервера Rutoken KeyBox.

  • Субъект (Subject) сертификата должен содержать атрибут Общее имя (Common name) (FQDN сервера системы).
  • Дополнительное имя субъекта (Subject Alternative Name) сертификата должно содержать атрибут DNS-имя (DNS Name) (FQDN сервера системы).
    Например: server.demo.local или соответствующую запись с подстановочными знаками, например: *. demo.local (Wildcard certificate).
  • Улучшенный ключ (Enhanced Key Usage) сертификата должен содержать значение Проверка подлинности сервера (Server Authentication).

  • No labels