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 |
댓글