8.2. sVirt 레이블링
sVirt는 SELinux 보호의 다른 서비스와 마찬가지로 프로세스 기반 메커니즘과 제한 사항을 사용하여 게스트 인스턴스에 대한 추가 보안 계층을 제공합니다. 일반적으로 sVirt가 백그라운드에서 작동되고 있음을 알 수 없습니다. 이 섹션에서는 sVirt의 레이블 지정 기능에 대해 설명합니다.
다음 출력에 표시된 대로 sVirt를 사용할 때 각 VM(가상 시스템) 프로세스에 레이블이 지정되며 동적으로 생성된 수준으로 실행됩니다. 각 프로세스는 다른 레벨의 다른 VM과 격리됩니다.
~]#
ps -eZ | grep qemu
system_u:system_r:svirt_t:s0:c87,c520 27950 ? 00:00:17 qemu-kvm
system_u:system_r:svirt_t:s0:c639,c757 27989 ? 00:00:06 qemu-system-x86
실제 디스크 이미지는 다음 출력에 표시된 대로 프로세스와 일치하도록 자동으로 레이블이 지정됩니다.
~]#
ls -lZ /var/lib/libvirt/images/*
system_u:object_r:svirt_image_t:s0:c87,c520 image1
다음 표에서는 sVirt를 사용할 때 할당할 수 있는 다양한 라벨을 간략하게 설명합니다.
유형 | SELinux 문맥 | Description |
---|---|---|
가상 머신 프로세스 | system_u:system_r:svirt_t:MCS1 | MCS1은 임의로 선택한 MCS 필드입니다. 현재 약 50만 개의 라벨이 지원됩니다. |
가상 머신 이미지 | system_u:object_r:svirt_image_t:MCS1 | 동일한 MCS 필드가 있는 svirt_t 레이블이 지정된 프로세스만 해당 이미지 파일 및 장치를 읽고 쓸 수 있습니다. |
가상 머신 공유 읽기/쓰기 콘텐츠 | system_u:object_r:svirt_image_t:s0 | svirt_t 라는 모든 프로세스는 svirt_image_t:s0 파일 및 장치에 쓸 수 있습니다. |
가상 머신 이미지 | system_u:object_r:virt_content_t:s0 | 이미지가 종료될 때 사용되는 시스템 기본 레이블입니다. 이 레이블이 있는 파일/장치를 읽을 수 있는 svirt_t 가상 프로세스가 없습니다. |
sVirt를 사용할 때 정적 레이블을 수행할 수도 있습니다. 정적 레이블을 사용하면 관리자가 가상 시스템의 MCS/MLS 필드를 포함한 특정 레이블을 선택할 수 있습니다. 정적으로 레이블이 지정된 가상 시스템을 실행하는 관리자는 이미지 파일에서 올바른 레이블을 설정해야 합니다. 가상 시스템은 항상 해당 레이블로 시작되고 sVirt 시스템은 정적으로 레이블이 지정된 가상 시스템의 콘텐츠 레이블을 변경하지 않습니다. 이렇게 하면 sVirt 구성 요소가 MLS 환경에서 실행될 수 있습니다. 요구 사항에 따라 시스템에서 다양한 민감도 수준으로 여러 가상 시스템을 실행할 수도 있습니다.