Auf dieser Seite
Beispiel: Konfigurieren eines zustandslosen Firewallfilters zum Schutz vor TCP- und ICMP-Floods
In diesem Beispiel wird gezeigt, wie ein zustandsloser Firewallfilter erstellt wird, der vor TCP- und ICMP-Denial-of-Service-Angriffen schützt.
Anforderungen
Über die Geräteinitialisierung hinaus ist keine spezielle Konfiguration erforderlich, bevor zustandslose Firewallfilter konfiguriert werden.
Überblick
In diesem Beispiel erstellen wir einen zustandslosen Firewallfilter, der aufgerufen wird protect-RE
, TCP- und ICMP-Pakete zu überwachen. Es verwendet die hier beschriebenen Policer:
tcp-connection-policer
—Dieser Policer begrenzt den TCP-Datenverkehr auf 1.000.000 Bits pro Sekunde (bps) mit einer maximalen Burst-Größe von 15.000 Byte. Datenverkehr, der einen der beiden Grenzwerte überschreitet, wird verworfen.icmp-policer
—Dieser Policer begrenzt den ICMP-Datenverkehr auf 1.000.000 bps mit einer maximalen Burst-Größe von 15.000 Byte. Datenverkehr, der einen der beiden Grenzwerte überschreitet, wird verworfen.
Beim Festlegen von Grenzwerten kann die Bandbreitenbegrenzung zwischen 32.000 bps und 32.000.000.000 bps und die Burst-Größenbeschränkung zwischen 1.500 Byte und 100.000.000 Byte liegen. Verwenden Sie die folgenden Abkürzungen, wenn Sie Grenzwerte angeben: K (1.000), M (1.000.000) und G (1.000.000.000).
Jeder Policer wird in die Aktion eines Filterbegriffs einbezogen. Dieses Beispiel enthält die folgenden Begriffe:
tcp-connection-term
– Überwacht bestimmte TCP-Pakete mit der Quelladresse 192.168.0.0/24 oder 10.0.0.0/24. Diese Adressen werden in dertrusted-addresses
Präfixliste definiert.Gefilterte Pakete enthalten
tcp-established
Pakete Dietcp-established
Übereinstimmungsbedingung ist ein Alias für die Bitfeldübereinstimmungsbedingungtcp-flags “(ack | rst)”
, die eine eingerichtete TCP-Sitzung, aber nicht das erste Paket einer TCP-Verbindung angibt.icmp-term
– Überwacht ICMP-Pakete. Alle ICMP-Pakete werden imicmp-counter
Zähler gezählt.
Sie können Begriffe innerhalb des Firewall-Filters verschieben, indem Sie den insert
Befehl verwenden. Weitere Informationen finden Sie unter Einfügen im Junos OS CLI-Benutzerhandbuch.
Sie können eine zustandslose Firewall auf die Eingangs- und/oder Ausgabeseite einer Schnittstelle anwenden. Um Pakete zu filtern, die das Gerät passieren, wenden Sie den Firewall-Filter auf jede Schnittstelle an, die nicht vom Routingmodul stammt. Um Pakete zu filtern, die von der Routing-Engine stammen oder für diese bestimmt sind, wenden Sie den Firewall-Filter auf die Loopback-Schnittstelle (lo0) an.
Abbildung 1 zeigt das Beispielnetzwerk an.

Da dieser Firewallfilter den Datenverkehr der Routing-Engine auf TCP-Pakete beschränkt, können Routing-Protokolle, die andere Transportprotokolle für Layer 4 verwenden, keine Sitzungen erfolgreich einrichten, wenn dieser Filter aktiv ist. Zur Veranschaulichung wird in diesem Beispiel OSPF zwischen Gerät R1 und Gerät R2 eingerichtet.
CLI-Schnellkonfiguration Zeigt die Konfiguration für alle Geräte in Abbildung 1an.
In diesem Abschnitt #configuration1102__policy-firewall-tcp-icmp-st werden die Schritte auf Gerät R2 beschrieben.
Konfiguration
Verfahren
CLI-Schnellkonfiguration
Um den zustandslosen Firewallfilter schnell zu konfigurieren, kopieren Sie die folgenden Befehle in eine Textdatei, entfernen Sie alle Zeilenumbrüche, und fügen Sie die Befehle dann in die CLI ein.
Gerät R1
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 primary set interfaces lo0 unit 0 family inet address 172.16.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
Gerät R2
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet filter input protect-RE set interfaces lo0 unit 0 family inet address 192.168.0.2/32 primary set interfaces lo0 unit 0 family inet address 172.16.0.2/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set policy-options prefix-list trusted-addresses 10.0.0.0/24 set policy-options prefix-list trusted-addresses 192.168.0.0/24 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200 set firewall family inet filter protect-RE term tcp-connection-term from source-prefix-list trusted-addresses set firewall family inet filter protect-RE term tcp-connection-term from protocol tcp set firewall family inet filter protect-RE term tcp-connection-term from tcp-established set firewall family inet filter protect-RE term tcp-connection-term then policer tcp-connection-policer set firewall family inet filter protect-RE term tcp-connection-term then accept set firewall family inet filter protect-RE term icmp-term from source-prefix-list trusted-addresses set firewall family inet filter protect-RE term icmp-term from protocol icmp set firewall family inet filter protect-RE term icmp-term then policer icmp-policer set firewall family inet filter protect-RE term icmp-term then count icmp-counter set firewall family inet filter protect-RE term icmp-term then accept set firewall policer tcp-connection-policer filter-specific set firewall policer tcp-connection-policer if-exceeding bandwidth-limit 1m set firewall policer tcp-connection-policer if-exceeding burst-size-limit 15k set firewall policer tcp-connection-policer then discard set firewall policer icmp-policer filter-specific set firewall policer icmp-policer if-exceeding bandwidth-limit 1m set firewall policer icmp-policer if-exceeding burst-size-limit 15k set firewall policer icmp-policer then discard
Schritt-für-Schritt-Anleitung
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.
So konfigurieren Sie den zustandslosen Firewallfilter zum Verwerfen:
Konfigurieren Sie die Geräteschnittstellen.
[edit interfaces fe-1/2/0 unit 0 family inet ] user@R2# set address 10.0.0.2/30 [edit interfaces lo0 unit 0 family inet] user@R2# set address 192.168.0.2/32 primary user@R2# set address 172.16.0.2/32
Konfigurieren Sie die BGP-Peering-Sitzung.
[edit protocols bgp group ext] user@R2# set type external user@R2# set export send-direct user@R2# set neighbor 10.0.0.1 peer-as 100
Konfigurieren Sie die AS-Nummer (Autonomous System) und die Router-ID.
[edit routing-options] user@R2# set autonomous-system 200 user@R2# set router-id 192.168.0.2
Konfigurieren Sie OSPF.
[edit protocols ospf area 0.0.0.0] user@R2# set interface lo0.0 passive user@R2# set interface fe-1/2/0.0
Definieren Sie die Liste der vertrauenswürdigen Adressen.
[edit policy-options prefix-list trusted-addresses] user@R2# set 10.0.0.0/24 user@R2# set 192.168.0.0/24
Konfigurieren Sie eine Richtlinie für die Ankündigung von Direktverbindungen.
[edit policy-options policy-statement send-direct term 1] user@R2# set from protocol direct user@R2# set then accept
Konfigurieren Sie den TCP-Policer.
[edit firewall policer tcp-connection-policer] user@R2# set filter-specific user@R2# set if-exceeding bandwidth-limit 1m user@R2# set if-exceeding burst-size-limit 15k user@R2# set then discard
Erstellen Sie den ICMP-Policer.
[edit firewall policer icmp-policer] user@R2# set filter-specific user@R2# set if-exceeding bandwidth-limit 1m user@R2# set if-exceeding burst-size-limit 15k user@R2# set then discard
Konfigurieren Sie die TCP-Filterregeln.
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# set from source-prefix-list trusted-addresses user@R2# set from protocol tcp user@R2# set from tcp-established user@R2# set then policer tcp-connection-policer user@R2# set then accept
Konfigurieren Sie die ICMP-Filterregeln.
[edit firewall family inet filter protect-RE term icmp-term] user@R2# set from source-prefix-list trusted-addresses user@R2# set from protocol icmp user@R2# set then policer icmp-policer user@R2# set then count icmp-counter user@R2# set then accept
Wenden Sie den Filter auf die Loopback-Schnittstelle an.
[edit interfaces lo0 unit 0] user@R2# set family inet filter input protect-RE
Ergebnisse
Bestätigen Sie Ihre Konfiguration, indem Sie die show interfaces
Befehle , show protocols
, show policy-options
, show routing-options
und show firewall
im Konfigurationsmodus eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
user@R2# show interfaces fe-1/2/0 { unit 0 { family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { filter { input protect-RE; } address 192.168.0.2/32 { primary; } address 172.16.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; export send-direct; neighbor 10.0.0.1 { peer-as 100; } } } ospf { area 0.0.0.0 { interface lo0.0 { passive; } interface fe-1/2/0.0; } }
user@R2# show policy-options prefix-list trusted-addresses { 10.0.0.0/24; 192.168.0.0/24; } policy-statement send-direct { term 1 { from protocol direct; then accept; } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
user@R2# show firewall family inet { filter protect-RE { term tcp-connection-term { from { source-prefix-list { trusted-addresses; } protocol tcp; tcp-established; } then { policer tcp-connection-policer; accept; } } term icmp-term { from { source-prefix-list { trusted-addresses; } protocol icmp; } then { policer icmp-policer; count icmp-counter; accept; } } } } policer tcp-connection-policer { filter-specific; if-exceeding { bandwidth-limit 1m; burst-size-limit 15k; } then discard; } policer icmp-policer { filter-specific; if-exceeding { bandwidth-limit 1m; burst-size-limit 15k; } then discard; } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf commit
.
Verifizierung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
Um den TCP-Policer zu überprüfen, können Sie ein Paketgenerierungstool verwenden. Diese Aufgabe wird hier nicht angezeigt.
- Anzeigen von zustandslosen Firewall-Filtern, die in Kraft sind
- Verwenden von telnet zum Überprüfen der tcp-established-Bedingung im TCP-Firewallfilter
- Verwenden von Telnet zum Überprüfen der Bedingung "Vertrauenswürdige Präfixe" im TCP-Firewallfilter
- Verwenden von OSPF zum Überprüfen des TCP-Firewallfilters
- Überprüfen des ICMP-Firewallfilters
Anzeigen von zustandslosen Firewall-Filtern, die in Kraft sind
Zweck
Überprüfen Sie die Konfiguration des Firewallfilters.
Action!
Geben Sie im Betriebsmodus den show firewall
Befehl ein.
user@R2> show firewall Filter: protect-RE Counters: Name Bytes Packets icmp-counter 0 0 Policers: Name Bytes Packets icmp-policer 0 tcp-connection-policer 0
Bedeutung
Die Ausgabe zeigt den Filter, den Zähler und die Policer an, die auf Gerät R2 wirksam sind.
Verwenden von telnet zum Überprüfen der tcp-established-Bedingung im TCP-Firewallfilter
Zweck
Stellen Sie sicher, dass der Telnet-Datenverkehr wie erwartet funktioniert.
Action!
Stellen Sie sicher, dass das Gerät nur TCP-Sitzungen mit Hosts einrichten kann, die die Bedingung from tcp-established
erfüllen.
Stellen Sie sicher, dass auf Gerät R2 die BGP-Sitzung mit Gerät R1 eingerichtet ist.
user@R2> show bgp summary | match down Groups: 1 Peers: 1 Down peers: 0
Von Gerät R2, Telnet zu Gerät R1.
user@R2> telnet 192.168.0.1 Trying 192.168.0.1... Connected to R1.example.net. Escape character is '^]'. R1 (ttyp4) login:
Von Gerät R1, Telnet zu Gerät R2.
user@R1> telnet 192.168.0.2 Trying 192.168.0.2... telnet: connect to address 192.168.0.2: Operation timed out telnet: Unable to connect to remote host
Deaktivieren Sie auf Gerät R2 die Übereinstimmungsbedingung
from tcp-established
.[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# deactivate from tcp-established user@R2# commit
Versuchen Sie erneut, von Gerät R1 aus eine Telnetverbindung zu Gerät R2 herzustellen.
user@R1> telnet 192.168.0.1 Trying 192.168.0.2... Connected to R2.example.net. Escape character is '^]'. R2 (ttyp4) login:
Bedeutung
Überprüfen Sie die folgenden Informationen:
Wie erwartet wird die BGP-Sitzung eingerichtet. Es wird nicht erwartet, dass die Übereinstimmungsbedingung den Aufbau einer
from tcp-established
BGP-Sitzung blockiert.Von Gerät R2 aus können Sie eine Telnetverbindung zu Gerät R1 herstellen. Für Gerät R1 ist kein Firewallfilter konfiguriert, daher ist dies das erwartete Verhalten.
Von Gerät R1 aus können Sie keine Telnet zu Gerät R2 herstellen. Telnet verwendet TCP als Transportprotokoll, daher könnte dieses Ergebnis überraschend sein. Die Ursache für die fehlende Telnet-Konnektivität ist die
from tcp-established
Übereinstimmungsbedingung. Diese Übereinstimmungsbedingung schränkt den Typ des TCP-Datenverkehrs ein, der von Gerät R2 akzeptiert wird. Nachdem diese Übereinstimmungsbedingung deaktiviert wurde, ist die Telnet-Sitzung erfolgreich.
Verwenden von Telnet zum Überprüfen der Bedingung "Vertrauenswürdige Präfixe" im TCP-Firewallfilter
Zweck
Stellen Sie sicher, dass der Telnet-Datenverkehr wie erwartet funktioniert.
Action!
Stellen Sie sicher, dass das Gerät nur Telnet-Sitzungen mit einem Host mit einer IP-Adresse einrichten kann, die mit einer der vertrauenswürdigen Quelladressen übereinstimmt. Melden Sie sich beispielsweise mit dem telnet
Befehl eines anderen Hosts mit einem der vertrauenswürdigen Adresspräfixe beim Gerät an. Stellen Sie außerdem sicher, dass Telnet-Sitzungen mit nicht vertrauenswürdigen Quelladressen blockiert sind.
Von Gerät R1 Telnet zu Gerät R2 von einer nicht vertrauenswürdigen Quelladresse.
user@R1> telnet 172.16.0.2 source 172.16.0.1 Trying 172.16.0.2... ^C
Fügen Sie ab Gerät R2 172.16/16 zur Liste der vertrauenswürdigen Präfixe hinzu.
[edit policy-options prefix-list trusted-addresses] user@R2# set 172.16.0.0/16 user@R2# commit
Versuchen Sie erneut, von Gerät R1 aus eine Telnetverbindung zu Gerät R2 herzustellen.
user@R1> telnet 172.16.0.2 source 172.16.0.1 Trying 172.16.0.2... Connected to R2.example.net. Escape character is '^]'. R2 (ttyp4) login:
Bedeutung
Überprüfen Sie die folgenden Informationen:
Von Gerät R1 aus können Sie kein Telnet zu Gerät R2 mit einer nicht vertrauenswürdigen Quelladresse herstellen. Nachdem das Präfix 172.16/16 zur Liste der vertrauenswürdigen Präfixe hinzugefügt wurde, wird die Telnet-Anforderung von der Quelladresse 172.16.0.1 akzeptiert.
Der Aufbau einer OSPF-Sitzung ist blockiert. OSPF verwendet TCP nicht als Transportprotokoll. Nachdem die Übereinstimmungsbedingung deaktiviert wurde, wird der Aufbau einer
from protocol tcp
OSPF-Sitzung nicht blockiert.
Verwenden von OSPF zum Überprüfen des TCP-Firewallfilters
Zweck
Stellen Sie sicher, dass der OSPF-Datenverkehr wie erwartet funktioniert.
Action!
Stellen Sie sicher, dass das Gerät keine OSPF-Konnektivität herstellen kann.
Überprüfen Sie auf Gerät R1 die OSPF-Sitzungen.
user@R1> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.2 fe-1/2/0.0 Init 192.168.0.2 128 34
Überprüfen Sie auf Gerät R2 die OSPF-Sitzungen.
user@R2> show ospf neighbor
Entfernen Sie von Gerät R2 die
from protocol tcp
Übereinstimmungsbedingung.[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# deactivate from protocol user@R2# commit
Überprüfen Sie auf Gerät R1 die OSPF-Sitzungen erneut.
user@R1> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.2 fe-1/2/0.0 Full 192.168.0.2 128 36
Überprüfen Sie auf Gerät R2 die OSPF-Sitzungen erneut.
user@R2> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.1 fe-1/2/0.0 Full 192.168.0.1 128 39
Bedeutung
Überprüfen Sie die folgenden Informationen:
Der Aufbau einer OSPF-Sitzung ist blockiert. OSPF verwendet TCP nicht als Transportprotokoll. Nachdem die Übereinstimmungsbedingung deaktiviert wurde, ist der Aufbau der
from protocol tcp
OSPF-Sitzung erfolgreich.
Überprüfen des ICMP-Firewallfilters
Zweck
Stellen Sie sicher, dass ICMP-Pakete überwacht und gezählt werden. Stellen Sie außerdem sicher, dass Ping-Anforderungen verworfen werden, wenn die Anforderungen von einer nicht vertrauenswürdigen Quelladresse stammen.
Action!
Machen Sie die Konfigurationsänderungen rückgängig, die Sie in den vorherigen Überprüfungsschritten vorgenommen haben.
Aktivieren Sie die TCP-Firewall-Einstellungen erneut und löschen Sie die vertrauenswürdige Quelladresse 172.16/16.
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# activate from protocol user@R2# activate from tcp-established [edit policy-options prefix-list trusted-addresses] user@R2# delete 172.16.0.0/16 user@R2# commit
Pingen Sie von Gerät R1 aus einen Ping an die Loopback-Schnittstelle auf Gerät R2.
user@R1> ping 192.168.0.2 rapid count 600 size 2000 PING 192.168.0.2 (192.168.0.2): 2000 data bytes !!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!! --- 192.168.0.2 ping statistics --- 600 packets transmitted, 536 packets received, 10% packet loss pinground-trip min/avg/max/stddev = 2.976/3.405/42.380/2.293 ms
Überprüfen Sie auf Gerät R2 die Firewall-Statistiken.
user@R2> show firewall Filter: protect-RE Counters: Name Bytes Packets icmp-counter 1180804 1135 Policers: Name Bytes Packets icmp-policer 66 tcp-connection-policer 0
Senden Sie von einer nicht vertrauenswürdigen Quelladresse auf Gerät R1 eine Ping-Anforderung an die Loopback-Schnittstelle von Gerät R2.
user@R1> ping 172.16.0.2 source 172.16.0.1 PING 172.16.0.2 (172.16.0.2): 56 data bytes ^C --- 172.16.0.2 ping statistics --- 14 packets transmitted, 0 packets received, 100% packet loss
Bedeutung
Überprüfen Sie die folgenden Informationen:
Die Ping-Ausgabe zeigt, dass ein Paketverlust von 10 % auftritt.
Der ICMP-Paketzähler wird inkrementiert, und der icmp-policer wird inkrementiert.
Gerät R2 sendet keine ICMP-Antworten auf den
ping 172.16.0.2 source 172.16.0.1
Befehl.