Grundlegendes zu Übereinstimmungsbedingungen für Firewall-Filter
Bevor Sie Begriffe für Firewallfilter definieren, müssen Sie verstehen, wie die Bedingungen in einem Begriff behandelt werden und wie Sie Bedingungen für Schnittstellen-, numerische, Adress- und Bitfeldfilterübereinstimmungen angeben, um die gewünschten Filterergebnisse zu erzielen.
Filter-Übereinstimmungsbedingungen
In der Anweisung eines Firewallfilterbegriffs geben Sie die Bedingungen an, die das Paket erfüllen muss, damit die Aktion in der Anweisung ausgeführt wird.from
then
Alle Bedingungen müssen erfüllt sein, damit die Maßnahme umgesetzt werden kann. 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 mehrere Werte für dieselbe Bedingung angeben, stimmt eine Übereinstimmung mit einem dieser Werte mit dieser Bedingung überein. Wenn Sie z. B. mehrere IP-Quelladressen mit der Anweisung angeben, erfüllt ein Paket, das eine dieser IP-Quelladressen enthält, die Bedingung.source-address
In einigen Fällen können Sie mehrere Werte für dieselbe Bedingung angeben, indem Sie die möglichen Werte in eckige Klammern setzen, z. B.:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set protocol (icmp | udp)
In anderen Fällen müssen Sie mehrere Anweisungen eingeben, z. B.:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-address 10.1.1.1 user@switch# set source-address 10.1.1.2
Wenn Sie in einem Begriff keine Übereinstimmungsbedingungen angeben, stimmt dieser Begriff mit allen Paketen überein.
Im Gegensatz zu herkömmlichen Junos OS-Firewall-Filtern können Sie die Bedingung nicht in einer Bedingungsanweisung verwenden .except
Übereinstimmungsbedingungen für numerische Filter
Sie können numerische Filterübereinstimmungsbedingungen angeben, die durch einen numerischen Wert identifiziert werden, z. B. Port- und Protokollnummern. Bei Übereinstimmungsbedingungen für numerische Filter geben Sie die Bedingung und einen einzelnen Wert an, die ein Feld in einem Paket enthalten muss, um als Übereinstimmung zu gelten.
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. So gleichen Sie beispielsweise den Telnet-Datenverkehr ab:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-port 23
Textsynonym für eine einzelne Zahl: Eine Übereinstimmung tritt auf, wenn der Wert des Feldes mit der Zahl übereinstimmt, die dem Synonym entspricht. So gleichen Sie beispielsweise den Telnet-Datenverkehr ab:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-port telnet
Wenn Sie mehrere Werte für dieselbe Übereinstimmungsbedingung in einem Filterbegriff angeben möchten, geben Sie jeden Wert in einer eigenen Übereinstimmungsanweisung ein. Beispielsweise tritt im folgenden Begriff eine Übereinstimmung auf, wenn der Wert des Quellports im Paket 22 oder 23 ist.
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-port 22 user@switch# set source-port 23
Übereinstimmungsbedingungen für Schnittstellenfilter
Sie können eine Übereinstimmungsbedingung für Schnittstellenfilter angeben, die mit einer Schnittstelle übereinstimmt, auf der ein Paket empfangen oder übertragen wird. In diesem Beispiel gibt das letzte Zeichen () die logische Einheit an.0
Sie können den Platzhalter () als Teil des Schnittstellennamens einfügen.*
Hier einige Zahlen zum Generationswechsel:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set interface ge-0/*/6.0 user@switch# set interface ge-0/1/*.0 user@switch# set interface ge-0/0/6.*
Beachten Sie, dass Sie einen Wert oder einen Platzhalter für die logische Einheit angeben müssen.
Übereinstimmungsbedingungen für IP-Adressenfilter
Sie können eine Übereinstimmungsbedingung für den Adressfilter angeben, um eine IP-Quell- oder Zieladresse oder ein Präfix in einem Paket abzugleichen. Geben Sie den Adress- oder Präfixtyp und die Adresse oder das Präfix selbst an. 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/24;
Wenn Sie die Präfixlänge weglassen, wird standardmäßig ./32
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 oder ein Präfix in einem Filterbegriff angeben möchten, geben Sie jede Adresse oder jedes Präfix in einer eigenen Übereinstimmungsanweisung ein. Eine Übereinstimmung tritt z. B. im folgenden Begriff auf, wenn die Quelladresse eines Pakets mit einem der folgenden Präfixe übereinstimmt:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-address 10.1.0.0/16 user@switch# set source-address 10.2.0.0/16
Übereinstimmungsbedingungen für Bitfeldfilter
Sie können Übereinstimmungsbedingungen für Bitfeldfilter angeben, um bestimmte Bits innerhalb bestimmter Felder in Ethernet-Frames und IP-, TCP-, UDP- und ICMP-Headern abzugleichen. Normalerweise geben Sie das Feld und das Bit innerhalb des Feldes an, die in einem Paket festgelegt werden müssen, um als Übereinstimmung zu gelten.
In den meisten Fällen können Sie ein Schlüsselwort verwenden, um das Bit anzugeben, mit dem Sie eine Übereinstimmung erzielen möchten. Um beispielsweise ein TCP-SYN-Paket abzugleichen, können Sie eingeben, wie in:syn
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags syn
Sie können auch eingeben , weil das SYN-Bit das drittniedrigste Bit des 8-Bit-tcp-flags-Feldes ist:0x02
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags 0x02
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. Die Vorgänge werden von links nach rechts ausgewertet.
Logische Operatoren |
Beschreibung |
---|---|
|
Negation |
|
Logisches UND |
|
Logisches ODER |
Wenn Sie einen logischen Operator verwenden, schließen Sie die Werte in Anführungszeichen ein und schließen Sie keine Leerzeichen ein. Die folgende Anweisung stimmt beispielsweise mit dem zweiten Paket eines TCP-Handshakes überein:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "syn&ack"
Um eine Übereinstimmung zu negieren, stellen Sie dem Wert ein Ausrufezeichen voran. Die folgende Anweisung stimmt beispielsweise nur mit dem ursprünglichen Paket eines TCP-Handshakes überein:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "syn&!ack"
Sie können Textsynonyme verwenden, um einige gängige Bitfeldübereinstimmungen anzugeben. Die folgende Anweisung stimmt beispielsweise auch mit dem ursprünglichen Paket eines TCP-Handshakes überein:
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-initial