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

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

Чтобы обеспечить взаимодействие между веб-консолью и агентами для Linux, необходимо разместить на них набор сертификатов и ключей. Можно использовать имеющийся у вас набор или создать тестовый (см. далее).

Примечание

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

Создание набора самоподписанных сертификатов и ключей

Чтобы создать тестовый набор сертификатов и ключей, выполните следующие действия:

  1. Создайте временный каталог. Например:

    $ mkdir /tmp/protego
    
  2. Создайте во временном каталоге файл скрипта:

    $ sudo touch /tmp/protego/gen_crt.sh
    
  3. Внесите в файл скрипта следующий текст (с учетом особенностей вашей инфраструктуры):

    # !/bin/bash
    
    # Create dir
    mkdir -p ~/certs
    cd ~/certs
    
    # Create file config
    cat <<EOF > domains.ext
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    EOF
    
    # Generate CA key and cert
    openssl genrsa -out server_ca.key 2048
    openssl req -new -x509 -nodes -days 365 -key server_ca.key -out server_ca.crt -subj "/C=RU/ST=MOSCOW/L=MOSCOW/O=CyberProtect LLC/OU=RnD/CN=testSrvCA"
    
    # Generate server key
    openssl req -newkey rsa:2048 -nodes -keyout server.key -out server.req -subj "/C=RU/ST=MOSCOW/L=MOSCOW/O=CyberProtect LLC/OU=RnD/CN=testSrv"
    openssl x509 -req -in server.req -days 365 -CA server_ca.crt -CAkey server_ca.key -set_serial 01 -out server.crt -extfile domains.ext
    
    # Generate client key and cert
    openssl req -newkey rsa:2048 -nodes -keyout client.key -out client.req -subj "/C=RU/ST=MOSCOW/L=MOSCOW/O=CyberProtect LLC/OU=RnD/CN=testClient"
    openssl x509 -req -in client.req -days 365 -CA server_ca.crt -CAkey server_ca.key -set_serial 01 -out client.crt -extfile domains.ext
    

    Имена ключей и сертификатов должны удовлетворять следующим правилам:

    • При создании ключа клиента client.key поле CN должно заканчиваться словом "Client" или "Agent". Например:

      openssl req -newkey rsa:2048 -nodes -keyout client.key -out client.req -subj "/C=RU/ST=MOSCOW/L=MOSCOW/O=CyberProtect LLC/OU=RnD/CN=testClient"
      
    • При создании ключа сервера server.key поле CN не должно заканчиваться словом "Client" или "Agent". Например:

      openssl req -newkey rsa:2048 -nodes -keyout server.key -out server.req -subj "/C=RU/ST=MOSCOW/L=MOSCOW/O=CyberProtect LLC/OU=RnD/CN=testSrv"
      
  4. Перейдите в созданный каталог, сделайте скрипт исполняемым и запустите его:

    $ cd /tmp/protego
    $ sudo chmod +x ./gen_crt.sh
    $ ./gen_crt.sh
    

В результате выполнения скрипта в домашней директории пользователя будет создан каталог certs с набором самоподписанных сертификатов и ключей. Например, для пользователя administrator будут созданы следующие файлы:

/home/administrator/certs/client.crt # Сертификат клиента
/home/administrator/certs/client.key # Закрытый ключ для сертификата клиента
/home/administrator/certs/client.req
/home/administrator/certs/domains.ext
/home/administrator/certs/server.crt # Сертификат сервера
/home/administrator/certs/server.key # Закрытый ключ для сертификата сервера
/home/administrator/certs/server.req
/home/administrator/certs/server_ca.crt # Сертификат центра сертификации
/home/administrator/certs/server_ca.key

Все следующие действия описаны на примере данного набора.

Настройка веб-консоли для работы с набором сертификатов и ключей

Чтобы настроить веб-консоль для работы с набором сертификатов и ключей, выполните следующие действия:

  1. Скопируйте в директорию веб-консоли /opt/cyberprotect/cpserver/backend/ssl/ (ОС Linux) или C:\Program Files\Cyber Protego Server\backend (ОС Windows) следующие файлы: server.crt, server.key, server_ca.crt, client.crt, client.key.

    Пример для ОС Linux:

    $ sudo cp ~/certs/{server.crt,server.key,server_ca.crt,client.crt,client.key} /opt/cyberprotect/cpserver/backend/ssl/
    
  2. В конфигурационном файле /opt/cyberprotect/cpserver/CPServerBackend.yml (ОС Linux) или C:\Program Files\Cyber Protego Server\backend\CPServerBackend.yml (ОС Windows), в разделах server -> management и client включите использование TLS и укажите пути к скопированным файлам.

    server:
      <...>
      management:
        <...>
        tls:
          enabled: true
          cert: /opt/cyberprotect/cpserver/backend/ssl/server.crt
          key: /opt/cyberprotect/cpserver/backend/ssl/server.key
          caCert: /opt/cyberprotect/cpserver/backend/ssl/server_ca.crt
        agent_cert:
          cert: /opt/cyberprotect/cpserver/backend/ssl/client.crt
          key: /opt/cyberprotect/cpserver/backend/ssl/client.key
    client:
      <...>
      tls:
        enabled: true
        cert: /opt/cyberprotect/cpserver/backend/ssl/server.crt
        key: /opt/cyberprotect/cpserver/backend/ssl/server.key
        caCert: /opt/cyberprotect/cpserver/backend/ssl/server_ca.crt
    
    server:
      <...>
      management:
        <...>
        tls:
          enabled: true
          cert: C:\Program Files\Cyber Protego Server\backend\server.crt
          key: C:\Program Files\Cyber Protego Server\backend\server.key
          caCert: C:\Program Files\Cyber Protego Server\backend\server_ca.crt
    client:
      <...>
      tls:
        enabled: true
        cert: C:\Program Files\Cyber Protego Server\backend\server.crt
        key: C:\Program Files\Cyber Protego Server\backend\server.key
        caCert: C:\Program Files\Cyber Protego Server\backend\server_ca.crt
    
  3. Перезапустите службу CPServerBackend:

    $ sudo systemctl restart CPServerBackend
    
    > net stop CPServerBackend && net start CPServerBackend
    

Настройка агентов для работы с набором сертификатов и ключей

Этот шаг можно пропустить, если используется веб-консоль на ОС Linux, для который выполнены все настройки, указанные ранее в этом разделе. В таком случае сертификаты будут размещены на агентах автоматически при выполнении задач установки.

Если в папке /opt/cyberprotect/cpserver/backend/ssl/ нет ключа и сертификата клиента, при выполнении задач установки агенты будут установлены, но не настроены. В этом случае потребуется настроить взаимодействие с ними вручную.

Чтобы настроить агенты для работы с набором сертификатов и ключей, выполните следующие действия для каждого агента:

  1. Скопируйте в директорию агента /opt/cyberprotect/protego/bin/ следующие файлы: client.crt, client.key, server_ca.crt. Например:

    $ sudo cp ~/certs/{client.key,client.crt,server_ca.crt} /opt/cyberprotect/protego/bin/
    
  2. От имени пользователя root укажите владельца скопированных файлов и задайте права доступа к ним:

    $ su
    $ cd /opt/cyberprotect/protego/bin/
    $ chown cyberprotect:cyberprotect *.crt *.key
    $ chmod 0400 *.crt *.key
    
  3. Перезапустите службу protegod:

    $ sudo systemctl restart protegod