[KB7857] Skonfiguruj połączenie HTTPS/SSL dla programu ESET PROTECT On-Prem (Linux)

NOTATKA:

Ta strona została przetłumaczona przez komputer. Kliknij przycisk Angielski w sekcji Języki na tej stronie, aby wyświetlić oryginalny tekst. Jeśli coś jest niejasne, skontaktuj się z lokalnym działem pomocy technicznej.

Problem

Rozwiązanie

Powiązane rozwiązanie: Użytkownicy systemu Windows

Użytkownicy wirtualnego urządzenia Rocky Linux

Jeśli korzystasz z wirtualnego urządzenia Rocky Linux, ustaw numer portu łącznika na 443.

Dowiedz się więcej o Agencie zarządzania ESET z certyfikatem z wirtualnego urządzenia Rocky Linux ESET PROTECT.

HTTPS

Ze względów bezpieczeństwa zalecamy skonfigurowanie ESET PROTECT On-Prem tak, aby korzystał z protokołu HTTPS.

Użyj istniejącego certyfikatu

Podczas uzyskiwania dostępu do ESET PROTECT On-Prem przez protokół HTTP może pojawić się komunikat o błędzie „Korzystasz z niezaszyfrowanego połączenia! Skonfiguruj serwer WWW tak, aby korzystał z protokołu HTTPS”. Dzieje się tak po instalacji ESET PROTECT On-Prem.

Poniższe kroki dotyczą certyfikatów dla serwera Apache Tomcat, które służą do zapewnienia bezpiecznych połączeń HTTPS. Dowiedz się więcej o certyfikatach ESET PROTECT On-Prem.

  1. Przenieś plik certyfikatu (na przykład certificate_file.pfx) do folderu instalacyjnego serwera Apache Tomcat (na przykład /etc/tomcat/).

  2. Otwórz plik Server.xml znajdujący się w folderze instalacyjnym serwera Apache Tomcat i edytuj go w następujący sposób:

    • Apache Tomcat 9

      • Jeśli po elemencie <‎Service name="Catalina"> nie ma elementu <‎Connector, skopiuj poniższy ciąg znaków i wklej go po elemencie <‎Service name="Catalina">.

        Użyj własnych wartości dla keystoreFile, keystorePass i 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"
                       />
      • Jeśli po elemencie <‎Service name="Catalina"> występuje element <‎Connector >, należy użyć własnych wartości dla parametrów wymienionych poniżej.

        • keystoreFile – podaj pełną ścieżkę do pliku certyfikatu (.pfx, .keystore lub inny). Jeśli używasz certyfikatu innego niż JKS (na przykład pliku .pfx ), usuń keyAlias (jest on domyślnie obecny w pliku Server.xml ) i dodaj odpowiedni keystoreType.
        • keystorePassPodaj hasło certyfikatu.
        • keystoreType – Określ typ certyfikatu.
    • Apache Tomcat 10

      Edytuj tag <Connector w następujący sposób:

      Użyj własnych wartości dla parametrów wymienionych poniżej.

      • certificateKeystoreFilePodaj pełną ścieżkę do pliku certyfikatu.
      • certificateKeystorePassword – Podaj hasło do magazynu certyfikatów.

      <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. Uruchom ponownie usługę Tomcat:

    sudo systemctl restart tomcat
    • Jeśli korzystasz z pliku .keystore, użyj ścieżki do tego pliku (keystoreFile="/etc/tomcat/tomcat.keystore") i zdefiniuj keyAlias (keyAlias="tomcat") zamiast keystoreType.

    • Jeśli chcesz wyłączyć protokół HTTP:

      <!--
          <Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
      Włączony SELinux

      Użytkownicy, którzy mają włączony SELinux i otrzymują komunikat o nieprawidłowym certyfikacie, mogą być zmuszeni do uruchomienia polecenia restorecon w celu przywrócenia kontekstu bezpieczeństwa 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

Utwórz nowy certyfikat i uzyskaj jego podpis

W przypadku rozwiązania ESET PROTECT On-Prem należy korzystać z bezpiecznego połączenia HTTPS/SSL.

  1. Utwórz magazyn kluczy z certyfikatem SSL. Musisz mieć zainstalowaną Javę .

    Apache Tomcat wymaga środowiska Java:
    • Sprawdź, czy Java, ESET PROTECT On-Prem i Apache Tomcat mają tę samą liczbę bitów.

    • Jeśli w systemie zainstalowanych jest wiele wersji Javy, zalecamy odinstalowanie starszych wersji i pozostawienie tylko najnowszej wersji Javy.

    • Publiczne aktualizacje Oracle JAVA SE przeznaczone do użytku biznesowego, komercyjnego lub produkcyjnego wymagają licencji komercyjnej. Jeśli nie zakupisz licencji JAVA SE, możesz skorzystać z tego przewodnika, aby przejść na bezpłatną alternatywę.

    Java zawiera narzędzie keytool, które umożliwia tworzenie certyfikatów za pomocą wiersza poleceń.

    1. Należy wygenerować nowy certyfikat dla każdej instancji serwera Tomcat (jeśli masz wiele instancji serwera Tomcat), aby zapewnić, że w przypadku naruszenia bezpieczeństwa jednego certyfikatu pozostałe instancje serwera Tomcat pozostaną bezpieczne. Poniżej znajduje się przykładowe polecenie służące do utworzenia magazynu kluczy z certyfikatem SSL.

    2. Przejdź do dokładnej lokalizacji pliku keytool, na przykład /usr/lib/jvm/”wersja Javy”/jre/bin (katalog zależy od systemu operacyjnego i wersji Javy), a następnie uruchom polecenie:

      sudo keytool -genkeypair -alias "tomcat" -keyalg RSA -keysize 4096 -validity 3650 -keystore "/etc/tomcat/tomcat.keystore" -storepass "twojehasło" -keypass „twojehasło” -dname „CN=Nieznane, OU=Nieznane, O=Nieznane, L=Nieznane, ST=Nieznane, C=Nieznane”

      Ścieżka do pliku /etc/tomcat/tomcat.keystore to tylko przykład; wybierz własną, bezpieczną i dostępną lokalizację.

      Parametry -storepass i -keypass

      Wartości parametrów -storepass i -keypass muszą być identyczne.

  2. Wyeksportuj certyfikat z magazynu kluczy. Poniżej znajduje się przykładowe polecenie służące do wyeksportowania żądania podpisu certyfikatu z magazynu kluczy:

    sudo keytool -certreq -alias tomcat -file "/etc/tomcat/tomcat.csr" -keystore "/etc/tomcat/tomcat.keystore" -ext san=dns:ESETPROTECT
    Zastąp wartości odpowiednio
    • Wartość „/etc/tomcat/tomcat.csr” w parametrze -file należy zastąpić rzeczywistą ścieżką i nazwą pliku, do którego ma zostać wyeksportowany certyfikat.

    • Wartość ESETPROTECT dla parametru -ext należy zastąpić rzeczywistą nazwą hosta serwera, na którym działa Apache Tomcat z ESET PROTECT On-Prem.

  3. Uzyskaj certyfikat SSL podpisany przez wybrany przez Ciebie główny urząd certyfikacji (CA).

    Możesz przejść do kroku 6, jeśli planujesz zaimportować certyfikat głównego urzędu certyfikacji (CA) w późniejszym terminie. Jeśli zdecydujesz się postępować w ten sposób, Twoja przeglądarka internetowa może wyświetlać ostrzeżenia dotyczące certyfikatu z podpisem własnym i konieczne będzie dodanie wyjątku, aby połączyć się z ESET PROTECT On-Prem za pośrednictwem protokołu HTTPS.

  4. Zaimportuj certyfikat główny i certyfikat pośredni swojego urzędu certyfikacji do magazynu kluczy. Certyfikaty te są zazwyczaj udostępniane przez podmiot, który podpisał Twój certyfikat. Jest to konieczne, ponieważ odpowiedź certyfikatu jest weryfikowana przy użyciu zaufanych certyfikatów z magazynu kluczy.

    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. Po otrzymaniu podpisanego certyfikatu z głównym urzędem certyfikacji (Root CA) należy zaimportować klucz publiczny urzędu certyfikacji oraz certyfikat (tomcat.cer) do magazynu kluczy. Poniżej znajduje się przykładowe polecenie służące do importowania podpisanego certyfikatu do magazynu kluczy:

    sudo keytool -import -alias tomcat -file "/etc/tomcat/tomcat.cer" -keystore "/etc/tomcat/tomcat.keystore"
    Zastąp wartości odpowiednio

    Wartość /etc/tomcat/tomcat.csr w parametrze -file należy zastąpić rzeczywistą ścieżką i nazwą pliku podpisanego certyfikatu.

    Jeśli chcesz użyć istniejącego certyfikatu (na przykład certyfikatu firmowego), postępuj zgodnie z poniższymi instrukcjami.

  6. Edytuj plik konfiguracyjny server.xml tak, aby tag <‎Connector miał postać podobną do poniższego przykładu:

    <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="twojehasło"/>

    Ta modyfikacja wyłącza również niezabezpieczone funkcje serwera Tomcat, pozostawiając włączony wyłącznie protokół HTTPS (parametrscheme= ). Ze względów bezpieczeństwa może być również konieczna edycja pliku tomcat-users.xml w celu usunięcia wszystkich użytkowników serwera Tomcat oraz zmiana pliku ServerInfo.properties w celu ukrycia tożsamości serwera Tomcat.

  7. Uruchom ponownie usługę Apache Tomcat. ESET PROTECT On-Prem może używać nazwy usługi tomcat9.

    sudo systemctl restart tomcat
    Nadal występują problemy z bezpiecznym połączeniem w systemie Linux

    W tym miejscu znajduje się ważna treść.

    W katalogu /var/....../tomcat może pojawić się następujący komunikat o błędzie: „nie udało się zainicjować punktu końcowego powiązanego z ProtocolHandler [„http-bio-443”]”.

    Jeśli problem nadal występuje, zmień numer portu w pliku server.xml na wartość wyższą niż 1024, ponieważ porty poniżej 1024 mogą być niedostępne dla użytkowników innych niż root. Jeśli z jakiegoś powodu musisz używać portu 443, nadal możesz zmienić tę wartość, a następnie przekierować port.

    Aby włączyć przekierowanie portów (na przykład z portu 443 na port 8443), wykonaj poniższe czynności:

    1. Zezwól na zdalny dostęp do konsoli internetowej:

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

      Alternatywnie możesz otworzyć i edytować plik konfiguracyjny zapory (nano /etc/sysconfig/iptables) oraz dodać ten wiersz do sekcji zaczynającej się od *nat, a kończącej się na COMMIT:

      -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports |8443)
    2. Aby wyłączyć protokół HTTP, należy usunąć port 8080:

      sudo iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
    3. Zapisz reguły zapory:

      iptables-save > /etc/network/iptables.rules
    4. Wyłącz SELinux. Instrukcje mogą się różnić w zależności od dystrybucji systemu Linux.