Auf dieser Seite
Beispiel: Verwenden von Firewall-Filterketten
Dieses Beispiel zeigt die Verwendung von Firewall-Filterketten. Die Firewall-Filter filter1, filter2 und filter3 werden mit den Anweisungen und configuration auf die input-chain
output-chain
Schnittstelle ge-0/1/1.0 angewendet.
Anforderungen
Bevor Sie beginnen:
-
Sie sollten über einen Router der MX-Serie mit MPCs und Junos Version 18.4R1 oder höher verfügen.
Wenn Sie für diese Funktion PTX10001-36MR-, PTX10004-, PTX10008- oder PTX10016 Router verwenden, installieren Sie Junos OS Evolved Version 21.4R1.
Der Router sollte für das IP-Protokoll
family inet
Version 4 (IPv4) konfiguriert sein () und die logische Schnittstelle mit einer Schnittstellenadresse konfiguriert sein. Alle anderen anfänglichen Routerkonfigurationen sollten abgeschlossen sein und die grundlegende IPv4-Konnektivität zwischen den Geräten bestätigt sein.Der von Ihnen gesendete Datenverkehr sollte mit den Firewallfilterregeln kompatibel sein, damit die von Ihnen konfigurierten Regeln mit dem von Ihnen gesendeten Testdatenverkehr übereinstimmen können.
Überblick
In diesem Beispiel wird gezeigt, wie mehrere Firewallfilter sowohl für den Eingang als auch für den Ausgang verkettet werden, damit sie auf eine bestimmte Schnittstelle angewendet und nacheinander ausgewertet werden können. Die Ausführungsreihenfolge erfolgt in der gleichen Reihenfolge wie die Kette, von links nach rechts.
Die Verwendung von Filterketten (im Gegensatz zum Eingabelistenfilter) hat den Vorteil, dass mehrere Filterebenen zulässig sind, z. B. die Verwendung eines anfänglichen Filters zur Durchführung einer generischen Klassifizierung (z. B. QoS) und dann ein oder mehrere nachfolgende Filter zur zusätzlichen Verfeinerung (z. B. Sicherheit).
Eine Eingabeliste stoppt die Verarbeitung von Paketen beim Akzeptieren oder Verwerfen; Nachfolgende Firewall-Filter werden nicht ausgewertet, während in einer Firewall-Filterkette die Verarbeitung des aktuellen Firewall-Filters durch eine Annahme- oder Verwerfungsaktion gestoppt wird, das Paket jedoch ggf. nachfolgenden Firewall-Filtern in der Firewall-Filterkette vorgelegt wird.
Ab Junos OS Evolved Version 21.4R1 können Sie Firewall-Filterketten auf PTX10001-36MR-, PTX10004-, PTX10008- und PTX10016-Routern verwenden.
Sie können die Filterkette wie folgt anwenden:
set interfaces interface-name unit unit family inet filter input-chain [filter1 filter2 filter3];
set interfaces interface-name unit unit family inet filter output-chain [filter1 filter2 filter3];
Auf PTX Evo-Plattformen gelten für die Funktion die folgenden Einschränkungen:
-
Sie können nur den ersten Filter in einer Kette von Filtern schnittstellenspezifisch konfigurieren. Bei Routern der MX-Serie können Sie alle Filter in einer Filterkette schnittstellenspezifisch konfigurieren.
-
Es ist nicht möglich, dieselben Filter als Teil eines regulären CLI-Filters zu konfigurieren und Filter auf demselben schnittstellenspezifischen Bindungspunkt zu verketten. Ersetzen Sie an solchen schnittstellenspezifischen Bindungspunkten den vorhandenen CLI-Filter durch Filterketten oder umgekehrt und bestätigen Sie diese separat, um einen Fehler zu vermeiden.
-
Sie können Kettenfilter nicht zusammen mit "family ANY" und interface-policers am selben Bindungspunkt konfigurieren.
-
Auf Loopback-Schnittstellen werden Ausgabekettenfilter nicht unterstützt.
-
Auf Loopback-Schnittstellen können Sie nicht sowohl den regulären Eingabe-CLI-Filter als auch Kettenfilter konfigurieren.
-
Für IRB-Schnittstellen können Sie nicht sowohl reguläre CLI-schnittstellenspezifische Filter als auch Filterketten konfigurieren.
-
Für die Ausgabe im Layer-2-SP-Stil können Sie nicht sowohl reguläre CLI-schnittstellenspezifische Filter als auch Kettenfilter konfigurieren.
-
Filter wie diese
fast-lookup-filter
werden als Teil von CLI-Kettenfiltern nicht unterstützt. -
CLI-Filterketten werden für Urpf-Fail-Filter nicht unterstützt.
-
Da Ausgangsfilter nur für die MPLS-Familie unterstützt
fast-lookup-filter
werden und Kettenfilter keine Fast-Lookup-Filter unterstützen, wird bei der Konfiguration der MPLS-Ausgangskettenfilter der Familie eine entsprechende Commit-Prüfung bereitgestellt.
Topologie
In diesem Beispiel konfigurieren Sie mehrere Firewallfilter und wenden sie dann nacheinander an, indem Sie sie mit einer bestimmten Schnittstelle verketten. In diesem Beispiel wird ge-0/1/1.0
die IP-Adresse 172.16.1.1/30 sowohl für die Eingabe- als auch für die Ausgabekette konfiguriert. Wenn ein Paket mit keinem der Filter in der Kettenliste übereinstimmt, wird das Paket verworfen.
Konfiguration
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus.
- CLI-Schnellkonfiguration
- Konfigurieren von IPv4-Firewallfiltern
- Anwenden der Kette von Eingabefiltern
- Bestätigen und bestätigen Sie Ihre Kandidatenkonfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle in eine Textdatei, entfernen Sie alle Zeilenumbrüche, und fügen Sie die Befehle dann auf Hierarchieebene [edit]
in die CLI ein. Die hier verwendeten Filternamen sind filter1, usw., während die Begriffsnamen (term1, using filter1) usw. sind t1_f1 .
set firewall family inet filter filter1 term t1_f1 from protocol tcp set firewall family inet filter filter1 term t1_f1 then count f1_t1_cnt set firewall family inet filter filter1 term t2_f1 from precedence 7 set firewall family inet filter filter1 term t2_f1 then count f1_t2_cnt set firewall family inet filter filter1 term t2_f1 then accept set firewall family inet filter filter2 term t1_f2 from dscp 0 set firewall family inet filter filter2 term t1_f2 then count f2_t1_cnt set firewall family inet filter filter2 term t2_f2 from source-port 1020 set firewall family inet filter filter2 term t2_f2 then count f2_t2_cnt set firewall family inet filter filter2 term t2_f2 then accept set firewall family inet filter filter3 term t1_f3 from destination-address 172.30.1.1/32 set firewall family inet filter filter3 term t1_f3 then count f3_t1_cnt set firewall family inet filter filter3 term t2_f3 from destination-port 5454 set firewall family inet filter filter3 term t2_f3 then count f3_t2_cnt set firewall family inet filter filter3 term t2_f3 then accept set interfaces ge-0/1/1 unit 0 family inet address 172.16.1.1/30 set interfaces ge-0/1/1 unit 0 family inet filter input-chain [ filter1 filter2 filter3 ] set interfaces ge-0/1/1 unit 0 family inet filter output-chain [ filter1 filter2 filter3 ]
Konfigurieren von IPv4-Firewallfiltern
Hier konfigurieren wir die Firewall-Filter. Jeder hat unterschiedliche Übereinstimmungsbedingungen und Zählaktionen. Die ersten beiden Filter haben mehrere Terme mit der nicht terminierenden Aktion von count, was bedeutet, dass übereinstimmende Pakete an den nächsten Filter in der Kette weitergegeben werden, während der dritte die Aktion accepthat. Pakete, die keine der angegebenen Bedingungen erfüllen, werden verworfen.
Schritt-für-Schritt-Anleitung
So konfigurieren Sie die Firewall-Filter:
Navigieren Sie in der CLI zu der Hierarchieebene, auf der Sie IPv4-Firewallfilter konfigurieren.
[edit] user@host# edit firewall family inet
Konfigurieren Sie den ersten Firewallfilter so, dass TCP-Pakete oder Pakete mit einer Priorität von 7 gezählt werden, bevor sie an den nächsten Filter in der Kette weitergeleitet werden.
[edit firewall family inet] user@host# set filter filter1 term t1_f1 from protocol tcp user@host# set filter filter1 term t1_f1 then count f1_t1_cnt user@host# set filter filter1 term t2_f1 from precedence 7 user@host# set filter filter1 term t2_f1 then count f1_t2_cnt user@host# set filter filter1 term t2_f1 then accept
Konfigurieren Sie den zweiten Firewallfilter so, dass DSCP-Pakete oder Pakete mit dem Quellport 1020 gezählt werden, bevor sie an den nächsten Filter in der Kette weitergeleitet werden.
[edit firewall family inet] user@host# set filter filter2 term t1_f2 from dscp 0 user@host# set filter filter2 term t1_f2 then count f2_t1_cnt user@host# set filter filter2 term t2_f2 from source-port 1020 user@host# set filter filter2 term t2_f2 then count f2_t2_cnt user@host# set filter filter2 term t2_f2 then accept
Konfigurieren Sie den letzten Firewallfilter so, dass Pakete mit der Zieladresse 172.30.1.1/32 oder dem Zielport 5454 gezählt und akzeptiert werden.
[edit firewall family inet] user@host# set filter filter3 term t1_f3 from destination-address 172.30.1.1/32 user@host# set filter filter3 term t1_f3 then count f3_t1_cnt user@host# set filter filter3 term t2_f3 from destination-port 5454 user@host# set filter filter3 term t2_f3 then count f3_t2_cnt user@host# set filter filter3 term t2_f3 then accept
Anwenden der Kette von Eingabefiltern
Hier hängen wir die Firewall-Filter an eine bestimmte Schnittstelle an. Die Ausführungsreihenfolge erfolgt in der gleichen Reihenfolge wie die Kette, von links nach rechts.
Schritt-für-Schritt-Anleitung
So weisen Sie der Schnittstelle eine IP-Adresse zu:
Navigieren Sie zu der Schnittstelle, die wir für die Filter verwenden.
ge-0/1/1.0
[edit] user@host# edit interfaces ge-0/1/1 unit 0 family inet
Weisen Sie der logischen Schnittstelle eine IPv4-Adresse zu.
[edit interfaces ge-0/1/1 unit 0 family inet] user@host# set address 172.16.1.1/30
Wenden Sie die Filter als Liste von Eingabefiltern an.
[edit interfaces ge-0/1/1 unit 0 family inet] user@host# set filter input-chain [ filter1 filter2 filter3 ] user@host# set filter out-chain [ filter1 filter2 filter3 ]
Bestätigen und bestätigen Sie Ihre Kandidatenkonfiguration
Schritt-für-Schritt-Anleitung
So bestätigen Sie Ihre Kandidatenkonfiguration und bestätigen sie:
Bestätigen Sie die Konfiguration der Firewall-Filter, indem Sie den
show firewall
Befehl configuration mode eingeben. Wenn die Befehlsausgabe nicht die beabsichtigte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.[edit firewall] user@host# show family inet { } filter filter1 { term t1_f1 { from { protocol tcp; } then count f1_t1_cnt; accept; } term t2_f1 { from { precedence 7; } then count f1_t2_cnt; accept; } } filter filter2 { term t1_f2 { from { dscp 0; } then count f2_t1_cnt; } term t2_f2 { from { source-port 1020; } then count f2_t2_cnt; } } filter filter3 { term t1_f3 { from { destination-address { 172.30.1.1/32; } } then { count f3_t1_cnt; } } term t2_f3 { from { destination-port 5454; } then { count f3_t2_cnt; accept; } } } } }
Bestätigen Sie die Konfiguration der Schnittstelle, indem Sie den
show interfaces
Befehl Konfigurationsmodus eingeben.[edit] user@host# show interfaces ge-0/1/1 { unit 0 { family inet { filter { input-chain [ filter1 filter2 filter3 ]; } address 172.16.1.1/30; } } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
[edit] user@host# commit
Verifizierung
Vergewissern Sie sich, dass die Konfiguration wie erwartet funktioniert, d. h., dass der übereinstimmende Datenverkehr von den Filtern filter1, filter2 und filter3 ausgewertet wird und dass die erwartete Aktion (zählen oder akzeptieren) ausgeführt wurde.
Datenverkehr durch die Firewall-Filter leiten
Zweck
Senden Sie Datenverkehr von einem Gerät an den von Ihnen konfigurierten Router, um zu sehen, ob übereinstimmende Pakete von allen relevanten Filtern in der Kette ausgewertet werden.
Action!
So überprüfen Sie, ob Eingabepakete von filter1, filter2 und filter3 ausgewertet werden:
Senden Sie von dem Remote-Host, der mit
ge-0/1/1.0
verbunden ist, ein Paket mit der Priorität 7. Das Paket sollte gezählt und dann von filter2 ausgewertet werden.Senden Sie von dem Remote-Host, der mit verbunden
ge-0/1/1.0
ist, ein Paket mit dem DSCP-Wert 0. Das Paket sollte gezählt und dann von filter3 ausgewertet werden.Senden Sie von dem Remote-Host, der mit verbunden
ge-0/1/1.0
ist, ein Paket mit der Zieladresse 172.30.1.1/32 und der Zielportnummer 5454. Das Paket sollte gezählt und dann angenommen werden.Um Zählerinformationen für die von Ihnen konfigurierten Filter anzuzeigen, geben Sie den
show firewall filter filter-name
Befehl Betriebsmodus ein. Die Befehlsausgabe zeigt die Anzahl der Bytes und Pakete an, die mit den Filterbegriffen übereinstimmen, die den Leistungsindikatoren zugeordnet sind.