Grundlegendes zu Übereinstimmungsbedingungen für Firewall-Filter
Bevor Sie Begriffe für Firewallfilter definieren, müssen Sie verstehen, wie die Übereinstimmungsbedingungen, die Sie in einem Ausdruck angeben, behandelt werden und wie Sie verschiedene Arten von Übereinstimmungsbedingungen angeben, um die gewünschten Filterergebnisse zu erzielen. Eine Übereinstimmungsbedingung besteht aus einer Zeichenfolge (als Übereinstimmungsanweisung bezeichnet), die die Übereinstimmungsbedingung definiert. Übereinstimmungsbedingungen sind die Werte oder Felder, die ein Paket enthalten muss.
Filter-Übereinstimmungsbedingungen
In der Anweisung eines Firewallfilterbegriffs geben Sie die Paketbedingungen an, die die Aktion in einer der folgenden Anweisungen auslösen:from
then
mit verschiedenen Optionen oder .thenthen interfacethen vlan Alle Bedingungen in der Anweisung müssen übereinstimmen, damit die Aktion ausgeführt werden kann.from
Die Reihenfolge, in der Sie Übereinstimmungsbedingungen angeben, ist nicht wichtig, da ein Paket alle Bedingungen in einem Ausdruck erfüllen muss, damit eine Übereinstimmung auftritt.
Wenn Sie in einem Begriff keine Übereinstimmungsbedingungen angeben, stimmt dieser Begriff mit allen Paketen überein.
Eine einzelne Bedingung in einer Anweisung kann keine Liste von Werten enthalten.from
Sie können z. B. keine numerischen Bereiche oder mehrere Quell- oder Zieladressen angeben.
Einzelne Bedingungen in einer Anweisung können nicht negiert werden.from
Eine negierte Bedingung ist eine explizite Nichtübereinstimmung.
Übereinstimmungsbedingungen für numerische Filter
Numerische Filterbedingungen stimmen mit Paketfeldern überein, die durch einen numerischen Wert identifiziert werden, z. B. Port- und Protokollnummern. Bei Übereinstimmungsbedingungen für numerische Filter geben Sie ein Schlüsselwort an, das die Bedingung identifiziert, und einen einzelnen Wert, mit dem 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. Hier einige Zahlen zum Generationswechsel:
source-port 25;
Textsynonym für eine einzelne Zahl: Eine Übereinstimmung tritt auf, wenn der Wert des Felds mit der Zahl übereinstimmt, die dem Synonym entspricht. Hier einige Zahlen zum Generationswechsel:
source-port http;
Wenn Sie mehr als einen Wert in einem Filterbegriff angeben möchten, geben Sie jeden Wert in eine eigene Übereinstimmungsanweisung ein, bei der es sich um eine Zeichenfolge handelt, die eine Übereinstimmungsbedingung definiert. Eine Übereinstimmung tritt z. B. im folgenden Begriff auf, wenn der Wert von 10 oder 30 ist.vlan
[edit firewall family family-name filter filter-name term term-name from] vlan 10; vlan 30;
Die folgenden Einschränkungen gelten für Übereinstimmungsbedingungen mit numerischen Filtern:
Sie können keinen Wertebereich angeben.
Sie können keine Liste von durch Trennzeichen getrennten Werten angeben.
Sie können einen bestimmten Wert in einer numerischen Filterübereinstimmungsbedingung nicht ausschließen. Sie können z. B. keine Bedingung angeben, die nur dann erfüllt wird, wenn die Übereinstimmungsbedingung nicht mit einem bestimmten Wert übereinstimmt.
Übereinstimmungsbedingungen für Schnittstellenfilter
Übereinstimmungsbedingungen für Schnittstellenfilter können mit den Werten für Schnittstellennamen in einem Paket übereinstimmen. Bei Übereinstimmungsbedingungen für Schnittstellenfilter geben Sie den Namen der Schnittstelle an, z. B.:
[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 Firewallfilter, der auf eine Routerschnittstelle angewendet wird, kann jedoch die Nummer der logischen Einheit in der Übereinstimmungsbedingung für den Schnittstellenfilter 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 Platzhalter als Teil des Schnittstellennamens einfügen, z. B.:*
[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
Die Übereinstimmungsbedingungen für Adressfilter können mit Präfixwerten in einem Paket übereinstimmen, z. B. mit IP-Quell- und Zielpräfixen. Für Übereinstimmungsbedingungen für Adressfilter geben Sie ein Schlüsselwort an, das das Feld identifiziert, und ein Präfix dieses Typs, mit dem ein Paket übereinstimmen muss.
Sie geben die Adresse als einzelnes Präfix an. Eine Übereinstimmung tritt auf, wenn der Wert des Felds mit dem Präfix übereinstimmt. Hier einige Zahlen zum Generationswechsel:
[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 except-Anweisung, was bedeutet, dass jedes Präfix, das nicht mit dem angegebenen Präfix übereinstimmt, explizit als nicht übereinstimmend betrachtet wird.
Um das Adresspräfix anzugeben, verwenden Sie die Notation prefix/prefix-length. Wenn Sie prefix-length weglassen, wird standardmäßig /32 verwendet. Hier einige Zahlen zum Generationswechsel:
[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;
Wenn Sie mehr als eine IP-Adresse in einem Filterbegriff angeben möchten, geben Sie jede Adresse in einer eigenen Übereinstimmungsanweisung ein. Eine Übereinstimmung tritt z. B. im folgenden Ausdruck auf, wenn der Wert des Felds mit einem der folgenden Quelladresspräfixe übereinstimmt:source-address
[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
Übereinstimmungsbedingungen für MAC-Adressenfilter
Die Übereinstimmungsbedingungen für MAC-Adressfilter können mit den Werten der Quell- und Ziel-MAC-Adressen in einem Paket übereinstimmen. Für Übereinstimmungsbedingungen für MAC-Adressfilter geben Sie ein Schlüsselwort an, das das Feld identifiziert, und einen Wert dieses Typs, mit dem ein Paket übereinstimmen muss.
Sie können die MAC-Adresse als sechs Hexadezimalbytes 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
Wenn Sie mehr als eine MAC-Adresse in einem Filterbegriff angeben möchten, geben Sie jede MAC-Adresse in einer eigenen Übereinstimmungsanweisung ein. Eine Übereinstimmung tritt z. B. im folgenden Begriff auf, wenn der Wert des Felds mit einer der folgenden Adressen übereinstimmt.source-mac-address
[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
Übereinstimmungsbedingungen für Bitfeldfilter
Bitfeldfilterbedingungen stimmen mit Paketfeldern überein, wenn bestimmte Bits in diesen Feldern gesetzt sind oder nicht. Sie können die Felder IP-Optionen, TCP-Flags und IP-Fragmentierung abgleichen. Bei Übereinstimmungsbedingungen für Bitfeldfilter geben Sie ein Schlüsselwort an, das das Feld identifiziert und testet, um festzustellen, ob die Option im Feld vorhanden ist.
Um den abzugleichenden Bitfeldwert anzugeben, schließen Sie den Wert in doppelte Anführungszeichen ein. Eine Übereinstimmung tritt z. B. auf, wenn das Bit im Feld TCP-Flags festgelegt ist:RST
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "rst"
In der Regel geben Sie die zu testenden Bits mithilfe von Schlüsselwörtern an. Bitfeld-Übereinstimmungskeywords werden immer einem einzelnen Bitwert zugeordnet. Sie können Bitfelder auch als Hexadezimal- oder Dezimalzahlen angeben.
Um mehrere Bitfeldwerte abzugleichen, verwenden Sie die logischen Operatoren, die in beschrieben werden .Tabelle 1 Die Operatoren werden in der Reihenfolge von der höchsten zur niedrigsten Priorität aufgelistet. Operationen sind linksassoziativ.
Logische Operatoren |
Beschreibung |
---|---|
! |
Negation. |
& |
Logisches UND. |
| |
Logisches ODER. |
Um eine Übereinstimmung zu negieren, stellen Sie dem Wert ein Ausrufezeichen voran. Eine Übereinstimmung tritt z. B. 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 einer logischen UND-Verknüpfung tritt eine Übereinstimmung auf, wenn es sich bei dem Paket um das ursprüngliche Paket 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 einer logischen ODER-Operation tritt eine Übereinstimmung auf, wenn das Paket Teil des TCP-Sitzungsauf- oder -abbaus ist:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "syn|fin"
Für eine logische ODER-Verknüpfung können Sie maximal zwei Übereinstimmungsbedingungen in einem einzelnen Ausdruck angeben. Wenn Sie mehr als zwei Bitfeldwerte in einer logischen ODER-Operation 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 Textsynonyme verwenden, um einige gängige Bitfeldübereinstimmungen anzugeben. Sie geben diese Übereinstimmungen als einzelnes Schlüsselwort an. Im folgenden Beispiel eines Textsynonyms 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