SELinux
Security Enhanced Linux
(많은 사람들이) 리눅스에서 뭔가 제대로 동작하지 않으면 disable 하도록 소개하는 것
인터넷에 노출된 서비스에서는 되도록 disable 하지 않아야 하는 것
자주 발생하는 문제 및 해결
웹서버에 파일과 폴더를 만들고 GUEST 읽기 권한을 두었는데도 웹브라우저로 접근할 수 없음
→ 새로 만든 폴더에 httpd_sys_content_t 또는 httpd_sys_script_exec_t 컨텍스트를 추가해야 함
잘 동작하던 프로그램의 설정파일을 복사해 왔는데도 프로그램이 실행되지 않음
→ 복사한 설정파일에 config_t 콘텍스트를 추가해야 함
SSHD 설정파일에서 SSH 포트를 다른 포트로 바꾸었는데 적용되지 않음
→ 바꾸려는 포트에 ssh_port_t 콘텍스트를 추가해야 함
해커가 침입했더라도 취득한 콘텍스트는 제한적이기 때문에 다른 부분에 관여할 수 없음
→ selinux 를 disable 하면 보안에 많이 취약해짐
보안 컨텍스트
Security Context
Context :문맥, 맥락
알맞은 보안 컨텍스트가 아니면 실행이 되지 않음
보안 컨텍스트는 login, user, port, interface, node, fcontext(파일) 등에 적용할 수 있음
보안 컨텍스트 확인하기
sudo -s # 디렉터리/파일에 관한 컨텍스트 확인 ls -Z /etc/httpd ls -Z /var/www # 실행중인 프로세스에 관한 컨텍스트 확인 ps auxZ | grep httpd # 포트에 관한 컨텍스트 확인 semanage port -l | grep httpd
# ls -Z /etc/httpd drwxr-xr-x. system_u:object_r:httpd_config_t:s0 conf drwxr-xr-x. system_u:object_r:httpd_config_t:s0 conf.d drwxr-xr-x. system_u:object_r:httpd_config_t:s0 conf.modules.d lrwxrwxrwx. system_u:object_r:httpd_log_t:s0 logs -> ../../var/log/httpd lrwxrwxrwx. system_u:object_r:httpd_modules_t:s0 modules -> ../../usr/lib64/httpd/modules lrwxrwxrwx. system_u:object_r:httpd_config_t:s0 run -> /run/httpd # ls -Z /var/www drwxr-xr-x system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin drwxr-xr-x system_u:object_r:httpd_sys_content_t:s0 html # ps auxZ | grep httpd system_u:system_r:httpd_t:s0 apache ... /usr/sbin/httpd -DFOREGROUND # semanage port -l | grep http http_port_t tcp 80, 443, 8080
SELinux 동작 확인하기
SELINUX=enforcing SELINUXTYPE=targeted
보안 컨텍스트 적용 하기
상기의 보안 컨텍스트 확인하기를 통해 필요한 보안 컨텍스트를 확인한다. 필요한 컨텍스트를 파일 또는 포트에 추가한다.
semanage - SELinux Policy Management tool 설치
sudo yum -y install policycoreutils-python
파일에 보안 컨텍스트 추가
sudo chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/wiki/data
포트에 보안 컨텍스트 추가
sudo semanage port -a -t ssh_port_t -p tcp XXXX
함께 읽기
https://www.lesstif.com/system-admin/selinux-7634968.html
https://www.redhat.com/ko/topics/linux/what-is-selinux
https://learning.oreilly.com/library/view/selinux-system-administration/9781800201477/