Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

TCP-Zugriffsbeschränkung für BGP

Grundlegendes zu Sicherheitsoptionen für BGP mit TCP

Unter den Routing-Protokollen ist BGP einzigartig in der Verwendung von TCP als Transportprotokoll. BGP-Peers werden durch manuelle Konfiguration zwischen Routinggeräten eingerichtet, um eine TCP-Sitzung auf Port 179 zu erstellen. Ein BGP-fähiges Gerät sendet regelmäßig Keepalive-Nachrichten, um die Verbindung aufrechtzuerhalten.

Im Laufe der Zeit hat sich BGP zum dominanten Interdomain-Routing-Protokoll im Internet entwickelt. Es verfügt jedoch über begrenzte Garantien für Stabilität und Sicherheit. Die Konfiguration von Sicherheitsoptionen für BGP muss ein ausgewogenes Verhältnis zwischen geeigneten Sicherheitsmaßnahmen und akzeptablen Kosten haben. Keine Methode ist anderen Methoden überlegen. Jeder Netzwerkadministrator muss Sicherheitsmaßnahmen konfigurieren, die den Anforderungen des verwendeten Netzwerks entsprechen.

Detaillierte Informationen zu den Sicherheitsproblemen, die mit der Verwendung von TCP als Transportprotokoll durch BGP verbunden sind, finden Sie unter RFC 4272, BGP-Sicherheitsschwachstellenanalyse.

Beispiel: Konfigurieren eines Filters zum Blockieren des TCP-Zugriffs auf einen Port mit Ausnahme von angegebenen BGP-Peers

Dieses Beispiel zeigt, wie Sie einen standardmäßigen, zustandslosen Firewallfilter konfigurieren, der alle TCP-Verbindungsversuche für Port 179 von allen Requestern mit Ausnahme von angegebenen BGP-Peers blockiert.

Anforderungen

Vor der Konfiguration dieses Beispiels ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.

Überblick

In diesem Beispiel erstellen Sie einen zustandslosen Firewall-Filter, der alle TCP-Verbindungsversuche blockiert, um 179 von allen Anfragenden mit Ausnahme der angegebenen BGP-Peers zu portieren.

Der zustandslose Firewall-Filter filter_bgp179 passt alle Pakete von den direkt verbundenen Schnittstellen auf Gerät A und Gerät B bis zur Ziel-Portnummer 179 ab.

Topologie

Abbildung 1 zeigt die in diesem Beispiel verwendete Topologie. Gerät C versucht, eine TCP-Verbindung zu Gerät E herzustellen. Gerät E blockiert den Verbindungsversuch. Dieses Beispiel zeigt die Konfiguration auf Gerät E.

Abbildung 1: Typisches Netzwerk mit BGP-Peer-SitzungenTypisches Netzwerk mit BGP-Peer-Sitzungen

Konfiguration

CLI-Schnellkonfiguration

Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen alle Zeilenumbrüche, ändern alle erforderlichen Details, um mit Ihrer Netzwerkkonfiguration zu übereinstimmen, und kopieren Sie dann die Befehle und fügen sie auf Hierarchieebene in die [edit] CLI ein.

Gerät C

Gerät E

Konfigurieren von Gerät E

Schritt-für-Schritt-Verfahren

Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.

So konfigurieren Sie Gerät E mit einem zustandslosen Firewall-Filter, der alle TCP-Verbindungsversuche blockiert, um 179 von allen Requestoren mit Ausnahme der angegebenen BGP-Peers zu portieren:

  1. Konfigurieren Sie die Schnittstellen.

  2. Konfigurieren Sie BGP.

  3. Konfigurieren Sie die autonome Systemnummer.

  4. Definieren Sie den Filterbegriff, der TCP-Verbindungsversuche zum Port 179 von den angegebenen BGP-Peers akzeptiert.

  5. Definieren Sie den anderen Filterbegriff, um Pakete von anderen Quellen abzulehnen.

  6. Wenden Sie den Firewall-Filter auf die Loopback-Schnittstelle an.

Ergebnisse

Bestätigen Sie Ihre Konfiguration im Konfigurationsmodus, indem Sie die show firewallBefehle , show interfaces, show protocolsund show routing-options eingeben. Wenn die gewünschte Konfiguration in der Ausgabe nicht angezeigt wird, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.

Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit .

Überprüfung

Bestätigen Sie, dass die Konfiguration ordnungsgemäß funktioniert.

Überprüfen, ob der Filter konfiguriert ist

Zweck

Stellen Sie sicher, dass der Filter in der Ausgabe des show firewall filter Befehls aufgeführt ist.

Aktion

Überprüfung der TCP-Verbindungen

Zweck

Überprüfen Sie die TCP-Verbindungen.

Aktion

Führen Sie den show system connections extensive Befehl im Betriebsmodus auf Gerät C und Gerät E aus.

Die Ausgabe auf Gerät C zeigt den Versuch, eine TCP-Verbindung herzustellen. Die Ausgabe auf Gerät E zeigt, dass Verbindungen nur mit Gerät A und Gerät B hergestellt werden.

Überwachung des Datenverkehrs an den Schnittstellen

Zweck

Verwenden Sie den monitor traffic Befehl, um den Datenverkehr auf einer Schnittstelle, die eine TCP-Verbindung herstellt, mit dem Datenverkehr auf einer Schnittstelle zu vergleichen, die keine TCP-Verbindung herstellt.

Aktion

Führen Sie den monitor traffic Befehl im Betriebsmodus auf der Geräte-E-Schnittstelle zu Gerät B und auf der Geräte-E-Schnittstelle zu Gerät C aus. In der folgenden Beispielausgabe wird überprüft, ob im ersten Beispiel Bestätigungsmeldungen (ack) empfangen werden. Im zweiten Beispiel ack werden keine Nachrichten empfangen.

Beispiel: Konfigurieren eines Filters zur Begrenzung des TCP-Zugriffs auf einen Port basierend auf einer Prefixliste

Dieses Beispiel zeigt, wie Sie einen standardmäßigen, zustandslosen Firewall-Filter konfigurieren, der bestimmte TCP- und ICMP-Datenverkehr (Internet Control Message Protocol) einschränkt, der für die Routing-Engine bestimmt ist, indem eine Liste von Prefix-Quellen angegeben wird, die zulässige BGP-Peers enthalten.

Anforderungen

Vor der Konfiguration dieses Beispiels ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.

Überblick

In diesem Beispiel erstellen Sie einen zustandslosen Firewall-Filter, der alle TCP-Verbindungsversuche blockiert, um 179 von allen Anfragenden mit Ausnahme von BGP-Peers mit einem angegebenen Präfix zu portieren.

Topologie

Es wird eine Quellpfixliste erstellt, plist_bgp179die die Liste der Quellpräfixe angibt, die zugelassene BGP-Peers enthalten.

Der zustandslose Firewall-Filter filter_bgp179 passt alle Pakete von der Quellpräfixliste plist_bgp179 bis zur Zielportnummer 179 ab.

Konfiguration

CLI-Schnellkonfiguration

Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen alle Zeilenumbrüche, ändern alle erforderlichen Details, um mit Ihrer Netzwerkkonfiguration zu übereinstimmen, und kopieren Sie dann die Befehle und fügen sie auf Hierarchieebene in die [edit] CLI ein.

Konfigurieren des Filters

Schritt-für-Schritt-Verfahren

Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.

So konfigurieren Sie den Filter:

  1. Erweitern Sie die Präfixliste bgp179 , um alle Präfixe einzubeziehen, auf die von der von protocols bgp group <*> neighbor <*>.

  2. Definieren Sie den Filterbegriff, der versuche, 179 von allen Requestern mit Ausnahme der angegebenen BGP-Peers portiert zu werden, abzulehnen.

  3. Definieren Sie den anderen Filterbegriff, um alle Pakete zu akzeptieren.

  4. Wenden Sie den Firewall-Filter auf die Loopback-Schnittstelle an.

Ergebnisse

Bestätigen Sie ihre Konfiguration im Konfigurationsmodus, indem Sie die show firewallBefehle und show policy-optionsshow interfacesdie Befehle eingeben. Wenn die gewünschte Konfiguration in der Ausgabe nicht angezeigt wird, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.

Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit .

Überprüfung

Bestätigen Sie, dass die Konfiguration ordnungsgemäß funktioniert.

Anzeigen des auf die Loopback-Schnittstelle angewendeten Firewall-Filters

Zweck

Stellen Sie sicher, dass der Firewall-Filter filter_bgp179 auf den IPv4-Eingabedatenverkehr an der logischen Schnittstelle lo0.0angewendet wird.

Aktion

Verwenden Sie den Befehl für die show interfaces statistics operational mode logische Schnittstelle lo0.0, und schließen Sie die Option ein detail . Protocol inet Im Abschnitt der Befehlsausgabe zeigt das Feld den Input Filters Namen des zustandslosen Firewall-Filters an, der in Eingaberichtung auf die logische Schnittstelle angewendet wird.

Beispiel: Begrenzung der TCP-Segmentgröße für BGP

In diesem Beispiel wird gezeigt, wie Sie Schwachstellen im Internet Control Message Protocol (ICMP) vermeiden können, indem Sie die TCP-Segmentgröße beschränken, wenn Sie die maximale ERKENNUNG von Transmission Unit (MTU) verwenden. Die MTU-Erkennung auf TCP-Pfaden ist eine Methode, um BGP-Paketfragmentierung zu vermeiden.

Anforderungen

Vor der Konfiguration dieses Beispiels ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.

Überblick

TCP verhandelt beim Herstellen einer Sitzungsverbindung zwischen zwei Peers einen Wert für die maximale Segmentgröße (MSS). Der ausgehandelte MSS-Wert basiert hauptsächlich auf der maximalen Transmission Unit (MTU) der Schnittstellen, mit denen die kommunizierenden Peers direkt verbunden sind. Aufgrund von Abweichungen der Link-MTU auf dem Pfad, den die TCP-Pakete genommen haben, können jedoch einige Pakete im Netzwerk, die sich gut innerhalb des MSS-Wertes befinden, fragmentiert werden, wenn die Paketgröße die MTU der Verbindung übersteigt.

Um den TCP-MSS-Wert zu konfigurieren, fügen Sie die tcp-mss Anweisung mit einer Segmentgröße von 1 bis 4096 ein.

Wenn der Router ein TCP-Paket mit dem SYN-Bit und dem Satz der MSS-Option empfängt und die im Paket angegebene MSS-Option größer als der durch die tcp-mss Anweisung angegebene MSS-Wert ist, ersetzt der Router den MSS-Wert im Paket durch den durch die tcp-mss Anweisung angegebenen niedrigeren Wert.

Der konfigurierte MSS-Wert wird als maximale Segmentgröße für den Absender verwendet. Die Annahme ist, dass der TCP-MSS-Wert, der vom Absender zur Kommunikation mit dem BGP-Nachbarn verwendet wird, derselbe ist wie der TCP-MSS-Wert, den der Absender vom BGP-Nachbarn akzeptieren kann. Wenn der MSS-Wert des BGP-Nachbarn kleiner als der konfigurierte MSS-Wert ist, wird der MSS-Wert aus dem BGP-Nachbarn als maximale Segmentgröße für den Absender verwendet.

Diese Funktion wird von TCP über IPv4 und TCP über IPv6 unterstützt.

Topologiediagramm

Abbildung 2 zeigt die in diesem Beispiel verwendete Topologie.

Abbildung 2: Maximale TCP-Segmentgröße für BGPMaximale TCP-Segmentgröße für BGP

Konfiguration

CLI-Schnellkonfiguration

Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen alle Zeilenumbrüche, ändern alle erforderlichen Details, um mit Ihrer Netzwerkkonfiguration zu übereinstimmen, und kopieren Sie dann die Befehle und fügen sie auf Hierarchieebene in die [edit] CLI ein.

R0

Verfahren

Schritt-für-Schritt-Verfahren

Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.

So konfigurieren Sie Router R0:

  1. Konfigurieren Sie die Schnittstellen.

  2. Konfigurieren Sie in diesem Beispiel ein Interior Gateway Protocol (IGP), OSPF.

  3. Konfigurieren Sie eine oder mehrere BGP-Gruppen.

  4. Konfigurieren Sie die MTU-Erkennung, um die Paketfragmentierung zu verhindern.

  5. Konfigurieren Sie die BGP-Nachbarn, wobei das TCP-MSS global für die Gruppe oder speziell für die verschiedenen Nachbarn festgelegt ist.

    HINWEIS:

    Die TCP-MSS-Neighbor-Einstellung überschreibt die Gruppeneinstellung.

  6. Konfigurieren Sie das lokale autonome System.

Ergebnisse

Bestätigen Sie ihre Konfiguration im Konfigurationsmodus, indem Sie die show interfacesBefehle und show routing-optionsshow protocolsdie Befehle eingeben. Wenn die gewünschte Konfiguration in der Ausgabe nicht angezeigt wird, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.

Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit .

Überprüfung

Führen Sie die folgenden Befehle aus, um zu bestätigen, dass die Konfiguration ordnungsgemäß funktioniert:

  • show system connections extensive | find <neighbor-address>, um den ausgehandelten TCP-MSS-Wert zu überprüfen.

  • monitor traffic interface, um BGP-Datenverkehr zu überwachen und sicherzustellen, dass der konfigurierte TCP-MSS-Wert als MSS-Option im TCP SYN-Paket verwendet wird.

Fehlerbehebung

MSS-Berechnung mit MTU Discovery

Problem

Betrachten wir ein Beispiel, in dem zwei Routing-Geräte (R1 und R2) über eine interne BGP (IBGP)-Verbindung verfügen. Auf beiden Routern haben die angeschlossenen Schnittstellen 4034 als IPv4-MTU.

In der folgenden Paketerfassung auf Gerät R1 ist das ausgehandelte MSS 3994. In den show system connections extensive Informationen für MSS ist es auf 2048 festgelegt.

Lösung

Dies ist das erwartete Verhalten mit Junos OS. Der MSS-Wert ist gleich dem MTU-Wert abzüglich der IP- oder IPv6- und TCP-Header. Das bedeutet, dass der MSS-Wert in der Regel 40 Bytes weniger als die MTU (für IPv4) und 60 Bytes weniger als die MTU (für IPv6) ist. Dieser Wert wird zwischen den Peers ausgehandelt. In diesem Beispiel ist es 4034 - 40 = 3994. Junos OS rundet diesen Wert dann auf ein Vielfaches von 2 KB auf. Der Wert ist 3994 / 2048 * 2048=2048. Es ist also nicht notwendig, den gleichen MSS-Wert mit in der show system connections Ausgabe zu sehen.

3994 / 2048 = 1.95

1,95 wird auf 1 gerundet.

1 * 2048 = 2048