6.28. pam_selinux - 기본 보안 문맥 설정

pam_selinux.so [ open ] [ close ] [ restore ] [ nottys ] [ debug ] [ verbose ] [ select_context ] [ env_params ] [ use_current_range ]

6.28.1. 설명

pam_selinux는 다음으로 실행하는 프로세스의 기본 SELinux 보안 문맥을 설정하는 PAM 모듈이다.

새 세션이 시작될 때 모듈의 open_session 부분에서 다음 execve(2) 호출에 쓸 실행 보안 문맥, 제어 터미널의 파일 보안 문맥, 새 커널 키링 생성에 쓸 보안 문맥을 계산해서 설정한다.

세션이 끝날 때 모듈의 close_session 부분에서 모듈의 open_session의 변경 전에 적용되고 있던 원래 보안 문맥들을 복원한다.

PAM 스택에 pam_selinux를 추가하는 게 응용을 실행하는 다른 PAM 모듈의 동작을 방해하게 될 수도 있다. 이를 방지하려면 PAM 스택에서 그런 모듈들 뒤에 pam_selinux.so open 행을 두고, 또 그런 모듈들 앞에 pam_selinux.so close 행을 둬야 한다. 그런 배치가 가능하지 않은 경우에는 pam_selinux.so restore 행을 이용해 원래 보안 문맥들을 임시로 복원할 수 있다.

6.28.2. 옵션

open

모듈의 open_session 부분만 실행한다.

close

모듈의 close_session 부분만 실행한다.

restore

모듈의 open_session 부분에서, 보안 문맥들을 앞선 모듈 호출 전의 상태로 잠시 복원한다. restore 옵션 없이 이 모듈을 한 번 더 호출하면 다시 새 보안 문맥들을 설정하게 된다.

nottys

제어 터미널의 보안 문맥을 설정하지 않는다.

debug

syslog(3)를 통한 디버그 메시지를 켠다.

verbose

보안 문맥 설정 시 사용자에게 알려 준다.

select_context

원하는 보안 문맥 역할을 사용자에게 물어 본다. MLS가 켜져 있으면 민감도 단계도 묻는다.

env_params

PAM 환경에서 보안 문맥 역할을 얻는다. MLS가 켜져 있으면 민감도 단계도 얻는다. 이 옵션과 select_context 옵션은 상호 배타적이다. 해당하는 PAM 환경 변수는 SELINUX_ROLE_REQUESTED, SELINUX_LEVEL_REQUESTED, SELINUX_USE_CURRENT_RANGE다. 앞의 둘은 이름 그대로이며, 마지막 변수를 1로 설정하면 모듈 명령행에 use_current_range를 지정한 것처럼 PAM 모듈이 동작하게 된다.

use_current_range

사용자 문맥에 기본 단계 대신 현재 프로세스의 민감도 단계를 사용한다. 또한 민감도 단계를 사용자에게 묻거나 PAM 환경에서 얻지 않게 한다.

6.28.3. 제공하는 모듈 종류

session 모듈 타입만 제공한다.

6.28.4. 반환 값

PAM_SUCCESS

보안 문맥을 성공적으로 설정했다.

PAM_SESSION_ERR

유효한 보안 문맥을 얻거나 설정할 수 없다.

PAM_USER_UNKNOWN

시스템에서 알지 못하는 사용자다.

PAM_BUF_ERR

메모리 할당 오류.

6.28.5. 예시

auth     required  pam_unix.so
session  required  pam_permit.so
session  optional  pam_selinux.so
    

6.28.6. 작성자

Dan Walsh <dwalsh@redhat.com>가 pam_selinux를 작성했다.