[KB7857] Налаштування з'єднання HTTPS/SSL для ESET PROTECT On-Prem (Linux)

ПРИМІТКА:

Ця сторінка перекладена за допомогою комп'ютера. Клацніть англійську мову в розділі Мови на цій сторінці, щоб переглянути оригінальний текст. Якщо вам щось незрозуміло, зверніться до місцевої служби підтримки.

Проблема

Рішення

Пов’язане рішення: Користувачі 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, рекомендуємо видалити старі версії та залишити лише найновішу.

    • Для публічних оновлень 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 "вашпароль" -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, якщо плануєте імпортувати кореневий CA пізніше. Якщо ви вирішите діяти таким чином, ваш веб-браузер може відображати попередження про самопідписаний сертифікат, і вам доведеться додати виняток, щоб підключитися до 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.