Red Hat Training

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

18.12.2. チェーンのフィルター

フィルターリングルールはフィルターチェーンで編成されています。このようなチェーンは、パケットフィルターリングルールを持つツリー構造を、個々のチェーン (分岐) のエントリーとして持つと考えることができます。
パケットは root チェーンでフィルター評価を開始し、他のチェーンで評価を継続し、これらのチェーンから root チェーンに戻るか、トラバースされたチェーンの 1 つでフィルタールールによりドロップまたは許可されます。
libvirt のネットワークフィルターリングシステムは、ユーザーがトラフィックフィルターリングのアクティブ化を選択する仮想マシンのネットワークインターフェイスごとに、個々の root チェーンを自動的に作成します。ユーザーは、root チェーンで直接インスタンス化されるフィルターリングルールを作成するか、プロトコル固有のルールを効率的に評価するためにプロトコル固有のフィルターリングチェーンを作成できます。
以下のチェーンが存在します。
  • root
  • mac
  • stp (スパニングツリープロトコル)
  • vlan
  • arp と rarp
  • ipv4
  • ipv6
mac、stp、vlan、arp、rarp、ipv4、または ipv6 のプロトコルを評価する複数のチェーンは、プロトコル名をチェーン名の接頭辞としてのみ使用して作成できます。

例18.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>
root チェーンなどではなく、ARP 固有のルールを arp チェーンに配置すると、ARP 以外のパケットプロトコルは ARP プロトコル固有のルールで評価される必要がなくなります。これにより、トラフィックフィルターリングの効率が向上します。ただし、その他のルールは評価されないため、指定したプロトコルのフィルターリングルールのみをチェーンに組み込むことに注意する必要があります。たとえば、IPv4 プロトコルパケットは ARP チェーンを通過しないため、IPv4 ルールは ARP チェーンで評価されません。