Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

32장. SELinux 사용자 맵 정의

SELinux(Security-enhanced Linux)는 시스템 사용자가 프로세스, 파일, 디렉터리 및 시스템 설정에 액세스할 수 있는 항목에 대한 규칙을 설정합니다. 시스템 관리자와 시스템 애플리케이션 모두 다른 애플리케이션에서 액세스를 제한하거나 허용하는 보안 컨텍스트를 정의할 수 있습니다.
Identity Management 도메인에 중앙 집중식 보안 정책을 정의하는 과정의 일환으로 ID 관리에서는 IdM 사용자를 기존 SELinux 사용자 컨텍스트에 매핑하고 정의된 SELinux 정책을 기반으로 호스트당 클라이언트 및 서비스에 대한 액세스 권한을 부여하거나 제한하는 방법을 제공합니다.

32.1. ID 관리, SELinux 및 매핑 사용자 매핑 정보

Identity Management는 시스템에서 SELinux 컨텍스트를 생성하거나 수정하지 않습니다. 대신 도메인의 IdM 사용자를 시스템의 SELinux 사용자에게 매핑하는 기반으로 대상 호스트의 기존 컨텍스트와 일치할 수 있는 문자열을 사용합니다.
Security-enhanced Linux는 프로세스가 시스템의 다른 리소스와 상호 작용하는 방법에 대한 커널 수준의 필수 액세스 제어를 정의합니다. 시스템에서 프로세스의 예상 동작과 보안에 미치는 영향에 따라 정책이라는 특정 규칙이 설정됩니다. 이는 주로 파일 소유권 및 사용자 ID와 관련된 높은 수준의 선택적 액세스 제어와 대조적입니다. 시스템의 모든 리소스에는 컨텍스트가 할당됩니다. 리소스에는 사용자, 애플리케이션, 파일 및 프로세스가 포함됩니다.
시스템 사용자는 SELinux 역할과 연결됩니다. 이 역할에는 다중 계층 보안 컨텍스트(MLS)와 다중 범주 보안 컨텍스트(MCS)가 모두 할당됩니다. MLS 및 MCS 컨텍스트는 시스템에서 특정 프로세스, 파일 및 작업에만 액세스할 수 있도록 사용자를 제한합니다.
사용 가능한 SELinux 사용자의 전체 목록을 얻으려면 다음을 수행하십시오.
[root@server1 ~]# semanage user -l

                Labelling  MLS/       MLS/
SELinux User    Prefix     MCS Level  MCS Range                      SELinux Roles

guest_u         user       s0         s0                             guest_r
root            user       s0         s0-s0:c0.c1023                 staff_r sysadm_r system_r unconfined_r
staff_u         user       s0         s0-s0:c0.c1023                 staff_r sysadm_r system_r unconfined_r
sysadm_u        user       s0         s0-s0:c0.c1023                 sysadm_r
system_u        user       s0         s0-s0:c0.c1023                 system_r unconfined_r
unconfined_u    user       s0         s0-s0:c0.c1023                 system_r unconfined_r
user_u          user       s0         s0                             user_r
xguest_u        user       s0         s0                             xguest_r
Red Hat Enterprise Linux의 SELinux에 대한 자세한 내용은 Red Hat Enterprise Linux 7 SELinux 사용자 및 관리자 가이드를 참조하십시오.
SELinux 사용자 및 정책은 네트워크 수준이 아닌 시스템 수준에서 작동합니다. 즉, SELinux 사용자는 각 시스템에 독립적으로 구성됩니다. SELinux에는 일반 정의된 시스템 사용자가 있으며 SELinux 인식 서비스는 자체 정책을 정의하므로 원격 사용자와 시스템이 로컬 리소스에 액세스하는 경우 문제가 발생할 수 있습니다. 원격 사용자 및 서비스에는 실제 SELinux 사용자 및 역할이 무엇인지 모르는 상태에서 기본 게스트 컨텍스트를 할당할 수 있습니다.
Identity Management는 ID 도메인을 로컬 SELinux 서비스와 통합할 수 있습니다. ID 관리는 IdM 사용자를 호스트별로 또는 HBAC 규칙에 따라 구성된 SELinux 역할에 매핑할 수 있습니다. SELinux 및 IdM 사용자를 매핑하면 사용자 관리가 향상됩니다.
  • IdM 그룹 할당에 따라 원격 사용자에게 적절한 SELinux 사용자 컨텍스트를 부여할 수 있습니다. 또한 관리자는 로컬 계정을 생성하거나 SELinux를 재구성하지 않고도 동일한 사용자에게 동일한 정책을 일관되게 적용할 수 있습니다.
  • 사용자와 연결된 SELinux 컨텍스트는 중앙 집중화됩니다.
  • SELinux 정책은 IdM 호스트 기반 액세스 제어 규칙과 같은 설정을 통해 도메인 전체 보안 정책과 관련될 수 있습니다.
  • 관리자는 SELinux에서 사용자와 시스템을 할당하는 방법을 환경 전반의 가시성과 제어 권한을 갖게 됩니다.
SELinux 사용자 맵은 시스템용 SELinux 사용자, IdM 사용자 및 IdM 호스트 사이에 존재하는 두 가지 별도의 관계를 정의합니다. 먼저 SELinux 사용자 맵은 SELinux 사용자와 IdM 호스트(로컬 또는 대상 시스템) 간의 관계를 정의합니다. 두 번째는 SELinux 사용자와 IdM 사용자 간의 관계를 정의합니다.
이러한 정렬을 통해 관리자는 액세스하는 호스트에 따라 동일한 IdM 사용자에 대해 다른 SELinux 사용자를 설정할 수 있습니다.
SELinux 매핑 규칙의 핵심은 SELinux 시스템 사용자입니다. 각 맵은 먼저 SELinux 사용자와 연결됩니다. 매핑에 사용할 수 있는 SELinux 사용자는 IdM 서버에 구성되므로 중앙 및 범용 목록이 있습니다. 이러한 방식으로 IdM은 로그인 시 IdM을 알고 IdM 사용자와 연결할 수 있는 SELinux 사용자 집합을 정의합니다. 기본적으로 다음과 같습니다.
  • unconfined_u ( IdM 사용자의 기본으로도 사용)
  • guest_u
  • xguest_u
  • user_u
  • staff_u
그러나 이 기본 목록은 수정될 수 있으며 기본 SELinux 사용자( 32.1절. “ID 관리, SELinux 및 매핑 사용자 매핑 정보”참조)는 중앙 IdM SELinux 사용자 목록에서 추가하거나 제거할 수 있습니다.
IdM 서버 구성에서 각 SELinux 사용자는 사용자 이름뿐만 아니라 MLS 및 MCS 범위, SELinux_user:MLS[:MCS] 에도 구성됩니다. IPA 서버는 맵을 구성할 때 SELinux 사용자를 식별하기 위해 이 형식을 사용합니다.
IdM 사용자 및 호스트 구성은 매우 유연합니다. 사용자와 호스트는 SELinux 사용자 맵에 명시적으로, 개별적으로 할당하거나 사용자 그룹 또는 호스트 그룹을 맵에 명시적으로 할당할 수 있습니다.
또한 SELinux 매핑 규칙을 호스트 기반 액세스 제어 규칙과 연결하여 관리를 쉽게 만들고, 동일한 규칙을 두 위치에서 복제하고, 규칙을 동기화된 상태로 유지할 수 있습니다. 호스트 기반 액세스 제어 규칙이 사용자와 호스트를 정의하는 한 SELinux 사용자 맵에 사용할 수 있습니다. 호스트 기반 액세스 제어 규칙( 31장. 호스트 기반 액세스 제어 구성에서 설명됨)은 SELinux 사용자 맵을 IdM의 다른 액세스 제어 기능과 통합하고 원격 사용자를 위해 호스트 기반 사용자 액세스를 제한하거나 허용하고 로컬 보안 컨텍스트를 정의하는 데 도움이 될 수 있습니다.
참고
호스트 기반 액세스 제어 규칙이 SELinux 사용자 맵과 연결된 경우 SELinux 사용자 맵 구성에서 제거될 때까지 호스트 기반 액세스 제어 규칙을 삭제할 수 없습니다.
SELinux 사용자 맵은 SSSD(System Security Services Daemon) 및 10.0.0.1 _selinux 모듈과 함께 작동합니다. 원격 사용자가 시스템에 로그인하려고 하면 SSSD는 해당 IdM ID 공급자를 확인하여 SELinux 맵을 포함한 사용자 정보를 수집합니다. 그런 다음 PAM 모듈은 사용자를 처리하고 적절한 SELinux 사용자 컨텍스트를 할당합니다. SSSD 캐싱을 사용하면 매핑이 오프라인으로 작동할 수 있습니다.