7.3. Keylime 검증기를 컨테이너로 배포


Keylime 확인자는 시스템 무결성의 초기 및 주기적 검사를 수행하고 에이전트를 사용하여 암호화 키 부트스트랩을 지원합니다. 호스트의 바이너리 또는 패키지 없이 RPM 방법 대신 Keylime verifier를 컨테이너로 구성할 수 있습니다. 컨테이너 배포로 Keylime 구성 요소의 격리, 모듈성 및 재현성을 개선할 수 있습니다.

컨테이너를 시작한 후 Keylime verifier가 기본 구성 파일과 함께 배포됩니다. 다음 방법 중 하나 이상을 사용하여 구성을 사용자 지정할 수 있습니다.

  • 구성 파일이 포함된 호스트의 디렉터리를 컨테이너에 마운트합니다. 이는 모든 RHEL 9 버전에서 사용할 수 있습니다.
  • 컨테이너에서 직접 환경 변수를 수정합니다. RHEL 9.3 이상 버전에서 사용할 수 있습니다. 환경 변수를 수정하면 구성 파일의 값이 재정의됩니다.

사전 요구 사항

  • podman 패키지 및 해당 종속 항목은 시스템에 설치됩니다.
  • 선택 사항: Keylime이 검증기의 데이터를 저장하는 데이터베이스에 액세스할 수 있습니다. 다음 데이터베이스 관리 시스템을 사용할 수 있습니다.

    • SQLite(기본값)
    • PostgreSQL
    • MySQL
    • MariaDB
  • 인증 기관의 유효한 키와 인증서가 있습니다.

절차

  1. 선택 사항: keylime-verifier 패키지를 설치하여 구성 파일에 액세스합니다. 이 패키지 없이 컨테이너를 구성할 수 있지만 패키지와 함께 제공된 구성 파일을 더 쉽게 수정할 수 있습니다.

    # dnf install keylime-verifier
  2. /etc/keylime/verifier .conf.d/ 디렉터리에 새 .conf 파일을 생성하여 검증기를 모든 사용 가능한 IP 주소에 바인딩합니다(예: /etc/keylime/verifier.conf.d/00-verifier-ip.conf ).

    [verifier]
    ip = *
    • 선택적으로 port 옵션을 사용하여 verifier의 포트를 기본값 8881 에서 변경할 수도 있습니다.
  3. 선택 사항: 에이전트 목록에 대해 검증자 데이터베이스를 구성합니다. 기본 구성은 검증자의 /var/lib/keylime/cv_data.sqlite/ 디렉터리의 SQLite 데이터베이스를 사용합니다. /etc/keylime/verifier .conf.d/ 디렉터리에 새 .conf 파일을 생성하여 다른 데이터베이스를 정의할 수 있습니다(예: /etc/keylime/verifier.conf.d/ 00-db-url.conf ).

    [verifier]
    database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>

    < protocol>://<name>:<password>@<ip_address_or_hostname>/<properties >를 데이터베이스의 URL로 바꿉니다(예: postgresql://verifier:UQ?nRNY9g7GZzN7@198.51.100.1/verifierdb ).

    사용하는 인증 정보에 데이터베이스 구조를 생성하기 위한 Keylime에 대한 권한이 있는지 확인합니다.

  4. 검증에 인증서와 키를 추가합니다. Keylime에서 해당 키를 생성하거나 기존 키 및 인증서를 사용하도록 할 수 있습니다.

    • 기본 tls_dir = generate 옵션을 사용하면 Keylime에서 검증자, 등록 기관 및 테넌트에 대한 새 인증서를 /var/lib/keylime/cv_ca/ 디렉터리에 생성합니다.
    • 구성에서 기존 키와 인증서를 로드하려면 확인자 구성에서 해당 위치를 정의합니다. 인증서는 keylime 사용자가 Keylime 프로세스가 실행 중인 액세스할 수 있어야 합니다.

      /etc/keylime/verifier .conf.d/ 디렉터리에 새 .conf 파일을 만듭니다(예: /etc/keylime/verifier.conf.d/ 00-keys-and-certs.conf ).

      [verifier]
      tls_dir = /var/lib/keylime/cv_ca
      server_key = </path/to/server_key>
      server_cert = </path/to/server_cert>
      trusted_client_ca = ['</path/to/ca/cert1>', '</path/to/ca/cert2>']
      client_key = </path/to/client_key>
      client_cert = </path/to/client_cert>
      trusted_server_ca = ['</path/to/ca/cert3>', '</path/to/ca/cert4>']
      참고

      절대 경로를 사용하여 키 및 인증서 위치를 정의합니다. 또는 tls_dir 옵션에 정의된 디렉터리에서 상대 경로가 확인됩니다.

  5. 방화벽에서 포트를 엽니다.

    # firewall-cmd --add-port 8881/tcp
    # firewall-cmd --runtime-to-permanent

    다른 포트를 사용하는 경우 8881.conf 파일에 정의된 포트 번호로 바꿉니다.

  6. 컨테이너를 실행합니다.

    $ podman run --name keylime-verifier \
      -p 8881:8881 \
      -v /etc/keylime/verifier.conf.d:/etc/keylime/verifier.conf.d:Z \
      -v /var/lib/keylime/cv_ca:/var/lib/keylime/cv_ca:Z \
      -d \
      -e KEYLIME_VERIFIER_SERVER_KEY_PASSWORD=<passphrase1> \
      -e KEYLIME_VERIFIER_CLIENT_KEY_PASSWORD=<passphrase2> \
      registry.access.redhat.com/rhel9/keylime-verifier
    • -p 옵션은 호스트 및 컨테이너에서 기본 포트 8881 을 엽니다.
    • -v 옵션은 디렉터리에 대한 바인딩 마운트를 컨테이너에 생성합니다.

      • Z 옵션을 사용하면 Podman은 비공개 비공유 레이블로 콘텐츠를 표시합니다. 즉, 현재 컨테이너만 개인 볼륨을 사용할 수 있습니다.
    • d 옵션은 컨테이너 분리 및 백그라운드에서 실행됩니다.
    • 옵션 -e KEYLIME_VERIFIER_SERVER_KEY_PASSWORD= <passphrase1& gt;은 서버 키 암호를 정의합니다.
    • 옵션 -e KEYLIME_VERIFIER_CLIENT_KEY_PASSWORD= <passphrase2& gt;는 클라이언트 키 암호를 정의합니다.
    • -e KEYLIME_VERIFIER _<ENVIRONMENT_VARIABLE> = <value > 옵션을 사용하여 환경 변수로 구성 옵션을 덮어쓸 수 있습니다. 추가 옵션을 수정하려면 각 환경 변수에 대해 -e 옵션을 별도로 삽입합니다. 환경 변수 및 기본값의 전체 목록은 Keylime 환경 변수를 참조하십시오.

검증

  • 컨테이너가 실행 중인지 확인합니다.

    $ podman ps -a
    CONTAINER ID  IMAGE                                                     COMMAND           CREATED         STATUS         PORTS                   NAMES
    80b6b9dbf57c  registry.access.redhat.com/rhel9/keylime-verifier:latest  keylime_verifier  14 seconds ago  Up 14 seconds  0.0.0.0:8881->8881/tcp  keylime-verifier

추가 리소스

  • Keylime 구성 요소에 대한 자세한 내용은 Keylime 작동 방식을 참조하십시오.
  • Keylime verifier 구성에 대한 자세한 내용은 Keylime verifier 구성을 참조하십시오.
  • podman run 명령에 대한 자세한 내용은 시스템의 podman-run(1) 도움말 페이지를 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.