Grundlegendes zur Übereinstimmung der Firewall-Filterbedingungen
Bevor Sie Begriffe für Firewallfilter definieren, müssen Sie verstehen, wie die in einem Begriff angegebenen Übereinstimmungsbedingungen behandelt werden und wie verschiedene Arten von Übereinstimmungsbedingungen angegeben werden, um die gewünschten Filterergebnisse zu erzielen. Eine Übereinstimmungsbedingung besteht aus einer Zeichenfolge (sogenannten Match-Anweisung), die die Übereinstimmungsbedingung definiert. Übereinstimmungsbedingungen sind die Werte oder Felder, die ein Paket enthalten muss.
Filter Match Bedingungen
In der from
Anweisung eines Firewall-Filterbegriffs geben Sie die Paketbedingungen an, die die Aktion auslösen, in einer der then
Anweisungen: then mit verschiedenen Optionen oder then interfacethen vlan. Alle Bedingungen in der from
Erklärung müssen für die zu ergreifenden Maßnahmen übereinstimmen. Die Reihenfolge, in der Sie die Übereinstimmungsbedingungen angeben, ist nicht wichtig, da ein Paket alle Bedingungen in einem Begriff erfüllen muss, damit eine Übereinstimmung auftritt.
Wenn Sie keine Übereinstimmungsbedingungen in einem Begriff angeben, entspricht dieser Begriff allen Paketen.
Eine einzelne Bedingung in einer from
Anweisung kann keine Liste von Werten enthalten. Sie können beispielsweise keine numerischen Bereiche oder mehrere Quell- oder Zieladressen angeben.
Einzelne Bedingungen in einer from
Anweisung können nicht negiert werden. Eine negierte Bedingung ist eine explizite Mismatch.
Numerische Filtergleichbedingungen
Numerische Filterbedingungen entsprechen Paketfeldern, die durch einen numerischen Wert wie Port- und Protokollnummern identifiziert werden. Für numerische Filtergleichbedingungen geben Sie ein Schlüsselwort an, das die Bedingung identifiziert, und einen einzelnen Wert, der für ein Feld in einem Paket übereinstimmen muss.
Sie können den numerischen Wert auf eine der folgenden Arten angeben:
Einzelne Zahl: Eine Übereinstimmung tritt auf, wenn der Wert des Feldes mit der Zahl übereinstimmt. Zum Beispiel:
source-port 25;
Text-Synonym für eine einzelne Zahl– Eine Übereinstimmung tritt auf, wenn der Wert des Feldes mit der Zahl übereinstimmt, die dem Synonym entspricht. Zum Beispiel:
source-port http;
Um mehr als einen Wert in einem Filterbegriff anzugeben, geben Sie jeden Wert in seine eigene Match-Anweisung ein, eine Zeichenfolge, die eine Übereinstimmungsbedingung definiert. Eine Übereinstimmung findet beispielsweise im folgenden Begriff statt, wenn der Wert von vlan 10 oder 30 ist.
[edit firewall family family-name filter filter-name term term-name from] vlan 10; vlan 30;
Die folgenden Einschränkungen gelten für numerische Filtergleichbedingungen:
Sie können keinen Wertebereich angeben.
Sie können keine Liste mit durch Komma getrennten Werten angeben.
Sie können einen bestimmten Wert in einer numerischen Filtergleichbedingung nicht ausschließen. Sie können beispielsweise keine Bedingung angeben, die nur dann übereinstimmt, wenn die Übereinstimmungsbedingung nicht mit einem bestimmten Wert übereinstimmt.
Schnittstellenfilter passen Bedingungen an
Schnittstellenfilter können werte für Schnittstellennamen in einem Paket übereinstimmen. Für Schnittstellenfilter-Übereinstimmungsbedingungen geben Sie z. B. den Namen der Schnittstelle an:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set interface ge-0/0/1
Port- und VLAN-Schnittstellen verwenden keine logischen Einheitennummern. Ein Firewall-Filter, der auf eine Routerschnittstelle angewendet wird, kann jedoch die logische Einheitsnummer in der Schnittstellen-Filter-Übereinstimmungsbedingung angeben, z. B.:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set interface ge-0/1/0.0
Sie können den * Wildcard beispielsweise als Teil des Schnittstellennamens einschließen:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set interface ge-0/*/1 user@switch# set interface ge-0/1/* user@switch# set interface ge-*
Übereinstimmungsbedingungen für IP-Adressenfilter
Bedingungen für Adressfilter-Übereinstimmungen können Präfixwerte in einem Paket übereinstimmen, z. B. IP-Quell- und Zielpräfixe. Für Adressfilter-Übereinstimmungsbedingungen geben Sie ein Schlüsselwort an, das das Feld identifiziert, und ein Präfix dieses Typs, das ein Paket übereinstimmen muss.
Sie geben die Adresse als einzelnes Präfix an. Eine Übereinstimmung tritt auf, wenn der Wert des Feldes mit dem Präfix übereinstimmt. Zum Beispiel:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-address 10.2.1.0/28;
Jedes Präfix enthält eine implizite 0/0-Ausnahme-Anweisung, was bedeutet, dass jedes Präfix, das nicht mit dem angegebenen Präfix übereinstimmt, explizit als nicht übereinstimmend angesehen wird.
Um das Adresspfix anzugeben, verwenden Sie die Notation Prefix/Prefix-Länge. Wenn Sie die Präfixlänge weglassen, wird standardmäßig /32 angezeigt. Zum Beispiel:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-address 10 [edit firewall family family-name filter filter-name term term-name from] user@switch# show destination-address 10.0.0.0/32;
Um mehr als eine IP-Adresse in einem Filterbegriff anzugeben, geben Sie jede Adresse in ihre eigene Übereinstimmungsaussage ein. Beispielsweise findet eine Übereinstimmung mit dem folgenden Begriff statt, wenn der Wert des source-address Feldes mit einem der folgenden Quelladressenpräfixe übereinstimmt:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-address 10.0.0.0/8 user@switch# set source-address 10.1.0.0/16
Bedingungen für MAC-Adressfilter
Mac-Adressenfilter können Quell- und Zielwerte für MAC-Adressen in einem Paket abgleichen. Für MAC-Adressfilter stimmen Bedingungen ab, geben Sie ein Schlüsselwort an, das das Feld identifiziert, und einen Wert dieses Typs, dem ein Paket entsprechen muss.
Sie können die MAC-Adresse als sechs hexadezimale Bytes in den folgenden Formaten angeben:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-mac-address 0011.2233.4455
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-mac-address 00:11:22:33:44:55
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-mac-address 001122334455
Um mehr als eine MAC-Adresse in einem Filterbegriff anzugeben, geben Sie jede MAC-Adresse in ihre eigene Übereinstimmungsaussage ein. Beispielsweise erfolgt eine Übereinstimmung mit dem folgenden Begriff, wenn der Wert des source-mac-address Feldes mit einer der folgenden Adressen übereinstimmt.
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-mac-address 00:11:22:33:44:55 user@switch# set source-mac-address 00:11:22:33:20:15
Bedingungen für Bitfeldfilter
Die Bedingungen des Bitfeldfilters entsprechen Paketfeldern, wenn bestimmte Bits in diesen Feldern festgelegt sind oder nicht festgelegt sind. Sie können die IP-Optionen, TCP-Flags und IP-Fragmentierungsfelder abgleichen. Für Bitfeldfilter-Übereinstimmungsbedingungen geben Sie ein Schlüsselwort an, das das Feld identifiziert, und tests, um zu bestimmen, ob die Option im Feld vorhanden ist.
Um den Bitfeldwert anzugeben, der übereinstimmen soll, schließen Sie den Wert in doppelte Anführungszeichen ein. Eine Übereinstimmung tritt beispielsweise auf, wenn das RST Bit im Feld TCP-Flags festgelegt ist:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "rst"
In der Regel geben Sie die Bits an, die getestet werden sollen, indem Sie Schlüsselwörter verwenden. Stichwörter für Bitfeld-Übereinstimmungen sind immer einem einzelnen Bitwert zuzuordnen. Sie können Bitfelder auch als hexadezimale oder dezimale Zahlen angeben.
Um mehrere Bitfeldwerte abzugleichen, verwenden Sie die logischen Operatoren, die in Tabelle 1beschrieben werden. Die Operatoren werden in der Reihenfolge der höchsten Rangfolge bis zur niedrigsten Rangfolge aufgeführt. Der Betrieb ist links-assoziativ.
Logische Operatoren |
Beschreibung |
---|---|
! |
Negation. |
& |
Logisch UND. |
| |
Logisches ODER. |
Um eine Übereinstimmung zu negieren, gehen Sie dem Wert ein Ausrufezeichen voraus. Eine Übereinstimmung tritt beispielsweise nur auf, wenn das RST-Bit im Feld TCP-Flags nicht festgelegt ist:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "!rst"
Im folgenden Beispiel eines logischen AND-Vorgangs tritt eine Übereinstimmung auf, wenn es sich bei dem Paket um das ursprüngliche Paket in einer TCP-Sitzung handelt:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "syn&!ack"
Im folgenden Beispiel eines logischen ODER-Vorgangs tritt eine Übereinstimmung auf, wenn das Paket Teil der TCP-Sitzungseinrichtung oder des Abreißens ist:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "syn|fin"
Für einen logischen ODER-Vorgang können Sie maximal zwei Übereinstimmungsbedingungen in einem einzigen Begriff angeben. Wenn Sie mehr als zwei Bitfeldwerte in einem logischen ODER-Vorgang abgleichen müssen, konfigurieren Sie dieselbe Übereinstimmungsbedingung nacheinander mit zusätzlichen Bitfeldwerten. Im folgenden Beispiel stimmen die beiden konfigurierten Begriffe mit dem SYN-, ACK-, FIN- oder RST-Bit im Feld TCP-Flags überein:
[edit firewall family family-name filter filter-name term term-name1 from] user@switch# set tcp-flags "syn|ack" [edit firewall family family-name filter filter-name term term-name2 from] user@switch# set tcp-flags "fin|rst"
Sie können Text-Synonyme verwenden, um einige gängige Bitfeld-Übereinstimmungen anzugeben. Sie geben diese Übereinstimmungen als ein einziges Schlüsselwort an. Im folgenden Beispiel eines Text-Synonyms tritt eine Übereinstimmung auf, wenn es sich bei dem Paket um das ursprüngliche Paket in einer TCP-Sitzung handelt:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags tcp-initial