본문 바로가기
서버/리눅스

CentOS 7 SELinux 사용

by 사악신 2020. 3. 4.

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

댓글