SELinux 사용에 필요한 패키지들을 설치합니다.
yum install policycoreutils-python
yum install setools setools-console setroubleshoot*
yum install policycoreutils-devel
메뉴얼 페이지를 생성합니다.
sepolicy manpage -a -p /usr/share/man/man8; mandb
현재 SELinux 의 상태를 확인하려면 다음 명령어를 실행합니다.
sestatus
SELinux 의 모드는 Enforcing, Permissive, Disabled 3가지가 있으며 각각 운영, 디버그, 중지 모드라고 생각하면 됩니다. 모드를 변경하려면 /etc/selinux/config 파일을 수정하면 됩니다. 임시로 모드를 변경하려면 setenforce 를 사용합니다.
setenforce permissive
setenforce enforcing
1. 보안문맥
SELinux 레이블이라고 불리며, 명령어에 -Z 파라미터를 사용하면 적용된 레이블을 확인할 수 있습니다.
id -Z
ls -Z
ps -auxZ
파일과 디렉토리의 모든 레이블은 다음과 같이 확인 가능하며, grep 을 이용해 필요한 부분만 필터해서 확인합니다.
semanage fcontext -l
semanage fcontext -l | grep sshd
시스템에서 사용할 수 있는 모든 보안문맥 타입은 아래 명령어로 확인할 수 있습니다.
seinfo -t
unconfined_t 레이블은 SELinux 정책의 보호를 받지 않음을 의미합니다.
2. 정책적용
SELinux 의 로그는 /var/log/audit/audit.log 에 저장되며, 해당 파일의 내용은 sealert 명령어를 통해 상세설명 및 문제해결에 대한 내용을 확인할 수 있습니다.
sealert -a /var/log/audit/audit.log
SELinux 와 연관된 오류가 발생하였다고 생각되는 경우 상기 명령어를 실행하여 내용을 확인합니다.
상기 이미지는 sshd 의 접속 포트를 3004로 변경하고 재실행하였을때 발생한 오류에 대한 sealert 결과입니다.
semanage port -a -t ssh_port_t -p tcp 3004
여기서 -p 는 정책을 임시가 아닌 영구적으로 적용함을 의미합니다. 도움말의 경우 아래와 같이 실행합니다.
man sshd_selinux
man httpd_selinux
그 외 사용예...
semanage boolean -l
semanage boolean -l | grep httpd
setsebool httpd_use_nfs on
setsebool httpd_use_nfs off
semanage fcontext -a -t httpd_sys_content_t /var/www/html/test.txt -> 웹서버에서 읽을 수 있도록...
restorecon -v /var/www/html/text.txt -> 파일의 경우 항상 사용해주자...
semanage port -a -t redis_port_t -p tcp 6379
'서버 > 리눅스' 카테고리의 다른 글
CentOS 7 특정 횟수 이상 TCP 접속 차단하기 (0) | 2020.10.04 |
---|---|
zsh 사용하기 (0) | 2020.03.10 |
CentOS 7, fail2ban 설정 (0) | 2019.06.04 |
CentOS 7 방화벽 설정 (1) | 2019.06.04 |
간단한 보안 검사하기 (0) | 2019.05.30 |
댓글