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-verifier
Copy 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-permanent
Copy 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&
gt;은 서버 키 암호를 정의합니다. -
옵션
-e KEYLIME_VERIFIER_CLIENT_KEY_PASSWORD= <passphrase2&
gt;는 클라이언트 키 암호를 정의합니다. -
-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-verifier
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 단계