본문 바로가기
Linux

리눅스 보안-SELinux

by shinebee* 2020. 6. 1.

SELinux

- Linux의 보안을 강화

- 접근 제어 모델을 사용해서 파일이나 자원에 대한 접근을 제어

- DAC 모델이 아닌 MAC 사용

- 주체(Subject) : 시스템 자원에 접근하는 프로세스 또는 사용자 등을 의미

- 객체(Object) : 파일 또는 포트와 같은 시스템 자원을 의미

 

* DAC(Discretionary Access Control) 

  - 임의 접근 제어 모델

  - 사용자의 권한을 기반으로 파일이나 자원에 대한 접근 

  - 주체는 객체에 대한 권한만 설정되어 있다면 접근 가능

   ex) /etc/passwd  rw-r--r--  : 시스템의 모든 사용자가 접근할 수 있다.

  - 권한이 루트 사용자에게 집중되어 있기 때문에 보안에 취약할 수 있다.

     -> 프로그램 -> root 권한으로 실행 -> 취약점 -> /etc/passwd 파일에 접근할 수 있다.

 

* MAC(Mandatory Access Control)

  - 강제 접근 제어 모델

  - 주체와 객체에 부여된 보안 레이블과 정책 허용 스위피에 의해 접근을 제어

  - 사용자, 파일 , 포트 등에 대한 정책을 부여하여 접근을 제어한다.

   ex) 파일을 연다 -> 주체가 객체에 접근한다는 것을 의미

  - 정책 : context

     context가 같으면 주체가 객체에 접근할 수 있다.

 

 - SELinux의 파일 접근 방식

    process(httpd_t) ---------------> file1(httpd_sys_t)      context가 같으므로 접근 가능

                     l

                     -------------------------> file2 (mysql_db_t)    context가 다르므로 접근 불가

 

- 부울 : 정책 스위치

 

//실습

yum install httpd -y
systemctl start httpd
ps Z -ef | grep httpd  //Z->context 확인
ld -dZ /var/www/html/
getenforce // 현재 시스템에 적용된 SELinux 모드를 확인하는 명령
setenforce 0 // 시스템이 운영중을 때 SELinux 모드를 전환하는 명령 
setenforce 1 // 0->permissive  1->Enforcing
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

vi /var/www/html/index.html
 -> 입력 후 firefox에서 정상적으로 나오는지 확인 (O)
ls -Z index.html
 -> context 확인 
 
vi /var/index2.html 
 -> 입력 후 firefox에서 정상적으로 나오는지 확인 (X)
ls -Z index2.html
 -> context 확인  // var_t 같지 않음
cp /var/index2.html /var/www/html/index2.html
ls -Z /var/www/html/index2.html
 -> context 확인 // httpd_sys_content_t 같음
cp -a index2.html /var/www/html/index 3.html
 -> 'cp -a'를 사용하면 context가 변경되지 않고 그대로 복사된다. 확인해보면 오류.
setenforce 0 
 -> 끄고 실행해보면 화면이 정상적으로 출력된다.
restorecon /var/www/html/index 3.html  //restorecon:컨텍스트 복구하는 명령

'Linux' 카테고리의 다른 글

SMB Storage  (0) 2020.06.03
NFS Storage (autofs)  (0) 2020.06.02
DNS Server  (0) 2020.06.01
DHCP Server  (0) 2020.06.01
Network Teaming  (0) 2020.06.01

댓글