SELinux(Security Enhanced Linux )는 필수 액세스 제어 정책을 시행하는 Linux 커널 보안 모듈입니다. 이를 통해 프로세스의 정책이 명시적으로 허용하는 파일, 디렉토리 및 포트로 프로세스 제한할 수 있습니다. 이렇게 하면 표준 파일 권한이 다른 방법으로 액세스 액세스 부여하는 경우에도 액세스 차단 수 있습니다.
이 작업에 관한 정보
지원 플랫폼
MongoDB mongod와 함께 사용할 수 있는 SELinux 정책을 제공합니다. 이 기능은 다음을 사용하는 시스템의 MongoDB 엔터프라이즈 및 MongoDB Community 에서 사용할 수 있습니다.
Red Hat Enterprise Linux 또는 관련 배포판
패키지 관리자로 MongoDB 설치합니다.
지원되는 구성
MongoDB deployment 에서 다음 설정 중 하나에 대해 사용자 지정 값을 사용하는 경우 MongoDB SELinux 정책을 사용할 수 없습니다.
연결 포트: 기본 MongoDB 포트
데이터 디렉토리:
dbPath로그 디렉토리:
path프로세스 ID 경로:
pidFilePath
정책 커버리지
MongoDB SELinux 정책은 mongod에만 적용됩니다. mongos, mongosh 또는 mongocryptd도 사용하는 시스템에서 SELinux를 사용하려면 사용자 지정 정책을 구성해야 합니다.
이전 버전과의 호환성
이전 MongoDB 버전으로 다운그레이드하려면 먼저 SELinux 정책이 이전에 복제된 디렉토리 에서 다음 명령을 실행 해야 합니다.
sudo make uninstall
SELinux 정책 사용자 지정
semanage 명령을 사용하여 MongoDB SELinux 정책을 사용자 지정할 수 있습니다. 예시 들어 30000 포트를 mongod_port_t에 추가하려면 다음 명령을 실행 .
sudo semanage port -at mongod_port_t -p tcp 30000
이렇게 하면 표준 MongoDB 포트와 포트 30000 모두에서 TCP 연결을 허용하도록 SELinux가 구성됩니다.
시작하기 전에
시스템에 필수 패키지가 설치되어 있는지 확인합니다.
sudo dnf install git make checkpolicy policycoreutils \ selinux-policy-devel
시행
SELinux는 기본값 으로 정책을 시행하므로 구성된 제한 사항을 위반하는 프로세스를 차단합니다. 개발 환경에서 사용자가 SELinux를 비활성화하거나 모든 작업을 로그 하지만 허용하도록 구성하는 경우가 있습니다. 시작하기 전에 SELinux가 정책을 시행하고 있는지 확인하세요.
SELinux가 어떤 모드 에 있는지 확인하려면 다음 명령을 실행 .
getenforce
Enforcing
명령이 Permissive을 반환하면 setenforce 명령을 사용하여 적용하도록 재설정할 수 있습니다:
sudo setenforce 1
변경 사항을 영구적으로 적용하려면 /etc/selinux/config 파일 에서 SELINUX 변수를 설정하다 .
SELINUX=enforcing
단계
이제 SELinux는 MongoDB 정책을 사용하므로 SELinux가 시행 모드 에 있는 동안 mongod를 실행 수 있습니다.