한국인터넷진흥원에서 다운로드
http://www.kisa.or.kr/public/library/etcView.jsp?regno=017017&searchType=&searchKeyword=&pageIndex=1
SELinux는 보안성이 향상된 새로운 방화벽 시스템으로 최근의 리눅스 시스템에 기본적으로 추가되어 있습니다. 이것을 변경하기 위해서는 페도라 메뉴의
시스템->관리->SELinux Management
를 실행하여 설정을 변경할 수 있습니다. 현재 어떤 문제가 발생하고 있는지는 setroubleshoot 리포트를 참고합니다.
다음은 http://www.fduser.org/blog/42 에서 퍼온 내용입니다.
1. SELinux 설치 및 미 설치 방법
설치 중 방화벽 설정 화면에서 선택한 사항에 기초하여 설치자(installer)가 처리.
– 설치(active) : 기본 가동 정책(default running policy)은 목표 정책이며,
기본으로(by default) 가동된다.
– 미설치(disabled) : disabled 상태로 변경하여 설치 진행한다.
2. 사용중인 정책을 교체하는 방법
– system-config-securitylevel
정책을 바꾸고 재명명(relabel)하도록 파일 시스템을 설정하는 것이다.
(1) /etc/selinux/config을 편집하고 SELINUXTYPE=policyname 으로 정책 유형을 바꾼다.
(2) 재 부팅 하여 돌아올 수 있는지 확인하기 위해, SELINUX=permissive 모드로 설정한다.
이렇게 하면, SELinux는 정확한 정책하에서 가동될 것이지만, 만일 부정확한 파일 문맥 명명(labeling)과 같은 문제가 있으면 로그인 하도록 할 것이다.
(3) sysadm_r 역할을 갖춘 root로 파일 시스템을 재명명 한다(relabel)
id -Z
root:sysadm_r:sysadm_t
fixfiles relabel
옵션 -l /path/to/logfile을 사용하여 표준 출력으로 로그를 볼 수 있고, 옵션 –o /path/to/file을 사용하여 검토(checked)되거나 재 명명(relabeled)된 모든 파일 리스트를 저장할 수 있다.
(4) 시스템을 재 부팅 한다. 새 정책하에서의 재 시작은 모든 시스템 프로세스가 적절한 문맥에서 시작되고 정책 변경으로 인한 모든 문제가 드러나게 한다.
(5) sestatus –v 명령으로 발효된 변경사항을 확인한다. Permissive 모드로 가 동된 새 시스템에서, avc: denied 메시지를 /var/log/messages에서 확인한 다. 이들은 새 정책하에 문제없이 시스템이 가동되도록 해결해야 할 문제들을 표시해 준다.
(6) 새 정책하에서 시스템이 만족스럽게 돌아갈 때, SELINUX=enforcing 으로 바꿔 실행 권한을 부여한다. 실시간에 enforcing을 활성화 시키기 위 해 재 부팅하거나 setenforce 1 을 실행한다.
3. 특정 데몬에 대하여 SELinux protection을 활성화/비활 성화 방법
– 특정 데몬의 부울 값을 제어하려면 system-config-securitylevel을 사용한다.
예를 들어, 만일 apache가 시스템상에서 올바르게 동작하도록 하기 위해서는 SELinux를 비활성화 시켜야 한다면, system-config-securitylevel으로 해당 값을 비활성화시키면 된다.
이는 apache.te에 정의된 정책으로 전이되는 것을 막고 httpd가 일반 리눅스 보안 하에 있도록 한다.
4. 부팅 중 SELinux를 비활성화시키는 방법
– 커널 명령 라인에 selinux=0를 추가
5. 부팅시 enforcing을 활성화/비활성화하는 방법
– /etc/sysconfig/selinux 설정 파일을 이용
====================================================
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX=enforcing
(1) SELINUX=enforcing : enforcing을 활성화하기 위해 커널을 부팅할 때 명령 라인에
enforcing =1을 추가하는 것과 같다.
(2) SELINUX=permissive : enforcing을 비활성화하기 위해 enforcing=0 를 추가하는 것과 같다.
(3) SELINUX=disabled : 커널 부트 인자 selinux=0을 사용 하는 것과 다르다.
커널에서 SELinux를 완전하게 비활성화시키는 것과 달 리 대신 disabled를 설정하는 것은 enforcing을 비활성화하고 정책 적재를 하지 않고 건너뛰는 것이다.
====================================================
6. 재부팅하지 않고 enforcing 모드를 임시로 비활성화/활성화 방법
– 실시간으로 enforcing모드를 비활성화시키기 위해서 sentenforce 0 명령을 실행.
작업이 끝나서 enforcing 모드로 돌아오기 위해서는 sentenforce 1을 실행.
7. SELinux 설치에 관한 상태 정보(status info)를 얻는 방법
– root 사용자 권한으로 /usr/sbin/setstatus –v 명령을 실행.