10.2. selinux RHEL 시스템 역할을 사용하여 SELinux 네트워크 포트 레이블 관리
비표준 포트에서 서비스를 실행하려면 이 포트에서 해당 SELinux 유형 레이블을 설정해야 합니다. 이렇게 하면 서비스가 비표준 포트에서 수신 대기하려고 할 때 SELinux가 서비스에 대한 권한을 거부합니다. selinux
RHEL 시스템 역할을 사용하면 이 작업을 자동화하고 포트에 type 레이블을 원격으로 할당할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제 플레이북에 지정된 설정은 다음과 같습니다.
포트: < ;port_number>
- SELinux 레이블을 할당할 포트 번호를 정의합니다. 여러 값을 쉼표로 구분합니다.
setype: <type_label>
- 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! Toggle word wrap Toggle overflow 이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
http_port_t
레이블이 할당된 포트 번호를 표시합니다.ansible managed-node-01.example.com -m shell -a 'semanage port --list | grep http_port_t'
# ansible managed-node-01.example.com -m shell -a 'semanage port --list | grep http_port_t' http_port_t tcp 80, 81, 443, <port_number>, 488, 8008, 8009, 8443, 9000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow