Übereinstimmungsbedingungen für Firewall-Filter basierend auf Bitfeldwerten
Übereinstimmungsbedingungen für Bitfeldwerte
Tabelle 1 Listet die Übereinstimmungsbedingungen für Firewall-Filter auf, die darauf basieren, ob bestimmte Bitfelder in einem Paket festgelegt sind oder nicht. In der zweiten und dritten Spalte sind die Datenverkehrstypen aufgeführt, für die die Übereinstimmungsbedingung unterstützt wird.
Bitfeld-Übereinstimmungsbedingung |
Werte abgleichen |
Protokollfamilien für standardmäßige zustandslose Firewall-Filter |
Protokollfamilien für Servicefilter |
---|---|---|---|
fragment-flags flags |
Hexadezimalwerte oder Textaliase für das Drei-Bit-Feld IP-Fragmentierungsflags im IP-Header. |
family inet |
family inet |
fragment-offset value |
Hexadezimalwerte oder Textaliase für das 13-Bit-Fragment-Offset-Feld im IP-Header. |
family inet |
family inet |
tcp-flags value† |
Hexadezimalwerte oder Textaliase für die niederwertigen 6 Bit des 8-Bit-TCP-Flags-Felds im TCP-Header. |
family inetfamily inet6family vplsfamily bridge |
family inetfamily inet6 |
† Das Junos-Betriebssystem prüft nicht automatisch das erste Fragmentbit, wenn TCP-Flags für IPv4-Datenverkehr abgeglichen werden. Um das erste Fragmentbit nur auf IPv4-Datenverkehr zu überprüfen, verwenden Sie die Übereinstimmungsbedingung .first-fragment |
Übereinstimmungsbedingungen für gängige Bitfeldwerte oder -kombinationen
Beschreibt die Übereinstimmungsbedingungen für Firewallfilter, die darauf basieren, ob bestimmte häufig verwendete Werte oder Kombinationen von Bitfeldern in einem Paket festgelegt sind oder nicht.Tabelle 2
Sie können Textsynonyme verwenden, um einige gängige Bitfeldübereinstimmungen anzugeben. Im vorherigen Beispiel können Sie dieselbe Übereinstimmungsbedingung angeben .tcp-initial
Bei einigen der Übereinstimmungsbedingungen für numerische Bereiche und Bitfelder können Sie ein Textsynonym angeben. Eine vollständige Liste der Synonyme finden Sie unter:
Wenn Sie die J-Web-Schnittstelle verwenden, wählen Sie das Synonym aus der entsprechenden Liste aus.
Wenn Sie die CLI verwenden, geben Sie nach der Anweisung ein Fragezeichen () ein.?from
Übereinstimmungsbedingung |
Beschreibung |
Protokollfamilien für standardmäßige zustandslose Firewall-Filter |
Protokollfamilien für Servicefilter |
---|---|---|---|
first-fragment |
Textalias für die Bitfeldübereinstimmungsbedingung , die das erste Fragment eines fragmentierten Pakets angibt.fragment-offset 0 |
family inet |
family inet |
is-fragment |
Textalias für die Bitfeldübereinstimmungsbedingung , die ein nachgestelltes Fragment eines fragmentierten Pakets angibt.fragment-offset 0 except |
family inet |
family inet |
tcp-established |
Alias für die Bitfeldübereinstimmungsbedingung , die eine aufgebaute TCP-Sitzung, aber nicht das erste Paket einer TCP-Verbindung angibt.tcp-flags "(ack | rst)" |
family inetfamily inet6 |
— |
tcp-initial |
Alias für die Bitfeldübereinstimmungsbedingung , die das erste Paket einer TCP-Verbindung, aber keine etablierte TCP-Sitzung angibt.tcp-flags "(!ack & syn)" |
family inetfamily inet6 |
— |
Logische Operatoren für Bitfeldwerte
Listet die logischen Operatoren auf, die Sie auf einzelne Bitfeldwerte anwenden können, wenn Sie Übereinstimmungsbedingungen für zustandslose Firewallfilter angeben.Tabelle 3 Die Operatoren werden in der Reihenfolge von der höchsten zur niedrigsten Priorität aufgelistet. Arbeitsgänge sind linksassoziativ, d. h., die Arbeitsgänge werden von links nach rechts verarbeitet.
Rangfolge |
Logischer Bitfeld-Operator |
Beschreibung |
---|---|---|
1 |
(complex-match-condition) |
Gruppierung: Die komplexe Übereinstimmungsbedingung wird ausgewertet, bevor Operatoren außerhalb der Klammern angewendet werden. |
2 |
! match-condition |
Negation: Eine Übereinstimmung tritt auf, wenn die Übereinstimmungsbedingung falsch ist. |
3 |
match-condition-1 & match-condition-2odermatch-condition-1 + match-condition-2 |
Logisches UND: Eine Übereinstimmung tritt auf, wenn beide Übereinstimmungsbedingungen erfüllt sind. |
4 |
match-condition-1 | match-condition-2odermatch-condition-1 , match-condition-2 |
Logisches ODER: Eine Übereinstimmung tritt auf, wenn eine der Übereinstimmungsbedingungen wahr ist. |
Abgleich mit einem einzelnen Bitfeldwert oder Textalias
Für die Bitübereinstimmungsbedingungen und können Sie Übereinstimmungsbedingungen für Firewallfilter angeben, je nachdem, ob ein bestimmtes Bit im Paketfeld festgelegt ist oder nicht.fragment-flagstcp-flags
Numerischer Wert zum Angeben eines einzelnen Bits: Sie können eine einzelne Bit-Feld-Übereinstimmungsbedingung angeben, indem Sie einen numerischen Wert verwenden, für den ein Bit festgelegt ist. Abhängig von der Übereinstimmungsbedingung können Sie einen Dezimalwert, einen Binärwert oder einen Hexadezimalwert angeben. Um einen Binärwert anzugeben, geben Sie die Zahl mit dem Präfix an.b Um einen Hexadezimalwert anzugeben, geben Sie die Zahl mit dem Präfix an.0x
Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn das Bit im Feld TCP-Flags festgelegt ist:RST
[edit firewall family inet filter filter_tcp_rst_number term term1 from] user@host# set tcp-flags 0x04
Textalias zum Angeben eines einzelnen Bits: Im Allgemeinen geben Sie eine Übereinstimmungsbedingung für ein einzelnes Bitfeld an, indem Sie einen Textalias verwenden, der in doppelte Anführungszeichen (" ") eingeschlossen ist.
Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn das Bit im Feld TCP-Flags festgelegt ist:RST
[edit firewall family inet filter filter_tcp_rst_alias term term1 from] user@host# set tcp-flags “rst”
Abgleich mit mehreren Bitfeldwerten oder Textaliasen
Sie können eine Übereinstimmungsbedingung für Firewallfilter angeben, die darauf basiert, ob ein bestimmter Satz von Bits in einem Paketfeld festgelegt ist.
Numerische Werte zum Angeben mehrerer Satzbits: Wenn Sie einen numerischen Wert angeben, dessen binäre Darstellung mehr als ein Satzbit enthält, wird der Wert als logisches UND der Satzbits behandelt.
Im folgenden Beispiel sind die beiden Übereinstimmungsbedingungen identisch. Eine Übereinstimmung tritt auf, wenn entweder bit oder nicht gesetzt ist:0x010x02
[edit firewall family inet filter reset_or_not_initial_packet term term5 from] user@host# set tcp-flags “!0x3” user@host# set tcp-flags “!(0x01 & 0x02)”
Textaliase, die allgemeine Bitfeldübereinstimmungen angeben: Sie können Textaliase verwenden, um einige allgemeine Bitfeldübereinstimmungen anzugeben. Sie geben diese Übereinstimmungen als einzelnes Schlüsselwort an.
Im folgenden Beispiel gibt die Bedingung, bei der es sich um einen Alias für handelt, an, dass eine Übereinstimmung bei TCP-Paketen auftritt, bei denen es sich nicht um das erste Paket einer Verbindung handelt:tcp-established“(ack | rst)”
[edit firewall family inet filter reset_or_not_initial_packet term term6 from] user@host# set tcp-established
Abgleich mit einem negierten Bitfeldwert
Um eine Übereinstimmung zu negieren, stellen Sie dem Wert ein Ausrufezeichen voran.
Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn das Bit im Feld TCP-Flags festgelegt ist :RST
[edit firewall family inet filter filter_tcp_rst term term1 from] user@host# set tcp-flags “!rst”
Abgleich auf dem logischen ODER von zwei Bitfeldwerten
Sie können ( oder ) verwenden, um anzugeben, dass eine Übereinstimmung auftritt, wenn ein Bitfeld mit einem von zwei angegebenen Bitfeldwerten übereinstimmt.|,
Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn es sich bei dem Paket nicht um das ursprüngliche Paket in einer TCP-Sitzung handelt:
[edit firewall family inet filter not_initial_packet term term3 from] user@host# set tcp-flags "!syn | ack"
In einer TCP-Sitzung wird das SYN-Flag nur im ursprünglich gesendeten Paket gesetzt, während das ACK-Flag in allen Paketen festgelegt wird, die nach dem ursprünglichen Paket gesendet werden. In einem Paket, bei dem es sich nicht um das ursprüngliche Paket in einer TCP-Sitzung handelt, ist entweder das SYN-Flag nicht oder das ACK-Flag festgelegt.
Abgleich auf dem logischen UND von zwei Bitfeldwerten
Sie können mit ( oder ) angeben, dass eine Übereinstimmung auftritt, wenn ein Bitfeld mit beiden angegebenen Bitfeldwerten übereinstimmt.&+
Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn es sich bei dem Paket um das ursprüngliche Paket in einer TCP-Sitzung handelt:
[edit firewall family inet filter initial_packet term term2 from] user@host# set tcp-flags “syn & !ack”
In einer TCP-Sitzung wird das SYN-Flag nur im ursprünglich gesendeten Paket gesetzt, während das ACK-Flag in allen Paketen festgelegt wird, die nach dem ursprünglichen Paket gesendet werden. In einem Paket, bei dem es sich um ein Anfangspaket in einer TCP-Sitzung handelt, wird das SYN-Flag und das ACK-Flag nicht gesetzt.
Gruppieren von Bitfeld-Übereinstimmungsbedingungen
Sie können die verwenden, um anzugeben, dass die komplexe Übereinstimmungsbedingung innerhalb der Klammern ausgewertet wird, bevor Operatoren außerhalb der Klammern angewendet werden.
Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn es sich bei dem Paket um ein TCP-Reset handelt oder wenn es sich bei dem Paket nicht um das ursprüngliche Paket in der TCP-Sitzung handelt:
[edit firewall family inet filter reset_or_not_initial_packet term term4 from] user@host# set tcp-flags “!(syn & !ack) | rst”
In einer TCP-Sitzung wird das SYN-Flag nur im ursprünglich gesendeten Paket gesetzt, während das ACK-Flag in allen Paketen festgelegt wird, die nach dem ursprünglichen Paket gesendet werden. In einem Paket, bei dem es sich nicht um das ursprüngliche Paket in einer TCP-Sitzung handelt, wird das SYN-Flag nicht gesetzt, und das ACK-Feld ist festgelegt.