7.10. 런타임 모니터링을 위한 Keylime 구성


모니터링된 시스템의 상태가 올바른지 확인하려면 모니터링 대상 시스템에서 Keylime 에이전트가 실행되고 있어야 합니다.

중요

Keylime 런타임 모니터링은 무결성 측정 아키텍처(IMA)를 사용하여 많은 수의 파일을 측정하기 때문에 시스템 성능에 큰 영향을 미칠 수 있습니다.

에이전트를 프로비저닝할 때 Keylime이 모니터링된 시스템으로 전송하는 파일을 정의할 수도 있습니다. Keylime은 에이전트로 전송된 파일을 암호화하고 에이전트의 시스템이 TPM 정책 및 IMA 허용 목록을 준수하는 경우에만 암호를 해독합니다.

Keylime에서 특정 파일의 변경 사항이나 특정 디렉터리 내에서 Keylime 제외 목록을 구성하도록 할 수 있습니다. 제외된 파일은 여전히 IMA에 의해 측정됩니다.

RHEL 9.3에 제공된 Keylime 버전 7.3.0에서 allowlist 및 excludelist는 Keylime 런타임 정책에 결합됩니다.

사전 요구 사항

절차

  1. Keylime 에이전트가 구성되어 실행되는 모니터링 시스템에서 시스템의 현재 상태에서 허용 목록을 생성합니다.

    # /usr/share/keylime/scripts/create_allowlist.sh -o <allowlist.txt> -h sha256sum
    Copy to Clipboard Toggle word wrap

    & lt;allowlist.txt& gt;를 허용 목록의 파일 이름으로 바꿉니다.

    중요

    SHA-256 해시 함수를 사용합니다. SHA-1은 안전하지 않으며 RHEL 9에서 더 이상 사용되지 않습니다. 자세한 내용은 Red Hat Enterprise Linux 9에서 SHA-1 사용 중단 을 참조하십시오.

  2. 생성된 allowlist를 keylime_tenant 유틸리티가 구성된 시스템에 복사합니다. 예를 들면 다음과 같습니다.

    # scp <allowlist.txt> root@<tenant.ip>:/root/<allowlist.txt>
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: 테넌트 시스템에 파일을 생성하고 제외할 파일 및 디렉터리의 경로를 입력하여 Keylime 측정에서 제외된 파일 또는 디렉터리 목록을 정의할 수 있습니다. excludelist는 한 줄에 하나의 정규식을 사용하여 Python 정규식을 허용합니다. 특수 문자의 전체 목록은 docs.python.org에서 정규식 작업을 참조하십시오. 테넌트 시스템에 excludelist를 저장합니다.
  4. allowlist 및 excludelist를 Keylime 런타임 정책에 결합합니다.

    # keylime_create_policy -a <allowlist.txt> -e <excludelist.txt> -o <policy.json>
    Copy to Clipboard Toggle word wrap
  5. Keylime 테넌트가 구성된 시스템에서 keylime_tenant 유틸리티를 사용하여 에이전트를 프로비저닝합니다.

    # keylime_tenant -c add -t <agent_ip> -u <agent_uuid> --runtime-policy <policy.json> --cert default
    Copy to Clipboard Toggle word wrap
    • & lt;agent_ip& gt;를 에이전트의 IP 주소로 바꿉니다.
    • & lt;agent_uuid& gt;를 에이전트의 UUID로 바꿉니다.
    • & lt;policy.json& gt;을 Keylime 런타임 정책 파일의 경로로 바꿉니다.
    • --cert 옵션을 사용하면 테넌트에서 지정된 디렉터리 또는 기본 /var/lib/keylime/ca/ 디렉터리에 있는 CA 인증서 및 키를 사용하여 에이전트의 인증서를 생성하고 서명합니다. 디렉터리에 CA 인증서 및 키가 없는 경우 테넌트는 /etc/keylime/ca.conf 파일의 구성에 따라 자동으로 생성하고 지정된 디렉터리에 저장합니다. 그러면 테넌트에서 이러한 키와 인증서를 에이전트에 보냅니다.

      CA 인증서를 생성하거나 에이전트 인증서를 서명할 때 CA 개인 키에 액세스하기 위해 암호를 입력하라는 메시지가 표시될 수 있습니다. 키 저장소의 암호를 해독하려면 암호를 입력하십시오. .

      인증서를 사용하지 않으려면 대신 -f 옵션을 사용하여 에이전트에 파일을 전달합니다. 에이전트를 프로비저닝하려면 빈 파일도 파일을 보내야 합니다.

      참고

      Keylime은 에이전트로 전송된 파일을 암호화하고 에이전트의 시스템이 TPM 정책 및 IMA 허용 목록을 준수하는 경우에만 암호를 해독합니다. 기본적으로 Keylime 압축 해제는 .zip 파일을 전송했습니다.

    예를 들어 다음 명령을 사용하여 keylime_tenant127.0.0.1 에 UUID d432fbb3-d2f1-4a97-9ef7-75bd81c00000 을 사용하여 새 Keylime 에이전트를 프로비저닝하고 런타임 정책 정책.json 을 로드합니다. 또한 기본 디렉터리에 인증서를 생성하고 에이전트로 인증서 파일을 보냅니다. Keylime는 /etc/keylime/verifier.conf 에 구성된 TPM 정책이 충족되는 경우에만 파일의 암호를 해독합니다.

    # keylime_tenant -c add -t 127.0.0.1 -u d432fbb3-d2f1-4a97-9ef7-75bd81c00000 --runtime-policy policy.json --cert default
    Copy to Clipboard Toggle word wrap
    참고

    # keylime_tenant -c delete -u < agent_uuid> 명령을 사용하여 노드 모니터링에서 Keylime 을 중지할 수 있습니다.

    keylime_tenant -c update 명령을 사용하여 이미 등록된 에이전트의 구성을 수정할 수 있습니다.

검증

  1. 선택 사항: 모니터링된 시스템을 재부팅하여 설정이 지속되는지 확인합니다.
  2. 에이전트가 성공적으로 검증되었는지 확인합니다.

    # keylime_tenant -c cvstatus -u <agent.uuid>
    ...
    {"<agent.uuid>": {"operational_state": "Get Quote"..."attestation_count": 5
    ...
    Copy to Clipboard Toggle word wrap

    & lt;agent.uuid& gt;를 에이전트의 UUID로 바꿉니다.

    operational_state 값이 Get Quote 이고 attestation_count 가 0이 아닌 경우 이 에이전트의 인증이 성공적으로 수행됩니다.

    operational_state 값이 Invalid Quote 또는 Failed attestation에 실패하면 명령과 유사한 출력이 표시됩니다.

    {"<agent.uuid>": {"operational_state": "Invalid Quote", ... "ima.validation.ima-ng.not_in_allowlist", "attestation_count": 5, "last_received_quote": 1684150329, "last_successful_attestation": 1684150327}}
    Copy to Clipboard Toggle word wrap
  3. 테스트에 실패하면 검증기 로그에 세부 정보를 표시합니다.

    # journalctl -u keylime_verifier
    keylime.tpm - INFO - Checking IMA measurement list...
    keylime.ima - WARNING - File not found in allowlist: /root/bad-script.sh
    keylime.ima - ERROR - IMA ERRORS: template-hash 0 fnf 1 hash 0 good 781
    keylime.cloudverifier - WARNING - agent D432FBB3-D2F1-4A97-9EF7-75BD81C00000 failed, stopping polling
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동