10.3. selinux RHEL 시스템 역할을 사용하여 SELinux 모듈 배포
기본 SELinux 정책이 요구 사항을 충족하지 않는 경우 사용자 지정 모듈을 생성하여 애플리케이션이 필요한 리소스에 액세스할 수 있도록 할 수 있습니다. selinux
RHEL 시스템 역할을 사용하면 이 프로세스를 자동화하고 SELinux 모듈을 원격으로 배포할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다. - 배포하려는 SELinux 모듈은 플레이북과 동일한 디렉터리에 저장됩니다.
SELinux 모듈은 CIL(Common Intermediate Language) 또는 정책 패키지(PP) 형식으로 사용할 수 있습니다.
PP 모듈을 사용하는 경우 관리 노드의
policydb
버전이 PP 모듈을 빌드하는 데 사용되는 버전과 같거나 그 이상인지 확인하십시오.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제 플레이북에 지정된 설정은 다음과 같습니다.
path: <module_file>
- 제어 노드에서 모듈 파일의 경로를 설정합니다.
우선순위: < ;value>
-
SELinux 모듈 우선 순위를 설정합니다.
400
은 기본값입니다. state: < ;value>
모듈의 상태를 정의합니다.
-
활성화됨
: 모듈을 설치하거나 활성화합니다. -
비활성화됨
: 모듈을 비활성화합니다. -
absent
: 모듈을 제거합니다.
-
플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.selinux/README.md
파일을 참조하십시오.플레이북 구문을 확인합니다.
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
SELinux 모듈 목록을 원격으로 표시하고 플레이북에서 사용한 모듈 목록을 필터링합니다.
ansible managed-node-01.example.com -m shell -a 'semodule -l | grep <module>'
# ansible managed-node-01.example.com -m shell -a 'semodule -l | grep <module>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모듈이 나열되면 설치되어 활성화되어 있습니다.