1.9. 영역을 사용하여 소스에 따라 들어오는 트래픽 관리

영역을 사용하여 소스에 따라 들어오는 트래픽을 관리할 수 있습니다. 이 컨텍스트에서 들어오는 트래픽은 시스템을 대상으로 하거나 firewalld 를 실행하는 호스트를 통과하는 모든 데이터입니다. 소스는 일반적으로 트래픽이 시작된 IP 주소 또는 네트워크 범위를 나타냅니다. 결과적으로 들어오는 트래픽을 정렬하고 다른 영역에 할당하여 해당 트래픽으로 연결할 수 있는 서비스를 허용하거나 허용하지 않을 수 있습니다.

소스 주소의 일치는 인터페이스 이름별 일치보다 우선합니다. 영역에 소스를 추가하면 방화벽은 인터페이스 기반 규칙을 통한 들어오는 트래픽에 대한 소스 기반 규칙의 우선 순위를 지정합니다. 즉, 들어오는 트래픽이 특정 영역에 지정된 소스 주소와 일치하는 경우 해당 소스 주소와 연결된 영역에 도달하는 인터페이스에 관계없이 트래픽이 처리되는 방법이 결정됩니다. 반면 인터페이스 기반 규칙은 일반적으로 특정 소스 기반 규칙과 일치하지 않는 트래픽에 대한 폴백입니다. 이러한 규칙은 소스가 영역과 명시적으로 연결되어 있지 않은 트래픽에 적용됩니다. 이를 통해 특정 소스 정의 영역이 없는 트래픽에 대한 기본 동작을 정의할 수 있습니다.

1.9.1. 소스 추가

들어오는 트래픽을 특정 영역으로 라우팅하려면 소스를 해당 영역에 추가합니다. 소스는 CIDR(Classless inter-domain routing) 표기법의 IP 주소 또는 IP 마스크일 수 있습니다.

참고

겹치는 네트워크 범위를 사용하여 여러 영역을 추가하는 경우 영역 이름으로 영숫자로 정렬되며 첫 번째 영역만 고려합니다.

  • 현재 영역에서 소스를 설정하려면 다음을 수행합니다.

    # firewall-cmd --add-source=<source>
  • 특정 영역의 소스 IP 주소를 설정하려면 다음을 수행합니다.

    # firewall-cmd --zone=zone-name --add-source=<source>

다음 절차에서는 trusted 영역에서의 모든 수신 트래픽을 허용합니다.

절차

  1. 사용 가능한 모든 영역을 나열합니다.

    # firewall-cmd --get-zones
  2. 영구 모드의 신뢰할 수 있는 영역에 소스 IP를 추가합니다.

    # firewall-cmd --zone=trusted --add-source=192.168.2.15
  3. 새 설정을 영구적으로 만듭니다.

    # firewall-cmd --runtime-to-permanent

1.9.2. 소스 제거

영역에서 소스를 제거하면 소스에서 시작된 트래픽은 더 이상 해당 소스에 지정된 규칙을 통해 전달되지 않습니다. 대신 트래픽이 시작된 인터페이스와 연결된 영역의 규칙 및 설정으로 대체되거나 기본 영역으로 이동합니다.

절차

  1. 필수 영역에 허용되는 소스를 나열합니다.

    # firewall-cmd --zone=zone-name --list-sources
  2. 영역에서 소스를 영구적으로 제거합니다.

    # firewall-cmd --zone=zone-name --remove-source=<source>
  3. 새 설정을 영구적으로 만듭니다.

    # firewall-cmd --runtime-to-permanent

1.9.3. 소스 포트 제거

소스 포트를 제거하면 원본 포트에 따라 트래픽 정렬을 비활성화합니다.

절차

  • 소스 포트를 제거하려면 다음을 수행합니다.

    # firewall-cmd --zone=zone-name --remove-source-port=<port-name>/<tcp|udp|sctp|dccp>

1.9.4. 영역 및 소스를 사용하여 특정 도메인에만 서비스 허용

특정 네트워크의 트래픽이 시스템에서 서비스를 사용하도록 허용하려면 영역 및 소스를 사용합니다. 다음 절차에서는 192.0.2.0/24 네트워크의 HTTP 트래픽만 허용하고 다른 모든 트래픽은 차단됩니다.

주의

이 시나리오를 구성할 때 기본 대상이 있는 영역을 사용합니다. 대상이 ACCEPT 로 설정된 영역을 사용하는 것은 192.0.2.0/24 의 트래픽의 경우 모든 네트워크 연결이 허용되기 때문에 보안 위험입니다.

절차

  1. 사용 가능한 모든 영역을 나열합니다.

    # firewall-cmd --get-zones
    block dmz drop external home internal public trusted work
  2. IP 범위를 내부 영역에 추가하여 소스에서 영역을 통해 발생하는 트래픽을 라우팅합니다.

    # firewall-cmd --zone=internal --add-source=192.0.2.0/24
  3. 내부 영역에 http 서비스를 추가합니다.

    # firewall-cmd --zone=internal --add-service=http
  4. 새 설정을 영구적으로 만듭니다.

    # firewall-cmd --runtime-to-permanent

검증

  • 내부 영역이 활성화되어 있고 서비스가 허용되는지 확인합니다.

    # firewall-cmd --zone=internal --list-all
    internal (active)
      target: default
      icmp-block-inversion: no
      interfaces:
      sources: 192.0.2.0/24
      services: cockpit dhcpv6-client mdns samba-client ssh http
      ...

추가 리소스

  • firewalld.zones(5) 도움말 페이지