관리 메뉴

IT창고

리눅스 SELinux 1 본문

보안/Security

리눅스 SELinux 1

방구석여포 2018. 7. 2. 01:54

SELinux에 대해 알아보겠습니다.

SELinux(Security-Enhanced Linux)는 미국 국가 안전 보장국(National Security Agency, NSA)을 중심으로 2000년에 개발된 오픈소스 리눅스 보안모듈입니다. Red Hat배포판에 채택되며 알려지기 시작했으며 현재는 다양한 배포판 및 조직에서 사용되고 있습니다. 현재 우리나라에서는 SELinux를 사용하는 기업이 거의 없습니다. SELinux는 시스템 데몬의 버그를 통해 루트권한을 획득하더라도 해당 데몬에서만 루트 권한을 행할수있고 다른 시스템의 루트권한에는 제약을 두어 시스템 보안을 높여줍니다.


SELinux가 활성화가 되어있을 경우 /selinux 디렉토리안에 디렉토리와 파일들이 존재합니다. 만약 비활성화 시킬 경우에는 /selinux 디렉토리 안에 모든 디렉토리와 파일이 존재하지 않게 됩니다.

혹은 명령어로도 활성화 상태를 확인해볼수있습니다. setenforce 명령어로 일시적으로 SELinux를 비/활성화 시킬수있습니다.

sestatus명령어로 더 자세히 살펴보는것도 가능합니다.


/etc/sysconfig/selinux 파일에서 Disabled로 영구적으로 적용시킬수있습니다.


DAC에 대해 알아보겠습니다.

DAC(Discretionary Access Control)는 리눅스 시스템의 가장 중요한 보안 기능은 접근 제어 기능입니다.

디렉토리나 파일이나 네트워크 소켓같은 시스템 자원을 객체라고 하며 자원에 접근하는 사용자나 프로세스를 주체라고 할때 주체가 객체에 대한 권한(소유권,허가권,ACL)이 있다면 주체 임의로 권한 부여가 가능합니다. 유닉스나 윈도우 등 대부분의 운영체제의 기본 접근 제어 기능 모델로 사용되고 있으며 이러한 접근 제어 기능을 DAC(임의 접근 제어)라고 합니다.


MAC에 대해 알아보겠습니다.

MAC(Mandatory Access Control)은 시스템의 모든 객체에 대한 세밀한 접근 제어를 제공할수있으며 주체에게 허용된 접근 권한과 객체에게 부여된 허용 권한을 비교하여 접근을 통제하는 모델입니다. 높은 보안을 요구하는 객체는 낮은 보안 수준의 주체가 접근할 수 없으며 소유자라고 할지라도 정책에 어긋아면 객체에 접근할 수 없으므로 높은 보안수준을 제공합니다. 


SELinux의 주요 목적은 MAC(강제 접근 제어)또는 RBAC(Role Based Access Control, 역활 기반 접근 제어)라고 하는 상위 보안 계층을 추가해 DAC의 보안을 강화하는 것입니다.


secon 명령어를 사용하면 파일과 프로세스의 보안컨텍스트를 확인할수 있습니다. 

옵션을 사용해서 더 자세히 볼수있는데 -u옵션은 보안컨텍스트의 User 필드, -r 옵션은 Role 필드, -t옵션은 Type 필드, -f [file_name] 옵션은 파일의 보안 컨텍스트를 확인하고 -p [Process ID] 옵션은 프로세스의 보안 컨텍스트를 확인합니다.


User Security Contexts는 시스템의 모든 계정은 특정 SELinux 사용자(User)와 대응된다는 내용입니다.

yum -y install policycoreutils-python 명령어로 SELinux 정책 관리도구 패키지를 설치하면 대응관계를 확인해볼수있습니다.

SELinux사용자와 리눅스 시스템상에서의 대응관계를 확인해볼수있습니다.


사용자 및 관련 역활을 확인할수있습니다.


'보안 > Security' 카테고리의 다른 글

리눅스 디렉토리 접근제한, 윈도우 서버 그룹정책 보안설정  (0) 2018.08.13
리눅스 SELinux 2  (0) 2018.07.03
리눅스 서버 보안4  (0) 2018.06.29
리눅스 PAM2  (0) 2018.06.28
리눅스 PAM1  (0) 2018.06.24
Comments