Red Hat Training

A Red Hat training course is available for RHEL 8

9.15. 방화벽 잠금 구성

로컬 애플리케이션 또는 서비스는 방화벽 구성이 root (예: libvirt)로 실행되는 경우 변경할 수 있습니다. 이 기능을 사용하면 관리자가 방화벽 구성을 잠글 수 있으므로 애플리케이션이 없거나 잠금 허용 목록에 추가된 애플리케이션만 방화벽 변경 사항을 요청할 수 있습니다. 기본적으로 잠금 설정이 비활성화됩니다. 활성화된 경우 로컬 애플리케이션 또는 서비스에서 방화벽에 대한 원하지 않는 구성 변경 사항이 없는지 확인할 수 있습니다.

9.15.1. CLI를 사용하여 잠금 구성

명령줄을 사용하여 잠금 기능을 활성화하거나 비활성화할 수 있습니다.

절차

  1. 잠금이 활성화되었는지 여부를 쿼리하려면 다음을 수행합니다.

    # firewall-cmd --query-lockdown
  2. 다음 중 하나를 통해 잠금 구성을 관리합니다.

    • 잠금 활성화:

      # firewall-cmd --lockdown-on
    • 잠금 비활성화:

      # firewall-cmd --lockdown-off

9.15.2. 잠금 허용 목록 구성 파일 개요

기본 allowlist 구성 파일에는 NetworkManager 컨텍스트 및 libvirt 의 기본 컨텍스트가 포함되어 있습니다. 사용자 ID 0도 목록에 있습니다.

허용 목록 구성 파일은 /etc/firewalld/ 디렉터리에 저장됩니다.

<?xml version="1.0" encoding="utf-8"?>
	<whitelist>
		<command name="/usr/bin/python3 -s /usr/bin/firewall-config"/>
	  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
	  <selinux context="system_u:system_r:virtd_t:s0-s0:c0.c1023"/>
	  <user id="0"/>
	</whitelist>

다음은 사용자 ID가 815 인 사용자에 대해 firewall-cmd 유틸리티에 대한 모든 명령을 활성화하는 allowlist 설정 파일의 예입니다.

<?xml version="1.0" encoding="utf-8"?>
	<whitelist>
	  <command name="/usr/libexec/platform-python -s /bin/firewall-cmd*"/>
	  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
	  <user id="815"/>
	  <user name="user"/>
	</whitelist>

이 예에서는 사용자 ID와 사용자 이름 를 모두 표시하지만 하나의 옵션만 필요합니다. Python은 인터프리터이며 명령줄 앞에 추가됩니다.

Red Hat Enterprise Linux에서 모든 유틸리티는 /usr /bin/ 디렉토리에 있으며 /bin/ 디렉토리는 /usr/bin/ 디렉토리에 sym-linked입니다. 즉, root 로 입력할 때 firewall-cmd 의 경로가 /bin/firewall-cmd 로 확인될 수 있지만/usr/bin/firewall-cmd 를 사용할 수 있습니다. 모든 새 스크립트는 새 위치를 사용해야 합니다. 그러나 root 로 실행되는 스크립트가 /bin/firewall-cmd 경로를 사용하도록 작성된 경우 전통적으로 비root 사용자에게만 사용되는 /usr/bin/firewall-cmd 경로와 더불어 allow 목록에 해당 명령 경로를 추가해야 합니다.

명령의 name 특성 끝에 있는 * 는 이 문자열로 시작하는 모든 명령이 일치함을 의미합니다. * 가 없는 경우 인수를 포함한 절대 명령이 일치해야 합니다.