[KB7857] Nastavenie HTTPS/SSL pripojenia pre ESET PROTECT On-Prem na systéme Linux

Problém

Riešenie

HTTPS

Z bezpečnostných dôvodov odporúčame nastaviť ESET PROTECT On-Prem tak, aby bol použitý protokol HTTPS.

Použitie existujúceho certifikátu

Nižšie uvedené kroky sa týkajú certifikátov pre službu Apache Tomcat, ktoré sa používajú na zaistenie bezpečných pripojení cez HTTPS. Informácie o certifikátoch v ESET PROTECT On-Prem nájdete v príslušnej kapitole online pomocníka.
  1. Presuňte súbor certifikátu (napr certificate_file.pfx) do konfiguračného adresára Tomcat (napríklad /etc/tomcat/).

  2. Otvorte súbor Server.xml umiestnený v adresári /etc/tomcat/. Umiestnenie sa môže líšiť v závislosti od distribúcie Linuxu.
    • Ak značka <‎Connector nenasleduje v súbore Server.xml po atribúte <‎Service name="Catalina">, do súboru Server.xml skopírujte nasledujúci reťazec. Pre keystoreFile, keystorePass keystoreType použite vlastné hodnoty:
<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"
               />
    • Ak značka <‎Connector nasleduje v súbore Server.xml po atribúte <‎Service name="Catalina">, nahraďte hodnoty parametrov uvedených nižšie požadovanými hodnotami:

keystoreFile – uveďte úplnú cestu k súboru certifikátu (.pfx, .keystore alebo iný). Ak používate iný certifikát ako JKS (napr. súbor .pfx), odstráňte parameter keyAlias (predvolene uvedený v súbore Server.xml) a pridajte parameter keystoreType.

keystorePass – uveďte prístupovú frázu certifikátu.

keystoreType – uveďte typ certifikátu.

  1. Reštartujte službu Tomcat (sudo systemctl restart tomcat).
    • Ak použijete súbor .keystore, použite cestu k súboru (keystoreFile="/etc/tomcat/tomcat.keystore") a definujte parameter keyAlias (keyAlias="tomcat") namiesto keystoreType.
    • Ak chcete vypnúť protokol HTTP:
<!--
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
Zapnutý SELinux

Používatelia, ktorí majú zapnutý SELinux a zobrazí sa im príznak neplatného certifikátu, môžu potrebovať spustiť príkaz restorecon na obnovenie kontextu zabezpečenia modulu 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


Vytvorenie nového certifikátu a jeho podpísanie

Použite zabezpečené HTTPS/SSL pripojenie pre ESET PROTECT On-Prem.

  1. Vytvorte keystorecertifikátom SSL. Musíte mať nainštalovanú Javu .
    Apache Tomcat vyžaduje Javu:
    • Uistite sa, že Java, ESET PROTECT On-Prem a Apache Tomcat majú rovnakú bitovosť (32‑bit alebo 64‑bit).
    • Ak máte vo svojom systéme nainštalované viaceré verzie Javy, odporúčame vám odinštalovať staršie verzie a ponechať iba najnovšiu verziu.
    • Od januára 2019 sú verejné aktualizácie Java SE 8 vydávané spoločnosťou Oracle k dispozícii na obchodné, komerčné alebo produkčné použitie len s komerčnou licenciou. Ak sa rozhodnete nezakúpiť si predplatné JAVA SE, môžete prejsť na bezplatnú alternatívu – presný postup nájdete na tomto odkaze.

Java obsahuje keytool, ktorý umožňuje vytvoriť certifikát prostredníctvom príkazového riadku. Pre každú inštanciu služby Tomcat (ak máte viac inštancií) musíte vygenerovať nový certifikát s cieľom zaistiť, aby v prípade zneužitia jedného certifikátu boli ostatné inštancie služby Tomcat bezpečné.

Nižšie uvádzame vzorový príkaz na vytvorenie keystore s certifikátom SSL:

Prejdite na presné umiestnenie súboru keytool, napríklad /usr/lib/jvm/”java version”/jre/bin (adresár závisí od operačného systému a verzie Javy) a spustite príkaz:

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"
Cesta k súboru /etc/tomcat/tomcat.keystore je len príklad, vyberte si vlastnú bezpečnú a dostupnú cestu.
Parametre -storepass a -keypass
Hodnoty pre -storepass-keypass musia byť rovnaké.
  1. Exportujte certifikát z keystore. Nižšie uvádzame vzorový príkaz na export požiadavky na podpísanie certifikátu z keystore:
sudo keytool -certreq -alias tomcat -file "/etc/tomcat/tomcat.csr" -keystore "/etc/tomcat/tomcat.keystore" -ext san=dns:ESETPROTECT
Vhodné nahradenie hodnôt
Nahraďte hodnotu „/etc/tomcat/tomcat.csr“ pre parameter -file skutočnou cestou a názvom súboru, kam sa má certifikát exportovať.

Nahraďte hodnotu ESETPROTECT pre parameter -ext skutočným názvom hostiteľa servera, na ktorom beží služba Apache Tomcat s ESET PROTECT On-Prem.
  1. Podpíšte certifikát SSL prostredníctvom koreňovej certifikačnej autority (CA) podľa vlastného výberu.

    Ak koreňovú certifikačnú autoritu plánujete importovať neskôr, môžete pokračovať krokom č. 6. Ak sa rozhodnete pokračovať týmto spôsobom, váš webový prehliadač môže zobraziť upozornenia o sebou podpísanom certifikáte a bude potrebné pridať výnimku na pripojenie k ESET PROTECT On-Prem prostredníctvom protokolu HTTPS.
     
  2. Importujte koreňový certifikát a sprostredkovací certifikát vašej certifikačnej autority do keystore. Tieto certifikáty zvyčajne sprístupňuje subjekt, ktorý váš certifikát podpísal. Odpoveď na certifikát sa totiž overuje pomocou dôveryhodných certifikátov z keystore.

    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"

  3. Po prijatí certifikátu podpísaného koreňovou certifikačnou autoritou importujte verejný kľúč certifikačnej autority a certifikát (tomcat.cer) do keystore. Nižšie je uvedený vzorový príkaz , v ktorom je podpísaný certifikát importovaný do keystore:
sudo keytool -import -alias tomcat -file "/etc/tomcat/tomcat.cer" -keystore "/etc/tomcat/tomcat.keystore"
Vhodné nahradenie hodnôt
Nahraďte hodnotu "/etc/tomcat/tomcat.csr" pre parameter -file skutočnou cestou a názvom súboru, kde je podpísaný certifikát umiestnený.

Ak chcete použiť už existujúci certifikát (napríklad firemný certifikát), postupujte podľa týchto krokov.

  1. Upravte konfiguračný súbor server.xml tak, aby značka <‎Connector bola zapísaná podobne ako v nasledujúcom príklade:

<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"/>

Táto úprava tiež deaktivuje nezabezpečené funkcie služby Tomcat a ponechá zapnutý iba protokol HTTPS (parameter scheme= ). Z bezpečnostných dôvodov môže byť potrebné upraviť aj súbor tomcat-users.xml na odstránenie všetkých používateľov služby Tomcat a zmenu vlastností ServerInfo.properties s cieľom skryť identitu služby Tomcat.

  1. Reštartujte službu Apache Tomcat. ESET PROTECT On-Prem môže používať názov služby tomcat9.
sudo systemctl restart tomcat

Čo ak zabezpečené pripojenie na systéme Linux stále zlyháva?
Chybové hlásenie v adresári /var/....../tomcat:
failed to initialize end point associated with ProtocolHandler ["http-bio-443"] Ak problém pretrváva, zmeňte parameter port v súbore server.xml na hodnotu vyššiu ako 1024, pretože porty nižšie ako hodnota 1024 nemusia byť prístupné pre nekoreňových používateľov. Ak z nejakého dôvodu musíte použiť port 443, môžete túto hodnotu zmeniť a potom port presmerovať. Ak chcete povoliť presmerovanie portov (napríklad z portu 443 na port 8443), postupujte podľa nasledujúcich krokov:
  1. Povoľte vzdialený prístup k Web Console:
    sudo iptables -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT
    (Prípadne môžete otvoriť a upraviť konfiguračný súbor firewallu (nano /etc/sysconfig/iptables) a pridať tento riadok do sekcie začínajúcej s *nat a končiacej s COMMIT: -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports |8443)
  2. Odstránením portu 8080 vypnite protokol HTTP:
    sudo iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

  3. Uložte pravidlá firewallu:
    iptables-save > /etc/network/iptables.rules

  4. Vypnite SELinux. Uvedené pokyny sa týkajú virtuálneho zariadenia so systémom CentOS7 a môžu sa líšiť v závislosti od vašej distribúcie Linuxu.