3장. 제한된 사용자 및 제한되지 않은 사용자 관리
각 Linux 사용자는 SELinux 정책의 규칙에 따라 SELinux 사용자에게 매핑됩니다. 관리자는 semanage 로그인
유틸리티를 사용하거나 Linux 사용자를 특정 SELinux 사용자에게 직접 할당하여 이러한 규칙을 수정할 수 있습니다. 따라서 Linux 사용자에게는 SELinux 사용자가 할당되는 제한 사항이 있습니다. SELinux 사용자에게 할당된 Linux 사용자가 프로세스를 시작하면 다른 규칙에서 다른 역할 또는 유형을 지정하지 않는 한 이 프로세스는 SELinux 사용자의 제한 사항을 상속합니다.
3.1. SELinux에서 제한되거나 제한되지 않은 사용자
기본적으로 관리 권한이 있는 사용자를 포함하여 Red Hat Enterprise Linux의 모든 Linux 사용자는 제한되지 않은 SELinux 사용자 unconfined_u
에 매핑됩니다. SELinux 제한 사용자에게 사용자를 할당하여 시스템의 보안을 개선할 수 있습니다.
Linux 사용자의 보안 컨텍스트는 SELinux 사용자, SELinux 역할 및 SELinux 유형으로 구성됩니다. 예를 들면 다음과 같습니다.
user_u:user_r:user_t
다음과 같습니다.
user_u
- SELinux 사용자입니다.
user_r
- SELinux 역할입니다.
user_t
- SELinux 유형입니다.
Linux 사용자가 로그인하면 SELinux 사용자는 변경할 수 없습니다. 그러나 해당 유형과 역할은 예를 들어 전환 중에 변경될 수 있습니다.
시스템에서 SELinux 사용자 매핑을 보려면 루트로 semanage login -l
명령을 사용합니다.
# semanage login -l
Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
Red Hat Enterprise Linux에서 Linux 사용자는 기본적으로 SELinux __default__
로그인에 매핑되며 SELinux unconfined_u
사용자에게 매핑됩니다. 다음 행은 기본 매핑을 정의합니다.
default unconfined_u s0-s0:c0.c1023 *
제한된 사용자는 현재 SELinux 정책에 명시적으로 정의된 SELinux 규칙에 의해 제한됩니다. 제한되지 않은 사용자는 SELinux에 의해 최소한의 제한만 적용됩니다.
제한된 Linux 사용자 및 제한되지 않은 Linux 사용자는 실행 가능하고 쓰기 가능한 메모리 검사의 영향을 받으며 MCS 또는 MLS에도 제한됩니다.
사용 가능한 SELinux 사용자를 나열하려면 다음 명령을 입력합니다.
$ seinfo -u
Users: 8
guest_u
root
staff_u
sysadm_u
system_u
unconfined_u
user_u
xguest_u
이러한 info
명령은 기본적으로 설치되지 않는 setools-console
패키지에서 제공합니다.
제한되지 않은 Linux 사용자가 SELinux 정책에서 unconfined_t 도메인에서
자체 제한된 도메인으로 전환할 수 있는 애플리케이션으로 정의하는 애플리케이션을 실행하는 경우 unconfined Linux 사용자는 여전히 제한된 도메인의 제한 사항을 받습니다. 이 경우의 보안 이점은 Linux 사용자가 제한되지 않고 있는 경우에도 애플리케이션이 제한되어 있다는 것입니다. 따라서 애플리케이션에서 결함을 악용하는 것은 정책에 의해 제한될 수 있습니다.
마찬가지로 제한된 사용자에게 이러한 검사를 적용할 수 있습니다. 제한된 각 사용자는 제한된 사용자 도메인에 의해 제한됩니다. SELinux 정책은 제한된 사용자 도메인에서 대상 제한 도메인으로의 전환을 정의할 수도 있습니다. 이러한 경우 제한된 사용자에게는 해당 대상 제한된 도메인의 제한이 적용됩니다. 주요 점은 특별 권한이 역할에 따라 제한된 사용자와 연결되어 있다는 것입니다.