SELinux 메시지 확인
root 권한으로 /var/www/html 디렉토리데 파일 생성
# touch /var/www/html/testfile
생성된 파일의 SELinux 확인
기본적으로 Linux 사용자는 제한이 없음
testfile 파일에 SELinux unconfined_u 사용자의 라벨이 붙어 있습니다.
RBAC는 파일이 아닌 프로세스에 사용됨, 역할(role)은 파일에게 의미가 없음
object_r 역할(role)은 파일에 사용되는 일반적인 역할(role)
/proc/ 디렉토리 아래에서는 프로세스와 관련된 파일은 system_r 역할(role)을 사용하는 경우가 있음
httpd_sys_content_r 타입은 httpd 프로세스가 파일에 액세스 할 수 있도록 허용
SELinux 기본설정
SELinux의 설정 파일은 /etc/sysconfig/selinux 에서 확인할 수 있습니다.
disabled – SELinux 보안 제어를 사용하지 않으려면 disabled 옵션을 선택합니다. disabled 설정은 보안 제어 기능을 끄고 시스템이 보안 정책을 사용하지 않도록 설정합니다. disabled 옵션은 시스템 부팅시에 부트로더의 파라메터로 selinux=0으로 설정하시고 부팅하는 것과 같은 설정을 나타냅니다.
permissive – 이것을 선택하면 서비스 거부 메시지를 통보 받을 수 있습니다. permissive 상태로 설정하면 자료와 프로그램에 이름을 할당한 후 로그를 기록하지만 보안 정책을 사용하지는 않습니다. permissive 상태는 SELinux를 처음 접하는 경우 처음부터 이 기능을 완전히 활성화하지 않고 우선 이 정책을 사용해서 일반 시스템 작업 시 어떠한 영향을 미치는지 알아보려는 경우 좋은 시작점이 될 수 있으나 경고 옵션을 선택 시 가끔씩 보안 경고 대상이 아닌 것을 경고 대상으로 탐지하는 오류(false positive)나 경고 대상인 것을 탐지하지 않는 오류(false negative)가 발생할 가능성도 있으니 주의가 필요합니다. permissive 옵션은 setenforce 0 명령어와 같은 결과를 나타냅니다.
enforcing – SELinux를 완전히 활성화하는 옵션입니다. enforcing 옵션을 선택하면 추가 시스템 보안을 위해 모든 보안 정책 (예, 허가가 없는 사용자가 특정한 파일이나 프로그램에 접근하는 것을 거부하기)이 사용됩니다. SELinux가 완전히 실행되어도 아무런 지장을 받지 않고 일반적인 시스템 작업을 수행할 수 있다고 확인이 되는 경우 이 옵션을 설정하시길 권장합니다. 또한 enforcing 옵션은 setenforce 1 명령어와 같은 결과를 나타냅니다.
SELinux 서비스 설정
chcon – SELinux의 보안문맥을 변경해야 하는 경우에 사용하는 명령
아파치를 사용 중에 분명히 디렉토리를 생성했는데요 에러가 난다면 아래처럼 http_user_content_t를 해당 DocumentRoot에 적용해줌으로써 해결할 수 있습니다.
# chcon -R -t httpd_user_content_t /home/guest/public_html
setsebool – SELinux 설정 값의 각 항목을 설정하는 명령
/etc/selinux/targeted/Booleans (설정 파일)
SELinux 정책결정
현재 사용중인 시스템에 정책을 적용 시키는 경우 많은 문제를 야기 시킬 수 있습니다. 그러므로 정책을 적용 시키기 전에 면밀한 테스트와 정책 적용 문제를 충분히 고려해야 합니다. 정책 교체 방법은 system-config-securitylevel을 사용하여 정책을 바꾸고 재명명(relabel)하도록 파일 시스템을 설정하면 됩니다.