4.3. 비표준 디렉터리에 대한 액세스를 관리하기 위한 올바른 SELinux 유형 찾기
기본 SELinux 정책이 다루지 않는 access-control 규칙을 설정해야 하는 경우 사용 사례와 일치하는 부울을 검색하여 시작합니다. 적절한 부울을 찾을 수 없는 경우 일치하는 SELinux 유형을 사용하거나 로컬 정책 모듈을 생성할 수도 있습니다.
사전 요구 사항
-
selinux-policy-doc
및setools-console
패키지가 시스템에 설치되어 있습니다.
절차
모든 SELinux 관련 주제를 나열하고 결과를 구성하려는 구성 요소로 제한합니다. 예를 들면 다음과 같습니다.
# man -k selinux | grep samba samba_net_selinux (8) - Security Enhanced Linux Policy for the samba_net processes samba_selinux (8) - Security Enhanced Linux Policy for the smbd processes …
시나리오에 해당하는 도움말 페이지에서 관련 SELinux 부울, 포트 유형 및 파일 유형을 찾습니다.
selinux-policy-doc
패키지를 설치한 후에만man -k selinux
또는apropos selinux
명령을 사용할 수 있습니다.선택 사항:
semanage fcontext -l
명령을 사용하여 기본 위치에 프로세스의 기본 매핑을 표시할 수 있습니다. 예를 들면 다음과 같습니다.# semanage fcontext -l | grep samba … /var/cache/samba(/.*)? all files system_u:object_r:samba_var_t:s0 … /var/spool/samba(/.*)? all files system_u:object_r:samba_spool_t:s0 …
sesearch
명령을 사용하여 기본 SELinux 정책에 규칙을 표시합니다. 해당 규칙을 나열하여 사용할 유형 및 부울을 찾을 수 있습니다. 예를 들면 다음과 같습니다.$ sesearch -A | grep samba | grep httpd … allow httpd_t cifs_t:dir { getattr open search }; [ use_samba_home_dirs && httpd_enable_homedirs ]:True …
SELinux 부울은 구성 문제에 가장 간단한 솔루션일 수 있습니다.
getsebool -a
명령을 사용하여 사용 가능한 부울 및 해당 값을 모두 표시할 수 있습니다. 예를 들면 다음과 같습니다.$ getsebool -a | grep homedirs git_cgi_enable_homedirs --> off git_system_enable_homedirs --> off httpd_enable_homedirs --> off mock_enable_homedirs --> off mpd_enable_homedirs --> off openvpn_enable_homedirs --> on ssh_chroot_rw_homedirs --> off
예를 들어
sesearch
명령을 사용하여 선택한 부울이 정확히 원하는 작업을 수행하는지 확인할 수 있습니다.$ sesearch -A | grep httpd_enable_homedirs … allow httpd_suexec_t autofs_t:dir { getattr open search }; [ use_nfs_home_dirs && httpd_enable_homedirs ]:True allow httpd_suexec_t autofs_t:dir { getattr open search }; [ use_samba_home_dirs && httpd_enable_homedirs ]:True …
부울이 시나리오와 일치하지 않는 경우 케이스에 맞는 SELinux 유형을 찾습니다.
sesearch
를 사용하여 기본 정책에서 해당 규칙을 쿼리하여 파일의 유형을 찾을 수 있습니다. 예를 들면 다음과 같습니다.$ sesearch -A -s httpd_t -c file -p read … allow httpd_t httpd_t:file { append getattr ioctl lock open read write }; allow httpd_t httpd_tmp_t:file { append create getattr ioctl link lock map open read rename setattr unlink write }; …
- 이전 솔루션이 시나리오를 다루지 않는 경우 SELinux 정책에 사용자 지정 규칙을 추가할 수 있습니다. 자세한 내용은 로컬 SELinux 정책 모듈 생성 섹션을 참조하십시오.
추가 리소스
-
man -k selinux
명령에서 제공하는 SELinux 관련 도움말 페이지 -
sesearch(1)
,semanage-fcontext(8)
,semanage-boolean(8)
및getsebool(8)
도움말 페이지