일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- centOS7
- 인프라
- 운영체제
- centOS
- devops
- k8s
- 도커
- Swift
- os
- 클라우드
- 부스트코스
- 프로세스
- linux
- 데브옵스
- 도커 컨테이너
- docker
- 네트워크
- ios
- Python
- kubernetes
- 컨테이너
- 도커 이미지
- AWS
- 쿠버네티스
- 리눅스
- boj
- swift 클로저
- C++
- 도커 명령어
- NGINX
- Today
- Total
귀염둥이의 메모
[Linux / CentOS 7] SELinux (모드, 해제), 접근 제어 모델(DAC, MAC, RBAC) 본문
[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
'Infra & Devops > Linux' 카테고리의 다른 글
[Linux / CentOS 7] MariaDB 설치하기 (0) | 2021.08.24 |
---|---|
[Linux / CentOS 7] Apache 웹 서버 설치하기 (0) | 2021.08.24 |
[Linux / CentOS 7] 사용자 및 그룹관리 (/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow) (0) | 2021.08.22 |
[Linux / CentOS 7] 튜닝 프로파일 (0) | 2021.08.22 |
[Linux / CentOS 7] 프로세스(process), 작업 (job) 환경 (ps, jobs, fg, bg, kill, nice, renice ...) (0) | 2021.08.21 |