귀염둥이의 메모

[Linux / CentOS 7] SELinux (모드, 해제), 접근 제어 모델(DAC, MAC, RBAC) 본문

Infra & Devops/Linux

[Linux / CentOS 7] SELinux (모드, 해제), 접근 제어 모델(DAC, MAC, RBAC)

겸둥이xz 2021. 8. 24. 20:45
반응형

리눅스는 일반적으로 DAC(Discretionary Access Control) 접근 제어 모델을 사용합니다. DAC 는 사용자의 권한을 기반으로 파일과 자원에 대한 접근을 제어합니다. DAC는 편리하지만 특정 소프트웨어 취약점이 존재했을 때 취약점을 통해서 시스템 권한과 정보가 쉽게 탈취될 수 있다는 단점이 있습니다.

SELinux(Security Enhanced Linux)는 리눅스의 보안을 강화해주는 커널 모듈이고, 이 것을 사용하면 DAC 이 아닌 MAC(Mandatoryy Access Control)을 사용합니다. MAC은 프로세스, 사용자, 포트, 파일 등에 정책을 부여해서 접근을 제어 합니다.

 

접근 제어 모델

DAC(Discretionary Access Control) : 임의적 접근 제어

- 시스템 자원에 권한을 부여하여 접근을 제어하는 방식

- 자원에 대한 소유권에 기반

- 시스템 권한 및 정보가 쉽게 탈취될 수 있음

 

MAC(Mandatoryy Access Control) : 강제 접근 제어

- DAC 모델 적용 후 보안 레이블 확인

- 보안 레이블에 의해 거부된 접근은 정책 허용 스위치에 의해서 다시 접근 가능

- 구성이 어렵고, 비밀유지가 필요한 곳에서 사용

 

RBAC(Role Based Access Control) : 역할 기반 접근 제어

- 역할은 다수의 권한을 묶어 놓은 그룹

- 관리자가 사용자에게 역할을 부여함으로써 권한을 제어

 

 

SELinux 모드

Enforcing, Permissive, Disabled 3가지 모드가 있습니다.

 

set status 명령어로 확인이 가능합니다

[root@server1 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

 

Enforcing

- SELinux 커널 모듈을 메모리에 로드

- SELinux 활성화 상태, 정책을 강제함

- MAC 모델 - 접근 권한, Context, 정책 허용 스위치 등을 확인

 

Permissive

- SELinux 커널 모듈을 메모리에 로드

- SELinux 활성화 상태, 정책을 강제하지 않음 (경고 메시지만 남김)

- Enforcing 모드 전환 전에 문제 해결용도로 사용

 

Disabled

- SELinux 커널 모듈을 메모리에 로드하지 않음

- 완전히 비활성화 되어있는 상태

- DAC 모델 사용 - 권한 기준 접근 제어

 

SELinux 모드 설정하기

getenforce : 현재 적용된 SELinux 모드 확인

[root@server1 ~]# getenforce
Enforcing

 

setenforce <모드넘버> : 모드 변경

모드넘버 0: Permissive, 1: Enforcing
[root@server1 ~]# setenforce 0
[root@server1 ~]# getenforce
Permissive
[root@server1 ~]# setenforce 1
[root@server1 ~]# getenforce
Enforcing

 

 

SELinux 해제하기

SELinux는 해제 하지않고 활성화 하는것이 보안에 좋습니다

 

SELinux 설정 파일 /etc/selinux/config 을 편집기로 열어줍니다

[root@server1 ~]# vi /etc/selinux/config

----------- 파일내용------------
# 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  
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

SELINUX=enforcing => SELINUX=disabled 로 변경후 저장합니다

SELINUX=disabled

 

시스템을 재부팅 합니다.

[root@server1 ~]# reboot

 

getenforce 로 확인

[root@server1 ~]# getenforce
Disabled
반응형
Comments