SELinux

Support HackTricks

컨테이너의 SELinux

레드햇 문서의 소개 및 예제

SELinux레이블링 시스템입니다. 모든 프로세스와 모든 파일 시스템 객체는 레이블을 가지고 있습니다. SELinux 정책은 프로세스 레이블이 시스템의 다른 모든 레이블과 함께 무엇을 할 수 있는지에 대한 규칙을 정의합니다.

컨테이너 엔진은 단일 제한된 SELinux 레이블컨테이너 프로세스를 시작하며, 일반적으로 container_t를 사용하고, 그 후 컨테이너 내부의 컨테이너를 container_file_t로 레이블을 설정합니다. SELinux 정책 규칙은 기본적으로 container_t 프로세스가 container_file_t로 레이블이 지정된 파일만 읽고/쓰고/실행할 수 있다고 말합니다. 만약 컨테이너 프로세스가 컨테이너를 탈출하고 호스트의 콘텐츠에 쓰려고 시도하면, 리눅스 커널은 접근을 거부하고 컨테이너 프로세스가 container_file_t로 레이블이 지정된 콘텐츠에만 쓸 수 있도록 허용합니다.

$ podman run -d fedora sleep 100
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
$ podman top -l label
LABEL
system_u:system_r:container_t:s0:c647,c780

SELinux 사용자

정상적인 Linux 사용자 외에도 SELinux 사용자가 있습니다. SELinux 사용자는 SELinux 정책의 일부입니다. 각 Linux 사용자는 정책의 일환으로 SELinux 사용자에 매핑됩니다. 이를 통해 Linux 사용자는 SELinux 사용자에게 부여된 제한 및 보안 규칙과 메커니즘을 상속받을 수 있습니다.

Support HackTricks

Last updated