Indeed CM Agent
Indeed CM Agent (клиентский агент Indeed CM) является дополнительным компонентом системы, который устанавливается после развертывания Indeed Certificate Manager.
Indeed CM Agent позволяет удаленно управлять и контролировать использование устройств пользователей (USB-токенов, смарт-карт).
С помощью агента на рабочих станциях пользователей в автоматическом режиме выполняются следующие операции:
- блокировка и сброс PIN-кода пользователя,
- обновление содержимого устройства,
- очистка и инициализация устройства при отзыве,
- смена PIN-кода администратора устройства,
- контроль использования устройств и блокировка пользовательской сессии и устройства,
- мониторинг устройств с информацией об устройствах с заблокированным PIN-кодом пользователя и администратора, о попытках ввода неверного PIN-кода и о подключении незарегистрированных устройств.
Indeed CM Agent устанавливается вместе с Indeed CM Middleware на рабочие станции, к которым подключаются устройства, выпущенные с помощью Indeed CM.
Установка и настройка Indeed CM Agent
Выберите инструкцию в зависимости от ОС, установленной на сервере Indeed CM:
- ОС Windows
- ОС Linux
Чтобы установить и настроить Indeed CM Agent, выполните следующие действия:
- Создайте сертификаты сервисов агента.
- Настройте защищенное соединение с сайтом сервисов агента.
- Настройте Indeed CM для работы с клиентскими агентами.
- Установите и настройте агенты на рабочих станциях.
Создание сертификатов сервисов агента
Для работы агента требуются следующие сертификаты:
- CM Agent CA – корневой сертификат сервисов агента. Используется для выдачи сертификатов рабочим станциям пользователей, на которых будут устанавливаться Агенты.
- CM Agent SSL – сертификат проверки подлинности, подписан корневым сертификатом. Необходим для установки двустороннего защищенного соединения между сервером и рабочей станцией с установленным Агентом. Сертификат выдается на имя рабочей станции, на которой развернут сервер Indeed CM.
- Сертификат рабочей станции – выдается автоматически при регистрации Агента. Обращаясь к серверу, клиентский компьютер предоставляет свой сертификат, а сервер Indeed CM проверяет его подлинность. После проверки сервер добавляет клиентский компьютер в список доверенных и может передавать на него задачи.
Сертификаты сервисов агента создаются с помощью утилиты Cm.Agent.Cert.Generator.
Параметры утилиты 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 в хранилище Личных сертификатов рабочей станции, на которой установлен сервер Indeed CM.
Генерация только SSL-сертификата с помощью корневого сертификата CM Agent CA:
/rootKey
– путь до файла корневого сертификата сервисов агента.
/ssl
– генерация SSL-сертификата сервисов агента.
/sn <DNS-имя сервера>
– генерация SSL-сертификата на
указанное DNS-имя сервера.
/csn
– генерация SSL-сертификата на имя сервера, на котором запущена
утилита.
/pwd
– пароль SSL-сертификата (необязательный параметр).
/sslKeySize
– размер закрытого ключа SSL-сертификата (необязательный
параметр, по умолчанию генерируется закрытый ключ размером 2048 бит,
возможный диапазон от 512 до 4096 бит).
Чтобы создать сертификаты сервисов агента, выполните следующие действия:
- Перейдите в каталог IndeedCM.WindowsServer\Misc\AgentCertGenerator на сервере Indeed CM.
- От имени администратора запустите в командной строке утилиту 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) на сервере Indeed CM.
Если в вашей инфраструктуре развернуто несколько серверов Indeed CM с агентами, то для каждого сервера необходимо выпустить 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-имя сервера IndeedCM> /installToStore
Cm.Agent.Cert.Generator.exe /rootKey "C:\AgentCertGenerator\agent_root_ca.json" /ssl /sn server.demo.local /installToStore
Настройка защищенного соединения с сайтом сервисов агента
- Перейдите в Диспетчер служб IIS (Internet Information Services (IIS) Manager).
- Выберите сайт IndeedCM Agent Site и перейдите в раздел Привязки... (Bindings...).
- Выберите привязку по порту 3003.
- Нажмите Изменить... (Edit...).
- Укажите в качестве SSL-сертификата сертификат CM Agent SSL или другой SSL/TLS-сертификат, выпущенный с любого доверенного УЦ в инфраструктуре на имя сервера системы и нажмите OK.
Пример настройки привязки для сайта IndeedCM Agent Site
Чтобы установить и настроить Indeed CM Agent, выполните следующие действия:
- Создайте сертификаты сервисов агента.
- Настройте защищенное соединение с сайтом сервисов агента.
- Настройте Indeed CM для работы с клиентскими агентами.
- Установите и настройте агенты на рабочих станциях.
Создание сертификатов сервисов агента
Для работы агента требуются следующие сертификаты:
- CM Agent CA – корневой сертификат сервисов агента. Используется для выдачи сертификатов рабочим станциям пользователей, на которых будут устанавливаться Агенты.
- CM Agent SSL – сертификат проверки подлинности, подписан корневым сертификатом. Необходим для установки двустороннего защищенного соединения между сервером и рабочей станцией с установленным Агентом. Сертификат выдается на имя рабочей станции, на которой развернут сервер Indeed CM.
- Сертификат рабочей станции – выдается автоматически при регистрации Агента. Обращаясь к серверу, клиентский компьютер предоставляет свой сертификат, а сервер Indeed CM проверяет его подлинность. После проверки сервер добавляет клиентский компьютер в список доверенных и может передавать на него задачи.
Сертификаты сервисов агента создаются с помощью утилиты Cm.Agent.Cert.Generator.
Параметры утилиты 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-сертификат, выпущенный утилитой, в
хранилище Личных сертификатов рабочей станции, на которой установлен
сервер системы (необязательный параметр).
Чтобы создать сертификаты сервисов агента, выполните следующие действия:
- Откройте терминал на сервере Indeed CM, перейдите в директорию IndeedCM.LinuxServer\Misc\AgentCertGenerator и добавьте право на выполнение файла Cm.Agent.Cert.Generator:
sudo chmod +x Cm.Agent.Cert.Generator
- Запустите утилиту c параметрами
/root /csn
и дождитесь завершения ее работы:./Cm.Agent.Cert.Generator /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) на сервере Indeed CM.
Если в вашей инфраструктуре развернуто несколько серверов Indeed CM с агентами, то для каждого сервера необходимо выпустить 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-имя сервера IndeedCM> /installToStore
./Cm.Agent.Cert.Generator /rootKey ./agent_root_ca.json /ssl /sn indeedcm2.demo.local1
:::
```powershell title="Пример"
./Cm.Agent.Cert.Generator /rootKey ./agent_root_ca.json /ssl /sn server.demo.local1
Настройка защищенного соединения с сайтом сервисов агента
Выберите инструкцию в зависимости от ОС, установленной на сервер Indeed CM:
- RHEL-based
- Debian-based
Скопируйте SSL-сертификат сайта агентских сервисов, созданный утилитой Cm.Agent.Cert.Generator, и его приватный ключ в хранилище /etc/ssl/ на сервере Indeed CM, а корневой сертификат Агента – в хранилище доверенных корневых сертификатов.
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/Запустите команду обновления хранилища доверенных корневых сертификатов.
sudo update-ca-trust extract
Укажите пути до сертификата и закрытого ключа в конфигурационном файле используемого веб-сервера в разделе, который описывает сайт сервисов агента.
Скопируйте SSL-сертификат сайта агентских сервисов, созданный утилитой Cm.Agent.Cert.Generator, и его приватный ключ в соответствующие хранилища на сервере Indeed CM, а корневой сертификат Агента – в хранилище доверенных корневых сертификатов. Конвертируйте формат корневого сертификата Агента в CRT.
sudo cp ./agent_ssl_cert.cer /etc/ssl/certs/
sudo cp ./agent_ssl_cert.key /etc/ssl/private/
sudo cp ./agent_root_ca.crt /usr/local/share/ca-certificates/Запустите команду обновления хранилища доверенных корневых сертификатов.
sudo update-ca-trust
Укажите пути до сертификата и закрытого ключа в конфигурационном файле используемого веб-сервера в разделе, который описывает сайт сервисов агента.
Пример конфигурационного файла веб-сервера NGINX
server {
listen 3003 ssl;
server_name server.demo.local;
ssl_certificate "/etc/ssl/certs/server.demo.local_ssl_cert.cer";
ssl_certificate_key "/etc/ssl/private/server.demo.local_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; }
}
Пример конфигурационного файла веб-сервера Apache
<VirtualHost *:3003>
protocols h2 http/1.1
SSLCertificateFile /etc/apache2/ssl/server.demo.local_ssl_cert.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.demo.local_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 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/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 любого доверенного УЦ на имя сервера Indeed CM.
- Субъект (Subject) сертификата должен содержать атрибут Общее имя (Common name) (FQDN сервера системы).
- Дополнительное имя субъекта (Subject Alternative Name)
сертификата должно содержать атрибут DNS-имя (DNS Name) (FQDN
сервера системы).
Например: server.demo.local или соответствующую запись с подстановочными знаками, например: *. demo.local (Wildcard certificate). - Улучшенный ключ (Enhanced Key Usage) сертификата должен содержать значение Проверка подлинности сервера (Server Authentication).
Настройка Indeed CM для работы с клиентскими агентами
Настройте Indeed Certificate Manager на работу с агентами:
- Запустите Мастер настройки Indeed CM:
- Откройте браузер и перейдите по адресу
https://<FQDN сервера Indeed CM>/cm/wizard
. - Введите код в поле Код аутентификации и нажмите Войти.
- Откройте браузер и перейдите по адресу
- Перейдите в раздел Клиентский агент.
- Включите опцию Разрешить использование клиентских агентов.
- Укажите стратегию генерации Идентификатора агента для доменных/вне доменных компьтеров для регистрации в Indeed CM:
- Не задано. Значение по умолчанию.
- Использовать машинный GUID.
MachineGuid
рабочей станции. - Генерировать новый GUID. Выберите данную опцию, если у нескольких рабочих станций будет одно значение
MachineGuid
. - Использовать доменный SID компьютера.
- Использовать SID компьютера. Выберите данную опцию, если агент установлен на рабочую станцию, которая находится вне домена. Идентификатору агента присвоится строковое значение
MachineGuid
из ветки реестра [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography] рабочей станции.
Если вам нужно сменить Стратегию генерации идентификатора агента после первоначальной настройки Indeed CM, выполните следующие действия:
- Остановите сервисы агентов agentregistrationapi и agentserviceapi на сервере Indeed CM.
- Удалите все клиентские агенты в разделе Агенты Консоли управления или выполните запрос в базу данных системы для удаления зарегистрированных агентов и их сессий.
- Примените изменения в Мастере настройки и распространите измененный файл конфигурации сервиса agentregistrationapi на сервере системы.
- Запустите сервисы агентов agentregistrationapi и agentserviceapi.
- Для регистрации агентов без подтверждения администратора включите опцию Автоматическая регистрация Агентов. Если включить опцию Автоматическая регистрация Агентов, то после установки и настройки Агента на рабочей станции он появится в разделе Агенты Консоли управления Indeed CM со статусом Зарегистрирован.
- Загрузите сертификат агента – файл корневого сертификата сервисов агента с закрытым ключом в формате JSON agent_root_ca.json.
- Выберите Уровень журналирования событий агентом:
- все (значение по умолчанию),
- только ошибки,
- только предупреждения и ошибки.
- Укажите Периодичность получения данных с сервера и Интервал повторного выполнения отмененной пользователем задачи.
- Имя заголовка HTTP-запроса сертификата указано по умолчанию. Если Indeed CM используется с балансировщиком нагрузки. Включите опцию Передавать только поле 'Субъект' сертификата агента в заголовках HTTP-запросов при использовании Indeed CM с балансировщиком нагрузки, чтобы снизить трафик.
- Перейдите в пункт Подтверждение и нажмите Применить для сохранения настроек.
- Примените настройки на сервере Indeed CM.