12.7. fapolicyd RHEL 시스템 역할을 사용하여 사용자가 신뢰할 수 없는 코드를 실행하지 못하도록 방지
fapolicyd
RHEL 시스템 역할을 사용하여 fapolicyd
서비스의 설치 및 구성을 자동화할 수 있습니다. 이 역할을 사용하면 사용자가 RPM 데이터베이스와 허용 목록에 나열된 신뢰할 수 있는 애플리케이션만 실행할 수 있도록 서비스를 원격으로 구성할 수 있습니다. 또한 서비스는 허용된 애플리케이션을 실행하기 전에 무결성 검사를 수행할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.--- - name: Configuring fapolicyd hosts: managed-node-01.example.com tasks: - name: Allow only executables installed from RPM database and specific files ansible.builtin.include_role: name: rhel-system-roles.fapolicyd vars: fapolicyd_setup_permissive: false fapolicyd_setup_integrity: sha256 fapolicyd_setup_trust: rpmdb,file fapolicyd_add_trusted_file: - <path_to_allowed_command> - <path_to_allowed_service>
예제 플레이북에 지정된 설정은 다음과 같습니다.
fapolicyd_setup_permissive: <true|false>
-
적용을 위해 커널에 정책 결정 전송을 활성화하거나 비활성화합니다. 디버깅 및 테스트 목적으로 이 변수를
false
로 설정합니다. fapolicyd_setup_integrity: <type_type>
무결성 검사 방법을 정의합니다. 다음 값 중 하나를 설정할 수 있습니다.
-
none
(기본값): 무결성 검사를 비활성화합니다. -
크기
: 서비스는 허용된 애플리케이션의 파일 크기만 비교합니다. -
i
MA
: 서비스는 SHA-256 해시에서 파일의 확장된 속성에 저장된 커널의 무결성 측정 아키텍처(IMA)를 확인합니다. 또한 서비스는 크기 검사를 수행합니다. 역할은 IMA 커널 하위 시스템을 구성하지 않습니다. 이 옵션을 사용하려면 IMA 하위 시스템을 수동으로 구성해야 합니다. -
sha256
: 서비스는 허용된 애플리케이션의 SHA-256 해시를 비교합니다.
-
fapolicyd_setup_trust: <trust_backends>
-
신뢰 백엔드 목록을 정의합니다.
파일
백엔드를 포함하는 경우fapolicyd_add_trusted_file
목록에 허용되는 실행 파일을 지정합니다.
플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.fapolicyd.README.md
파일을 참조하십시오.플레이북 구문을 확인합니다.
$ ansible-playbook ~/playbook.yml --syntax-check
이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
플레이북을 실행합니다.
$ ansible-playbook ~/playbook.yml
검증
허용 목록에 없는 바이너리 애플리케이션을 사용자로 실행합니다.
$ ansible managed-node-01.example.com -m command -a 'su -c "/bin/not_authorized_application " <user_name>' bash: line 1: /bin/not_authorized_application: Operation not permitted non-zero return code
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.fapolicyd/README.md
파일 -
/usr/share/doc/rhel-system-roles/fapolicyd/
디렉터리