SELinux는 Linux의 보안을 강화해 주는 보안 강화 커널이고, zero-day 공격 및 buffer overflow 등 어플리케이션 취약점으로 인한 해킹을 방지해 주는 핵심 구성요소이다. 특정 서비스가 SELinux 때문에 동작하지 않는다면, SELinux를 끄기 보다는 해당 서비스가 SELinux 하에 잘 동작하도록 설정을 수정하는 것을 권장한다.


SELinux 동작 모드

enforce, permissive, disable 세 가지 모드가 있으며 RHEL/CentOS 를 설치하면 enforce mode 로 동작하며 SELinux 의 rule 에 어긋나는 operation 은 거부된다.

현재 SELinux의 동작 모드는 sestatus 명령어로 확인할 수 있다.



Permissive mode는 rule에 어긋나는 동작이 있을 경우 audit log 를 남기고 해당 operation 은 허용된다.

개발 서버일 경우 특정 daemon이나 서비스에 문제가 있을 경우 setenforce 0으로 Permissive mode로 전환하여 문제 해결 후 enforce mode로 전환하는 것을 추천한다.


SELinux 해제

  • 인터넷이 연결되어 있는 리눅스 서버라면 SELinux 해제는 추천하지 않는다.
  • 해제할 경우 다시 활성화 시키려면 재부팅이 필요하며 재부팅시 모든 자원에 대해 보안 레이블을 설정해야 하므로 부팅 시간이 매우 오래 걸릴 수 있다.

1. vi/etc/sysconfig/selinux

2. SELINUX=enforcing 을 SELINUX=disabled 로 변경 후 저장한다.

3. reboot


※File Context 보기

#semanage fcontext -l | grep mysql

참고. https://www.lesstif.com/pages/viewpage.action?pageId=6979732





SELinux TroubleShoot Server (SELinux 에러 메시지를 알기 쉽게 번역해 주고 처리 방안을 제시하는 유틸리티) 참고 사이트