IT/LINUX

[EX342] trouble shooting [selinux]

송시 2020. 12. 24. 00:40
728x90

리눅스에서는 SELinux 라는 좀더 고오급진 보안 정책이 있다. 그런데 이것이 고오급지기도 하고 귀찮기도해서 그냥 스리슬적 넘기는게 일상 다반사다.

그런데 trouble shooting 에서 selinux에 대한 이해가 있어야지만 문제를 알아낼 수 있는 부분들이 있기에 SELinux 를 오늘 한번 짚고 넘어가 볼까한다.

SELinux 를 쉽게 생각하면 ACL(접근제어) 로 괜찮을 것 같다.

/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 를 강제로 할 것인지, 경고를 출력할 것인지, 사용하지 않을 것인지를 택할 수 있다.

서비스를 제공하는데 있어서 여러 변경들이 수행되기도 한다. 이러한 변경들이 SELINUX 에 반하는 일이 발생할 수 있다.

이럴때 마다 enforcing 으로 강하게 모든 정책이 보호 된다면 의도와 상관없이 서비스는 일부 제공되지 않는 일이 발생한다.

서비스의 가용성이라는 측면에서는 매우 큰 위험을 주는 설정임에는 분명하다.

그런데 그 변경이 서비스를 제공하는 사람이 아닌 외부의 흔히 말하는 해커와 같은 사람에 의한 변경이라면 어떻게 될까?

서비스의 가용성을 지킬 수는 있지만, 서비스의 무결성이나 기밀성의 문제를 야기 시킬 수 있다. 그래도 적어도 permissive 를 설정해놓는다면 누군가가 log 를 분석하여 문제 상황을 확인 할 수있는 상태가 될 것이다.

disabled 는 편하다. 앞서 말한 것 처럼 로그를 분석할 필요도 없고, 접근제어로 인한 가용성 수준이 떨어지는 일도 없다.

하지만 분명 위험한 상태임은 말할 것도 없다.

 

SELINUXTYPE 의 경우는 거의 건드리지 않는 설정인데

targeted는 기본 값으로 설정되어 있고 거의 모든 프로세스를 대상으로 한다고 봐도 될 것 같다

minimum는 선택된 프로세스에만 정책을 사용하기에, 매우 적은 정책이 적용된다.

mls 는 Multi level security 라는 이름에서 처럼 여러 레벨의 보안설정을 사용하여 접근제어를 더 꼼꼼하게 하려고 하는 것 같다.


[root@trouble policy]# strings /etc/selinux/targeted/policy/policy.31 |wc -l
55064
[root@trouble policy]# strings /etc/selinux/minimum/policy/policy.31 |wc -l
14618
[root@trouble policy]# strings /etc/selinux/mls/policy/policy.31 |wc -l
26864

** 정책의 갯수는 시스템에 설치되어 있는 파일들에 따라 서로 상이할 수 있다.

 

[root@trouble selinux]# yum list|grep selinux-policy-[m,t],*

[root@trouble selinux]# yum list|grep selinux-policy-[m,t],*|awk -F. '{print $1}'
selinux-policy-targeted
selinux-policy-minimum
selinux-policy-mls

각각의 패키지에 따라 설정을 따르는 것 같다.

어쨌든 왠만하면 targeted 설정을 해도 무방하며 minimum 의 경우 적은 양의 메모리를 사용하게 되기 때문에, selinux 를 테스트 하거나, 소형 시스템에서 적용하기에 적합할 것 정도로만 생각해 두자

 

 

그래서 SELINUX 가 뭐야 라는 질문에 위의 그림이 나름 명확한 것 같다.

access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/mls

 

4.13. Multi-Level Security (MLS) Red Hat Enterprise Linux 7 | Red Hat Customer Portal

The Red Hat Customer Portal delivers the knowledge, expertise, and guidance available through your Red Hat subscription.

access.redhat.com

ryusstory.tistory.com/entry/SELinux-1%ED%8E%B8-%EA%B8%B0%EB%B3%B8-%EC%84%A4%EC%A0%95-%EC%9E%A5%EC%95%A0-%EC%9C%A0%EB%B0%9C-%EC%9C%A0%EC%A0%80-%EA%B6%8C%ED%95%9C-%ED%95%A0%EB%8B%B9

 

SELinux 1편, 기본 설정, 장애 유발, 유저 권한 할당

Table of Contents 왜?? 먼저 왜? selinux를 봐야할까? 라는 것부터 시작해야될 것 같네요. 거의 몇년간 selinux는 꺼야만 하는 것. 이라고만 알고 써왔던 리눅스 보안 모듈이죠. 그런데 조금은 변화가 찾아

ryusstory.tistory.com

selinuxproject.org/page/NB_PolicyType

 

NB PolicyType - SELinux Wiki

Types of SELinux Policy This section describes the different type of policy descriptions and versions that can be found within SELinux. The type of SELinux policy can described in a number of ways: Source code - These can be described as: Example, Referenc

selinuxproject.org

fedoraproject.org/wiki/SELinux/Policies

 

SELinux/Policies - Fedora Project Wiki

Discussion of Policies SELinux is a very flexible architecture. You can pick and choose your policy, depending on your security needs. After our experiences with the strict policy, we went back and reflected on what our goals were. We wanted a system where

fedoraproject.org

danwalsh.livejournal.com/26759.html

 

selinux-policy-minimum

First a little history: The first policy developed for SELinux was called the example policy. Red Hat developed a policy package off of this called targeted which we used for the basis of Red Hat Enterprise Linux 4 and Fedora 2/3, The SELinux community rew

danwalsh.livejournal.com

SELINUX 를 이해하려거든 좀 더 많은 공부가 필요해 보인다.

728x90

'IT > LINUX' 카테고리의 다른 글

[EX342] trouble shooting[MBR, GPT]  (0) 2020.12.27
[EX342]trouble shooting [selinux command]  (0) 2020.12.24
[RHCA] 그냥 따고 싶어졌어.  (4) 2020.12.23
[ansible] become 에 대하여  (0) 2020.12.22
RHCE (ex294) ansible  (0) 2020.12.21