7.3. Keylime 검증기를 컨테이너로 배포
Keylime 확인자는 시스템 무결성의 초기 및 주기적 검사를 수행하고 에이전트를 사용하여 암호화 키 부트스트랩을 지원합니다. 호스트의 바이너리 또는 패키지 없이 RPM 방법 대신 Keylime verifier를 컨테이너로 구성할 수 있습니다. 컨테이너 배포로 Keylime 구성 요소의 격리, 모듈성 및 재현성을 개선할 수 있습니다.
컨테이너를 시작한 후 Keylime verifier가 기본 구성 파일과 함께 배포됩니다. 다음 방법 중 하나 이상을 사용하여 구성을 사용자 지정할 수 있습니다.
- 구성 파일이 포함된 호스트의 디렉터리를 컨테이너에 마운트합니다. 이는 모든 RHEL 9 버전에서 사용할 수 있습니다.
- 컨테이너에서 직접 환경 변수를 수정합니다. RHEL 9.3 이상 버전에서 사용할 수 있습니다. 환경 변수를 수정하면 구성 파일의 값이 재정의됩니다.
사전 요구 사항
-
podman패키지 및 해당 종속 항목은 시스템에 설치됩니다. 선택 사항: Keylime이 검증기의 데이터를 저장하는 데이터베이스에 액세스할 수 있습니다. 다음 데이터베이스 관리 시스템을 사용할 수 있습니다.
- SQLite(기본값)
- PostgreSQL
- MySQL
- MariaDB
- 인증 기관의 유효한 키와 인증서가 있습니다.
절차
선택 사항:
keylime-verifier패키지를 설치하여 구성 파일에 액세스합니다. 이 패키지 없이 컨테이너를 구성할 수 있지만 패키지와 함께 제공된 구성 파일을 더 쉽게 수정할 수 있습니다.dnf install keylime-verifier
# dnf install keylime-verifierCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/keylime/verifier디렉터리에 새 .conf 파일을 생성하여 검증기를 모든 사용 가능한 IP 주소에 바인딩합니다(예:.conf.d//etc/keylime/verifier.conf.d/00-verifier-ip.conf).[verifier] ip = *
[verifier] ip = *Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택적으로
port옵션을 사용하여 verifier의 포트를 기본값8881에서 변경할 수도 있습니다.
-
선택적으로
선택 사항: 에이전트 목록에 대해 검증자 데이터베이스를 구성합니다. 기본 구성은 검증자의
/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>
[verifier] database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>를 데이터베이스의 URL로 바꿉니다(예:postgresql://verifier:UQ?nRNY9g7GZzN7@198.51.100.1/verifierdb).사용하는 인증 정보에 데이터베이스 구조를 생성하기 위한 Keylime에 대한 권한이 있는지 확인합니다.
검증에 인증서와 키를 추가합니다. 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.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고절대 경로를 사용하여 키 및 인증서 위치를 정의합니다. 또는
tls_dir옵션에 정의된 디렉터리에서 상대 경로가 확인됩니다.
-
기본
방화벽에서 포트를 엽니다.
firewall-cmd --add-port 8881/tcp firewall-cmd --runtime-to-permanent
# firewall-cmd --add-port 8881/tcp # firewall-cmd --runtime-to-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 포트를 사용하는 경우
8881을.conf파일에 정의된 포트 번호로 바꿉니다.컨테이너를 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-p옵션은 호스트 및 컨테이너에서 기본 포트8881을 엽니다. -v옵션은 디렉터리에 대한 바인딩 마운트를 컨테이너에 생성합니다.-
Z옵션을 사용하면 Podman은 비공개 비공유 레이블로 콘텐츠를 표시합니다. 즉, 현재 컨테이너만 개인 볼륨을 사용할 수 있습니다.
-
-
d옵션은 컨테이너 분리 및 백그라운드에서 실행됩니다. -
옵션
-e KEYLIME_VERIFIER_SERVER_KEY_PASSWORD= <passphrase1>은 서버 키 암호를 정의합니다. -
옵션
-e KEYLIME_VERIFIER_CLIENT_KEY_PASSWORD= <passphrase2>는 클라이언트 키 암호를 정의합니다. -
-e KEYLIME_VERIFIER _<ENVIRONMENT_VARIABLE> = <value> 옵션을 사용하여 환경 변수로 구성 옵션을 덮어쓸 수 있습니다. 추가 옵션을 수정하려면 각 환경 변수에 대해-e옵션을 별도로 삽입합니다. 환경 변수 및 기본값의 전체 목록은 Keylime 환경 변수를 참조하십시오.
-
검증
컨테이너가 실행 중인지 확인합니다.
podman ps -a
$ 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-verifierCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 단계