10장. 여러 시스템에 동일한 SELinux 구성 배포
다음 방법 중 하나를 사용하여 여러 시스템에 확인된 SELinux 구성을 배포할 수 있습니다.
- RHEL 시스템 역할 및 Ansible 사용
- RHEL 웹 콘솔 사용
-
semanage export
및 import 명령을 사용하여 스크립트에서 명령
10.1. selinux
RHEL 시스템 역할을 사용하여 디렉터리에서 SELinux 컨텍스트 복원
파일에 잘못된 SELinux 컨텍스트가 있는 경우 다음과 같은 여러 사례가 있을 수 있습니다. 예를 들어 파일이 복사되거나 디렉터리로 이동하는 경우 SELinux 컨텍스트가 새 위치의 예상 컨텍스트와 일치하지 않을 수 있습니다. 잘못된 SELinux 컨텍스트를 사용하면 애플리케이션이 파일에 액세스하지 못할 수 있습니다. 많은 호스트의 디렉터리에서 SELinux 컨텍스트를 원격으로 재설정하려면 selinux
RHEL 시스템 역할을 사용할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.--- - name: Managing SELinux hosts: managed-node-01.example.com tasks: - name: Restore SELinux context ansible.builtin.include_role: name: redhat.rhel_system_roles.selinux vars: selinux_restore_dirs: - /var/www/ - /etc/
--- - name: Managing SELinux hosts: managed-node-01.example.com tasks: - name: Restore SELinux context ansible.builtin.include_role: name: redhat.rhel_system_roles.selinux vars: selinux_restore_dirs: - /var/www/ - /etc/
Copy to Clipboard Copied! 예제 플레이북에 지정된 설정은 다음과 같습니다.
selinux_restore_dirs: <list>
- SELinux 컨텍스트를 재설정해야 하는 디렉터리 목록을 정의합니다.
플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/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! 이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied!
검증
컨텍스트를 재설정한 파일 또는 디렉터리에 대한 SELinux 컨텍스트를 표시합니다. 예를 들어
/var/www/
디렉터리에 컨텍스트를 표시하려면 다음을 입력합니다.ansible rhel9.example.com -m command -a 'ls -ldZ /var/www/'
# ansible rhel9.example.com -m command -a 'ls -ldZ /var/www/' drwxr-xr-x. 4 root root system_u:object_r:httpd_sys_content_t:s0 33 Feb 28 13:20 /var/www/
Copy to Clipboard Copied!