1.10. 영역 간 전달된 트래픽 필터링


firewalld 를 사용하면 서로 다른 firewalld 영역 간의 네트워크 데이터 흐름을 제어할 수 있습니다. 규칙과 정책을 정의하면 이러한 영역 간에 이동할 때 트래픽이 허용되거나 차단되는 방법을 관리할 수 있습니다.

정책 오브젝트 기능은 firewalld 에서 전달 및 출력 필터링 기능을 제공합니다. firewalld 를 사용하여 다른 영역 간 트래픽을 필터링하여 로컬 호스트 VM에 대한 액세스를 통해 호스트를 연결할 수 있습니다.

1.10.1. 정책 오브젝트와 영역 간의 관계

정책 오브젝트를 사용하면 사용자가 서비스, 포트 및 리치 규칙과 같은 firewalld 기본 기능을 정책에 연결할 수 있습니다. 정책 오브젝트를 상태 저장 및 단방향 방식으로 영역 간에 전달하는 트래픽에 적용할 수 있습니다.

# firewall-cmd --permanent --new-policy myOutputPolicy

# firewall-cmd --permanent --policy myOutputPolicy --add-ingress-zone HOST

# firewall-cmd --permanent --policy myOutputPolicy --add-egress-zone ANY

HOSTALL 은 수신 및 송신 영역 목록에 사용되는 심볼릭 영역입니다.

  • HOST(호스트) 심볼릭 영역을 사용하면 firewalld를 실행하는 호스트의 대상이거나 에서 시작된 트래픽에 대한 정책을 사용할 수 있습니다.
  • 모든 심볼 릭 영역은 모든 현재 및 향후 영역에 정책을 적용합니다. 모든 심볼릭 영역은 모든 영역에 대해 와일드카드 역할을 합니다.

1.10.2. 우선순위를 사용하여 정책 정렬

여러 정책이 동일한 트래픽 집합에 적용할 수 있으므로 적용할 수 있는 정책에 대한 우선 순위 순서를 생성하려면 우선 순위를 사용해야 합니다.

정책을 정렬하는 우선 순위를 설정하려면 다음을 수행합니다.

# firewall-cmd --permanent --policy mypolicy --set-priority -500

위의 예에서 -500 은 우선 순위가 낮지만 우선 순위가 높습니다. 따라서 -500은 -100 전에 실행됩니다.

낮은 숫자 우선순위 값은 우선순위가 높고 먼저 적용됩니다.

정책 오브젝트 기능을 사용하면 사용자가 Podman과 firewalld 영역 간의 트래픽을 필터링할 수 있습니다.

참고

Red Hat은 기본적으로 모든 트래픽을 차단하고 Podman 유틸리티에 필요한 선택적 서비스를 여는 것이 좋습니다.

절차

  1. 새 방화벽 정책을 생성합니다.

    # firewall-cmd --permanent --new-policy podmanToAny
  2. Podman에서 다른 영역으로의 모든 트래픽을 차단하고 Podman에서 필요한 서비스만 허용합니다.

    # firewall-cmd --permanent --policy podmanToAny --set-target REJECT
    # firewall-cmd --permanent --policy podmanToAny --add-service dhcp
    # firewall-cmd --permanent --policy podmanToAny --add-service dns
    # firewall-cmd --permanent --policy podmanToAny --add-service https
  3. 새 Podman 영역을 생성합니다.

    # firewall-cmd --permanent --new-zone=podman
  4. 정책의 수신 영역을 정의합니다.

    # firewall-cmd --permanent --policy podmanToHost --add-ingress-zone podman
  5. 다른 모든 영역에 대한 송신 영역을 정의합니다.

    # firewall-cmd --permanent --policy podmanToHost --add-egress-zone ANY

    송신 영역을 ANY로 설정하면 Podman에서 다른 영역으로 필터링합니다. 호스트에 필터링하려면 송신 영역을 HOST로 설정합니다.

  6. firewalld 서비스를 다시 시작합니다.

    # systemctl restart firewalld

검증

  • Podman 방화벽 정책을 다른 영역에 확인합니다.

    # firewall-cmd --info-policy podmanToAny
    podmanToAny (active)
      ...
      target: REJECT
      ingress-zones: podman
      egress-zones: ANY
      services: dhcp dns https
      ...

1.10.4. 정책 오브젝트의 기본 대상 설정

정책에 대해 --set-target 옵션을 지정할 수 있습니다. 다음 대상을 사용할 수 있습니다.

  • ACCEPT - 패킷을 수락
  • DROP - 원하지 않는 패킷을 삭제합니다.
  • REJECT - ICMP 응답을 사용하여 원하지 않는 패킷을 거부
  • CONTINUE (기본값) - 패킷에는 다음 정책 및 영역의 규칙이 적용됩니다.

    # firewall-cmd --permanent --policy mypolicy --set-target CONTINUE

검증

  • 정책에 대한 정보 확인

    # firewall-cmd --info-policy mypolicy

1.10.5. DNAT를 사용하여 HTTPS 트래픽을 다른 호스트로 전달

웹 서버가 개인 IP 주소가 있는 DMZ에서 실행되는 경우 인터넷의 클라이언트가 이 웹 서버에 연결할 수 있도록 대상 네트워크 주소 변환(DNAT)을 구성할 수 있습니다. 이 경우 웹 서버의 호스트 이름이 라우터의 공용 IP 주소로 확인됩니다. 클라이언트에서 라우터의 정의된 포트에 대한 연결을 설정하면 라우터가 패킷을 내부 웹 서버로 전달합니다.

사전 요구 사항

  • DNS 서버는 웹 서버의 호스트 이름을 라우터의 IP 주소로 확인합니다.
  • 다음 설정을 알고 있습니다.

    • 전달할 개인 IP 주소 및 포트 번호입니다.
    • 사용할 IP 프로토콜
    • 패킷을 리디렉션할 웹 서버의 대상 IP 주소 및 포트

절차

  1. 방화벽 정책을 생성합니다.

    # firewall-cmd --permanent --new-policy <example_policy>

    영역과 달리 정책은 입력, 출력 및 전달된 트래픽에 대한 패킷 필터링을 허용합니다. 로컬에서 웹 서버, 컨테이너 또는 가상 머신에서 끝점으로 트래픽을 전달하려면 이러한 기능이 필요하므로 중요합니다.

  2. 라우터 자체에서 로컬 IP 주소에 연결하고 이 트래픽을 전달할 수 있도록 수신 및 송신 트래픽에 대한 심볼릭 영역을 구성합니다.

    # firewall-cmd --permanent --policy=<example_policy> --add-ingress-zone=HOST
    # firewall-cmd --permanent --policy=<example_policy> --add-egress-zone=ANY

    --add-ingress-zone=HOST 옵션은 로컬에서 생성되어 로컬 호스트에서 전송된 패킷을 나타냅니다. --add-egress-zone=ANY 옵션은 모든 영역으로 이동하는 트래픽을 나타냅니다.

  3. 트래픽을 웹 서버로 전달하는 리치 규칙을 추가합니다.

    # firewall-cmd --permanent --policy=<example_policy> --add-rich-rule='rule family="ipv4" destination address="192.0.2.1" forward-port port="443" protocol="tcp" to-port="443" to-addr="192.51.100.20"'

    리치 규칙은 라우터의 IP 주소에 있는 포트 443에서 웹 서버(192.51.100.20)의 IP 주소의 포트 443으로 TCP 트래픽을 전달합니다.

  4. 방화벽 구성 파일을 다시 로드합니다.

    # firewall-cmd --reload
    success
  5. 커널에서 127.0.0.0/8의 라우팅을 활성화합니다.

    • 영구 변경 사항의 경우 다음을 실행합니다.

      # echo "net.ipv4.conf.all.route_localnet=1" > /etc/sysctl.d/90-enable-route-localnet.conf

      이 명령은 route_localnet 커널 매개 변수를 영구적으로 구성하고 시스템이 재부팅된 후 설정이 보존되도록 합니다.

    • 시스템 재부팅없이 설정을 즉시 적용하려면 다음을 실행합니다.

      # sysctl -p /etc/sysctl.d/90-enable-route-localnet.conf

      sysctl 명령은 변경 사항을 적용하는 데 유용하지만 시스템 재부팅 시 구성은 유지되지 않습니다.

검증

  1. 라우터의 IP 주소 및 웹 서버로 전달된 포트에 연결합니다.

    # curl https://192.0.2.1:443
  2. 선택 사항: net.ipv4.conf.all.route_localnet 커널 매개변수가 활성화되어 있는지 확인합니다.

    # sysctl net.ipv4.conf.all.route_localnet
    net.ipv4.conf.all.route_localnet = 1
  3. <example_policy> 활성화되어 있고 필요한 설정, 특히 소스 IP 주소와 포트, 사용할 프로토콜, 대상 IP 주소와 포트가 포함되어 있는지 확인합니다.

    # firewall-cmd --info-policy=<example_policy>
    example_policy (active)
      priority: -1
      target: CONTINUE
      ingress-zones: HOST
      egress-zones: ANY
      services:
      ports:
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:
    	rule family="ipv4" destination address="192.0.2.1" forward-port port="443" protocol="tcp" to-port="443" to-addr="192.51.100.20"
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동