[KB7857] Настройка соединения HTTPS/SSL для ESET PROTECT On-Prem (Linux)

примечание:

Этот документ переведен для вашего удобства с помощью машинного перевода. Пожалуйста, будьте уверены, что мы приложили все усилия, чтобы обеспечить максимально точный перевод. Однако ни один автоматизированный перевод не призван заменить переводчика-человека. Официальным текстом является английская версия, которую можно найти, нажав на English справа от этого текста (или внизу, если вы читаете с мобильного). Если у вас возникли вопросы или замечания относительно точности переведенного текста, пожалуйста, обратитесь к официальной версии на английском языке или свяжитесь с местной службой поддержки. Спасибо за ваше терпение.

Проблема

Решение

Связанное решение: Пользователи Windows

Пользователи виртуального устройства Rocky Linux

Если вы являетесь пользователем виртуального устройства Rocky Linux, установите номер порта коннектора равным 443.

Подробнее читайте в статье ESET Management Agent с сертификатом из виртуального устройства Rocky Linux ESET PROTECT.

HTTPS

Из соображений безопасности мы рекомендуем настроить ESET PROTECT On-Prem на использование HTTPS.

Используйте существующий сертификат

При доступе к ESET PROTECT On-Prem через HTTP может появиться сообщение об ошибке «Используется незашифрованное соединение! Настройте веб-сервер на использование HTTPS». Это происходит после установки ESET PROTECT On-Prem.

Приведенные ниже инструкции касаются сертификатов для Apache Tomcat, которые используются для обеспечения безопасных HTTPS-соединений. Подробнее о сертификатах ESET PROTECT On-Prem.

  1. Переместите файл сертификата (например, certificate_file.pfx) в папку установки Apache Tomcat (например, /etc/tomcat/).

  2. Откройте файл Server.xml, расположенный в папке установки Apache Tomcat, и внесите в него следующие изменения:

    • Apache Tomcat 9

      • Если после тега <‎Service name="Catalina"> отсутствует тег <‎Connector, скопируйте следующую строку и вставьте её после тега <‎Service name="Catalina">.

        Используйте свои собственные значения для keystoreFile, keystorePass и keystoreType:

        <Connector port="8443"
                       protocol="HTTP/1.1"
                       SSLEnabled="true"
                       maxThreads="150"
                       scheme="https"
                       secure="true"
                       clientAuth="false"
                       sslEnabledProtocols="TLSv1.2,TLSv1.3"
                       ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
                                TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
                                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
                                TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
                                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
                                TLS_RSA_WITH_AES_128_CBC_SHA256,
                                TLS_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_RSA_WITH_AES_128_CBC_SHA,
                                TLS_RSA_WITH_AES_256_CBC_SHA256,
                                TLS_RSA_WITH_AES_256_GCM_SHA384,
                                TLS_RSA_WITH_AES_256_CBC_SHA"
                       keystoreFile="/etc/tomcat/certificate_file.pfx"
                       keystorePass="Secret_Password_123"
                       keystoreType="PKCS12"
                       />
      • Если после <‎Service name="Catalina"> присутствует <‎Connector, используйте свои собственные значения для перечисленных ниже параметров.

        • keystoreFile — укажите полный путь к файлу сертификата (.pfx, .keystore или другому). Если вы используете сертификат, не относящийся к JKS (например, файл .pfx ), удалите keyAlias (он присутствует в Server.xml по умолчанию) и добавьте соответствующий keystoreType.
        • keystorePass —укажите парольную фразу сертификата.
        • keystoreType — укажите тип сертификата.
    • Apache Tomcat 10

      Отредактируйте тег <Connector следующим образом:

      Используйте собственные значения для перечисленных ниже параметров.

      • certificateKeystoreFileукажите полный путь к файлу сертификата.
      • certificateKeystorePassword — укажите пароль хранилища сертификатов.

      <Connector port="443"
                     protocol="org.apache.coyote.http11.Http11NioProtocol"
                     maxThreads="150"
                     SSLEnabled="true">
                     <SSLHostConfig>
                      <Certificate certificateKeystoreFile=""/etc/tomcat/certificate_file.pfx"
                          certificateKeystorePassword="admin.1234"
                           type="RSA"/>
                     </SSLHostConfig>
                  </Connector>
  3. Перезапустите службу Tomcat:

    sudo systemctl restart tomcat
    • Если вы используете файл .keystore, укажите путь к файлу (keystoreFile="/etc/tomcat/tomcat.keystore") и задайте keyAlias (keyAlias="tomcat") вместо keystoreType.

    • Если вы хотите отключить HTTP:

      <!--
          <Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
      SELinux включен

      Пользователям, у которых включен SELinux и которые получают сообщение о недействительном сертификате, может потребоваться запустить команду restorecon для восстановления контекста безопасности SELinux:

      restorecon /etc/tomcat/my_cert_file.pfx
      
      ls -lZ
      
      -rw-r--r--. root root unconfined_u:object_r:etc_t:s0   /etc/tomcat/my_cert_file.pfx

Создайте новый сертификат и получите его подпись

Используйте безопасное соединение HTTPS/SSL для ESET PROTECT On-Prem.

  1. Создайте хранилище ключей с SSL-сертификатом. Для этого необходимо установить Java .

    Apache Tomcat требует Java:
    • Убедитесь, что Java, ESET PROTECT On-Prem и Apache Tomcat имеют одинаковую разрядность.

    • Если в вашей системе установлено несколько версий Java, рекомендуется удалить более старые версии и оставить только последнюю версию Java.

    • Для публичных обновлений Oracle Java SE, предназначенных для делового, коммерческого или производственного использования, требуется коммерческая лицензия. Если вы не приобрели лицензию на Java SE, вы можете воспользоваться этим руководством, чтобы перейти на бесплатную альтернативу.

    Java включает утилиту keytool, которая позволяет создавать сертификаты через командную строку.

    1. Для каждого экземпляра Tomcat (если у вас несколько экземпляров Tomcat) необходимо сгенерировать новый сертификат, чтобы в случае компрометации одного сертификата безопасность остальных экземпляров Tomcat оставалась обеспеченной. Ниже приведен пример команды для создания хранилища ключей с SSL-сертификатом.

    2. Перейдите в папку, где находится файл keytool, например /usr/lib/jvm/”версия Java”/jre/bin (путь зависит от ОС и версии Java), и выполните команду:

      sudo keytool -genkeypair -alias "tomcat" -keyalg RSA -keysize 4096 -validity 3650 -keystore "/etc/tomcat/tomcat.keystore" -storepass "yourpassword" -keypass "yourpassword" -dname "CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown"

      Путь к файлу /etc/tomcat/tomcat.keystore приведён лишь в качестве примера; выберите собственное безопасное и доступное местоположение.

      Параметры -storepass и -keypass

      Значения параметров -storepass и -keypass должны совпадать.

  2. Экспортируйте сертификат из хранилища ключей. Ниже приведена примерная команда для экспорта запроса на подпись сертификата из хранилища ключей:

    sudo keytool -certreq -alias tomcat -file "/etc/tomcat/tomcat.csr" -keystore "/etc/tomcat/tomcat.keystore" -ext san=dns:ESETPROTECT
    Замените значения соответствующим образом
    • Замените значение "/etc/tomcat/tomcat.csr" в параметре -file на фактический путь и имя файла, в который вы хотите экспортировать сертификат.

    • Замените значение ESETPROTECT для параметра -ext на фактическое имя хоста сервера, на котором работает ваш Apache Tomcat с ESET PROTECT On-Prem.

  3. Получите SSL-сертификат, подписанный выбранным вами корневым центром сертификации (CA).

    Вы можете перейти к шагу 6, если планируете импортировать корневой центр сертификации позже. Если вы решите действовать таким образом, ваш веб-браузер может отображать предупреждения о самоподписанном сертификате, и вам потребуется добавить исключение для подключения к ESET PROTECT On-Prem по протоколу HTTPS.

  4. Импортируйте корневой сертификат и промежуточный сертификат вашего ЦС в хранилище ключей. Эти сертификаты обычно предоставляются организацией, подписавшей ваш сертификат. Это необходимо, поскольку ответ сертификата проверяется с использованием доверенных сертификатов из хранилища ключей.

    sudo keytool -import -alias root -file "/etc/Tomcat/root.crt" -keystore "/etc/tomcat/tomcat.keystore"
    sudo keytool -import -alias intermediate -file "/etc/Tomcat/intermediate.crt.pem" -keystore "/etc/tomcat/tomcat.keystore"
  5. После получения подписанного сертификата с корневым центром сертификации (Root CA) импортируйте открытый ключ центра сертификации и сам сертификат (tomcat.cer) в хранилище ключей. Ниже приведён пример команды, импортирующей подписанный сертификат в хранилище ключей:

    sudo keytool -import -alias tomcat -file "/etc/tomcat/tomcat.cer" -keystore "/etc/tomcat/tomcat.keystore"
    Замените значения соответствующим образом

    Замените значение /etc/tomcat/tomcat.csr в параметре -file на фактический путь и имя файла подписанного сертификата.

    Если вы хотите использовать существующий сертификат (например, сертификат компании), следуйте этим инструкциям.

  6. Отредактируйте файл конфигурации server.xml так, чтобы тег <‎Connector был записан аналогично приведенному ниже примеру:

    <Connector server="OtherWebServer" port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat/tomcat.keystore" keystorePass="yourpassword"/>

    Данное изменение также отключает незащищённые функции Tomcat, оставляя включённым только HTTPS (параметрscheme= ). Из соображений безопасности вам также может потребоваться отредактировать файл tomcat-users.xml, чтобы удалить всех пользователей Tomcat, и изменить файл ServerInfo.properties, чтобы скрыть идентификационные данные Tomcat.

  7. Перезапустите службу Apache Tomcat. ESET PROTECT On-Prem может использовать имя службы tomcat9.

    sudo systemctl restart tomcat
    Безопасное соединение по-прежнему не устанавливается в Linux

    Здесь находится важная информация.

    В каталоге /var/....../tomcat может появиться следующее сообщение об ошибке: «failed to initialize end point associated with ProtocolHandler ["http-bio-443"]».

    Если проблема не устраняется, измените значение порта в файле server.xml на число, превышающее 1024, поскольку порты с номерами ниже 1024 могут быть недоступны для пользователей, не являющихся root. Если по какой-либо причине вам необходимо использовать порт 443, вы всё равно можете изменить его значение, а затем настроить перенаправление порта.

    Выполните следующие действия, чтобы включить перенаправление портов (например, с порта 443 на порт 8443):

    1. Разрешите удалённый доступ к веб-консоли:

      sudo iptables -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT

      В качестве альтернативы можно открыть и отредактировать файл конфигурации брандмауэра (nano /etc/sysconfig/iptables) и добавить следующую строку в раздел, начинающийся с *nat и заканчивающийся COMMIT:

      -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports |8443)
    2. Удалите порт 8080, чтобы отключить HTTP:

      sudo iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
    3. Сохраните правила брандмауэра:

      iptables-save > /etc/network/iptables.rules
    4. Отключите SELinux. Инструкции могут отличаться в зависимости от вашего дистрибутива Linux.