[KB7857] ESET PROTECT On-Prem(Linux)용 HTTPS/SSL 연결 설정

참고:

이 페이지는 컴퓨터로 번역되었습니다. 이 페이지의 언어 아래에서 영어를 클릭하면 원문을 볼 수 있습니다. 불분명한 내용이 있으면 현지 지원팀에 문의하세요.

문제

해결 방법

관련 해결 방법: Windows 사용자

Rocky Linux 가상 어플라이언스 사용자

Rocky Linux 가상 어플라이언스 사용자인 경우, 커넥터의 포트 번호를 443으로 조정하십시오.

자세한 내용은 Rocky Linux ESET PROTECT 가상 어플라이언스의 인증서가 포함된 ESET 관리 에이전트에서 확인하십시오.

HTTPS

보안상의 이유로 ESET PROTECT On-Prem을 HTTPS로 설정할 것을 권장합니다.

기존 인증서 사용

HTTP를 통해 ESET PROTECT On-Prem에 액세스할 때 "암호화되지 않은 연결을 사용하고 있습니다! HTTPS를 사용하도록 웹 서버를 구성하십시오"라는 오류 메시지가 나타날 수 있습니다. 이 문제는 ESET PROTECT On-Prem 설치 후 발생합니다.

아래 단계는 안전한 HTTPS 연결을 보장하는 데 사용되는 Apache Tomcat용 인증서에 관한 것입니다. ESET PROTECT On-Prem 인증에 대해 자세히 알아보세요.

  1. 인증서 파일(예: certificate_file.pfx)을 Apache Tomcat 설치 폴더(예: /etc/tomcat/)로 이동합니다.

  2. Apache Tomcat 설치 폴더에 있는 Server.xml 파일을 열고 다음과 같이 편집하십시오.

    • 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")를 사용하고 keystoreType 대신 keyAlias (keyAlias="tomcat") 정의하십시오.

    • 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

새 인증서를 생성하고 서명을 받습니다

ESET PROTECT On-Prem에 대해 보안이 보장된 HTTPS/SSL 연결을 사용하십시오.

  1. SSL 인증서가 포함된 키스토어를 생성합니다. Java가 설치되어 있어야 합니다.

    Apache Tomcat에는 Java가 필요합니다:
    • Java, ESET PROTECT On-Prem 및 Apache Tomcat의 비트 수가 동일한지 확인하십시오.

    • 시스템에 여러 버전의 Java가 설치되어 있는 경우, 이전 버전의 Java를 제거하고 최신 Java만 남겨두는 것이 좋습니다.

    • 비즈니스, 상업적 또는 생산 용도로 Oracle JAVA SE 공개 업데이트를 사용하려면 상업용 라이선스가 필요합니다. JAVA SE 라이선스를 구매하지 않은 경우, 이 가이드를 사용하여 무료 대안으로 전환할 수 있습니다.

    Java에는 명령줄을 통해 인증서를 생성할 수 있는 keytool이 포함되어 있습니다.

    1. 하나의 인증서가 유출되더라도 다른 Tomcat 인스턴스의 보안이 유지되도록 하려면, Tomcat 인스턴스가 여러 개인 경우 각 인스턴스마다 새로운 인증서를 생성해야 합니다. 다음은 SSL 인증서가 포함된 키스토어를 생성하는 명령어 예시입니다.

    2. keytool 파일이 있는 정확한 위치(예: /usr/lib/jvm/”java 버전”/jre/bin, 디렉터리는 OS 및 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. 키스토어에서 인증서를 내보내십시오. 다음은 키스토어에서 인증서 서명 요청(CSR)을 내보내는 명령어 예시입니다:

    sudo keytool -certreq -alias tomcat -file "/etc/tomcat/tomcat.csr" -keystore "/etc/tomcat/tomcat.keystore" -ext san=dns:ESETPROTECT
    값을 적절히 변경하십시오
    • -file 매개변수의 "/etc/tomcat/tomcat.csr" 값을 인증서를 내보내려는 실제 경로와 파일 이름으로 변경하십시오.

    • -ext 매개변수의 값인 ESETPROTECT는 ESET PROTECT On-Prem이 설치된 Apache Tomcat이 실행 중인 서버의 실제 호스트 이름으로 변경하십시오.

  3. 원하는 루트 인증 기관(CA)을 통해 SSL 인증서에 서명을 받으십시오.

    나중에 루트 CA를 가져올 계획이라면 6단계로 진행해도 됩니다. 이 방법으로 진행할 경우 웹 브라우저에 자체 서명된 인증서에 대한 경고가 표시될 수 있으며, HTTPS를 통해 ESET PROTECT On-Prem에 연결하려면 예외를 추가해야 합니다.

  4. CA의 루트 인증서와 중간 인증서를 키스토어에 가져오십시오. 이러한 인증서는 일반적으로 인증서에 서명한 기관에서 제공합니다. 인증서 응답은 키스토어의 신뢰할 수 있는 인증서를 사용하여 검증되므로 이 과정이 필요합니다.

    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. 루트 CA가 서명한 인증서를 수신하면, CA의 공개 키와 인증서(tomcat.cer)를 키스토어에 가져오십시오. 다음은 서명된 인증서를 키스토어로 가져오는 명령어 예시입니다:

    sudo keytool -import -alias tomcat -file "/etc/tomcat/tomcat.cer" -keystore "/etc/tomcat/tomcat.keystore"
    값을 적절히 변경하십시오

    -file 매개변수의 /etc/tomcat/tomcat.csr 값을 서명된 인증서의 실제 경로와 파일 이름으로 변경하십시오.

    기존 인증서(예: 회사 인증서)를 사용하려면 다음 지침을 따르십시오.

  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 미만의 포트는 비루트 사용자가 액세스할 수 없을 수 있기 때문입니다. 어떤 이유로든 포트 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. HTTP를 비활성화하려면 포트 8080을 제거하십시오:

      sudo iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
    3. 방화벽 규칙을 저장합니다:

      iptables-save > /etc/network/iptables.rules
    4. SELinux를 비활성화합니다. 제공된 지침은 사용 중인 리눅스 배포판에 따라 다를 수 있습니다.