Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

17.14.2. 체인 필터링

필터링 규칙은 필터 체인으로 구성됩니다. 이러한 체인은 개별 체인 (branches)의 항목으로 패킷 필터링 규칙을 사용하는 트리 구조를 갖는 것으로 간주 될 수 있습니다.
패킷은 루트 체인에서 필터 평가를 시작하고 다른 체인에서 평가를 계속하여 해당 체인에서 다시 루트 체인으로 돌아가거나 트래버스 체인 중 하나에서 필터링 규칙에 의해 삭제 또는 수락됩니다.
libvirt의 네트워크 필터링 시스템은 사용자가 트래픽 필터링을 활성화하기 위해 선택하는 모든 가상 시스템의 네트워크 인터페이스에 대해 개별 루트 체인을 자동으로 생성합니다. 사용자는 루트 체인에서 직접 인스턴스화되거나 프로토콜별 규칙을 효율적으로 평가하기 위해 프로토콜별 필터링 체인을 생성할 수 있는 필터링 규칙을 작성할 수 있습니다.
다음 체인이 있습니다.
  • 루트
  • mac
  • STP (spanning tree protocol)
  • VLAN
  • ARP 및 rarp
  • ipv4
  • ipv6
mac, stp, vlan, arp, rarp, ipv4 또는 ipv6 프로토콜을 평가하는 여러 체인은 체인 이름에서 접두사로만 프로토콜 이름을 사용하여 생성할 수 있습니다.

예 17.3. ARP 트래픽 필터링

이 예제에서는 이름이 arp-xyz 또는 arp-test인 체인을 지정하고 해당 체인에서 ARP 프로토콜 패킷을 평가할 수 있습니다.
다음 필터 XML은 arp 체인에서 ARP 트래픽을 필터링하는 예를 보여줍니다.
<filter name='no-arp-spoofing' chain='arp' priority='-500'>
  <uuid>f88f1932-debf-4aa1-9fbe-f10d3aa4bc95</uuid>
  <rule action='drop' direction='out' priority='300'>
    <mac match='no' srcmacaddr='$MAC'/>
  </rule>
  <rule action='drop' direction='out' priority='350'>
    <arp match='no' arpsrcmacaddr='$MAC'/>
  </rule>
  <rule action='drop' direction='out' priority='400'>
    <arp match='no' arpsrcipaddr='$IP'/>
  </rule>
  <rule action='drop' direction='in' priority='450'>
    <arp opcode='Reply'/>
    <arp match='no' arpdstmacaddr='$MAC'/>
  </rule>
  <rule action='drop' direction='in' priority='500'>
    <arp match='no' arpdstipaddr='$IP'/>
  </rule>
  <rule action='accept' direction='inout' priority='600'>
    <arp opcode='Request'/>
  </rule>
  <rule action='accept' direction='inout' priority='650'>
    <arp opcode='Reply'/>
  </rule>
  <rule action='drop' direction='inout' priority='1000'/>
</filter>
루트 체인에서와 같이 arp 체인에 ARP 관련 규칙을 배치한 결과 ARP 프로토콜 대신 ARP 프로토콜을 다른 패킷 프로토콜로 평가할 필요가 없다는 것입니다. 이로 인해 트래픽 필터링의 효율성이 향상됩니다. 그러나 다른 규칙은 평가되지 않으므로 지정된 프로토콜에 대한 필터링 규칙을 체인에만 배치해야 합니다. 예를 들어 IPv4 프로토콜 패킷이 ARP 체인을 통과하지 않으므로 IPv4 규칙은 ARP 체인에서 평가되지 않습니다.