명령어/Linux

[RHEL] semanage SELinux 정책 설정을 영구 관리

jykim23 2026. 8. 16. 16:32
반응형

부제: 불린·포트·파일 문맥·로그인 매핑을 재부팅에도 살아남게 바꾼다

semanage boolean -l          # 불린 목록과 현재/기본값
semanage port -l             # 포트-타입 매핑
semanage fcontext -l         # 파일 경로-문맥 규칙
SELinux 포트 유형                  프로토      포트 번호

afs3_callback_port_t           tcp      7001
afs3_callback_port_t           udp      7001
afs_bos_port_t                 udp      7007
afs_fs_port_t                  tcp      2040
afs_fs_port_t                  udp      7000, 7005

semanage는 SELinux 정책의 로컬 설정을 관리하는 도구다. setsebool이나 라벨링 명령이 일시적 변경에 그치는 것과 달리, semanage로 넣은 규칙은 정책 저장소에 기록되어 재부팅과 relabel 후에도 유지된다. 포트를 새 타입에 매핑하거나, 특정 경로에 파일 문맥을 지정하거나, 리눅스 사용자를 SELinux 사용자에 묶는 일이 전부 여기서 이뤄진다. 데비안 계열은 SELinux 대신 AppArmor를 쓰는 경우가 많아 이 도구 자체가 낯설다. RHEL 계열에서 SELinux를 실제로 운영한다면 반드시 손에 익혀야 한다.

이렇게도 쓴다

특정 불린만 이름으로 걸러서 상태를 본다.

semanage boolean -l | grep httpd_can_network

 

기본값과 다르게 바뀐 불린만 추린다(-C).

semanage boolean -l -C

 

로그인 이름과 SELinux 사용자 매핑을 확인한다.

semanage login -l

 

현재 로컬 커스터마이징을 통째로 내보낸다(백업·이관용).

semanage export

 

파일 문맥 규칙에서 httpd 관련만 뽑아 본다(조합).

semanage fcontext -l | grep httpd | head

 

내보낸 설정을 다른 서버에 그대로 적용한다(조합).

semanage export -f - | ssh host2 'semanage import -f -'
반응형