Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Restriction d’accès TCP pour BGP

Comprendre les options de sécurité pour BGP avec TCP

Parmi les protocoles de routage, BGP est le seul à utiliser TCP comme protocole de transport. Les homologues BGP sont établis par une configuration manuelle entre les périphériques de routage pour créer une session TCP sur le port 179. Un périphérique compatible BGP envoie régulièrement des messages persistants pour maintenir la connexion.

Au fil du temps, BGP est devenu le protocole de routage interdomaine dominant sur Internet. Cependant, ses garanties de stabilité et de sécurité sont limitées. La configuration des options de sécurité pour BGP doit trouver un équilibre entre des mesures de sécurité appropriées et des coûts acceptables. Aucune méthode n’est apparue comme supérieure à d’autres méthodes. Chaque administrateur réseau doit configurer des mesures de sécurité adaptées aux besoins du réseau utilisé.

Pour plus d’informations sur les problèmes de sécurité associés à l’utilisation de TCP comme protocole de transport par BGP, consultez la RFC 4272, BGP Security Vulnerabilities Analysis.

Exemple : Configuration d’un filtre pour bloquer l’accès TCP à un port sauf à partir d’homologues BGP spécifiés

Cet exemple montre comment configurer un filtre de pare-feu sans état standard qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés.

Conditions préalables

Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.

Présentation

Dans cet exemple, vous allez créer un filtre de pare-feu sans état qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés.

Le filtre filter_bgp179 de pare-feu sans état fait correspondre tous les paquets des interfaces directement connectées sur les appareils A et B vers le numéro de port de destination 179.

Topologie

Figure 1 Affiche la topologie utilisée dans cet exemple. L’équipement C tente d’établir une connexion TCP avec l’équipement E. L’appareil E bloque la tentative de connexion. Cet exemple montre la configuration sur l’appareil E.

Figure 1 : Réseau type avec sessions d’homologue BGPRéseau type avec sessions d’homologue BGP

Configuration

Configuration rapide de l’interface de ligne de commande

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit] hiérarchie.

Appareil C

Dispositif E

Configuration de l’appareil E

Procédure étape par étape

L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.

Pour configurer l’appareil E avec un filtre de pare-feu sans état qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés :

  1. Configurez les interfaces.

  2. Configurez BGP.

  3. Configurez le numéro du système autonome.

  4. Définissez le terme de filtre qui accepte les tentatives de connexion TCP vers le port 179 à partir des homologues BGP spécifiés.

  5. Définissez l’autre terme de filtre pour rejeter les paquets provenant d’autres sources.

  6. Appliquez le filtre de pare-feu à l’interface de bouclage.

Résultats

À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show firewall, show interfaces, show protocolset show routing-options. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.

Si vous avez terminé de configurer l’appareil, passez commit en mode de configuration.

Vérification

Vérifiez que la configuration fonctionne correctement.

Vérification de la configuration du filtre

But

Assurez-vous que le filtre est répertorié dans la sortie de la show firewall filter commande.

Action

Vérification des connexions TCP

But

Vérifiez les connexions TCP.

Action

À partir du mode opérationnel, exécutez la commande sur l’appareil C et l’appareil show system connections extensive E.

La sortie sur le périphérique C indique la tentative d’établissement d’une connexion TCP. La sortie sur l’appareil E indique que les connexions sont établies avec l’appareil A et l’appareil B uniquement.

Surveillance du trafic sur les interfaces

But

Utilisez la monitor traffic commande pour comparer le trafic d’une interface qui établit une connexion TCP avec le trafic d’une interface qui n’établit pas de connexion TCP.

Action

À partir du mode opérationnel, exécutez la monitor traffic commande sur l’interface de l’appareil E vers l’appareil B et sur l’interface de l’appareil E vers l’appareil C. L’exemple de sortie suivant vérifie que dans le premier exemple, les messages d’accusé de réception (ack) sont reçus. Dans le deuxième exemple, ack les messages ne sont pas reçus.

Exemple : Configuration d’un filtre pour limiter l’accès TCP à un port en fonction d’une liste de préfixes

Cet exemple montre comment configurer un filtre de pare-feu sans état standard qui limite certains trafics TCP et ICMP (Internet Control Message Protocol) destinés au moteur de routage en spécifiant une liste de sources de préfixes contenant des homologues BGP autorisés.

Conditions préalables

Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.

Présentation

Dans cet exemple, vous créez un filtre de pare-feu sans état qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP qui ont un préfixe spécifié.

Topologie

Une liste de préfixes source, plist_bgp179, est créée et spécifie la liste des préfixes source contenant les homologues BGP autorisés.

Le filtre filter_bgp179 de pare-feu sans état fait correspondre tous les paquets de la liste plist_bgp179 de préfixes source au numéro de port de destination 179.

Configuration

Configuration rapide de l’interface de ligne de commande

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit] hiérarchie.

Configurer le filtre

Procédure étape par étape

L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.

Pour configurer le filtre :

  1. Développez la liste bgp179 des préfixes pour inclure tous les préfixes pointés par le groupe homologues pair BGP défini par protocols bgp group <*> neighbor <*>.

  2. Définissez le terme de filtre qui rejette les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés.

  3. Définissez l’autre terme de filtre pour qu’il accepte tous les paquets.

  4. Appliquez le filtre de pare-feu à l’interface de bouclage.

Résultats

À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show firewall, show interfaces et show policy-options . Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.

Si vous avez terminé de configurer l’appareil, passez commit en mode de configuration.

Vérification

Vérifiez que la configuration fonctionne correctement.

Affichage du filtre de pare-feu appliqué à l’interface de bouclage

But

Vérifiez que le filtre filter_bgp179 de pare-feu est appliqué au trafic d’entrée IPv4 au niveau de l’interface lo0.0logique .

Action

Utilisez la commande show interfaces statistics operational mode pour l’interface lo0.0logique et incluez l’option detail. Dans la Protocol inet section de la section de sortie de la commande, le champ affiche le Input Filters nom du filtre de pare-feu sans état appliqué à l’interface logique dans le sens d’entrée.

Exemple : Limitation de la taille des segments TCP pour BGP

Cet exemple montre comment éviter les problèmes de vulnérabilité ICMP (Internet Control Message Protocol) en limitant la taille du segment TCP lorsque vous utilisez la découverte MTU (Maximum Transmission Unit). L’utilisation de la découverte MTU sur les chemins TCP est une méthode permettant d’éviter la fragmentation des paquets BGP.

Conditions préalables

Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.

Présentation

TCP négocie une valeur de taille de segment maximale (MSS) lors de l’établissement de la connexion de session entre deux homologues. La valeur MSS négociée est principalement basée sur l’unité de transmission maximale (MTU) des interfaces auxquelles les homologues communicants sont directement connectés. Toutefois, en raison des variations de la MTU de liaison sur le chemin emprunté par les paquets TCP, certains paquets du réseau qui sont bien en deçà de la valeur MSS peuvent être fragmentés lorsque la taille du paquet dépasse la MTU de la liaison.

Pour configurer la valeur TCP MSS, incluez l’instruction dont la tcp-mss taille de segment est comprise entre 1 et 4096.

Si le routeur reçoit un paquet TCP avec le bit SYN et l’ensemble d’options MSS, et que l’option MSS spécifiée dans le paquet est supérieure à la valeur MSS spécifiée par l’instruction tcp-mss, le routeur remplace la valeur MSS dans le paquet par la valeur inférieure spécifiée par l’instruction tcp-mss .

La valeur MSS configurée est utilisée comme taille de segment maximale pour l’expéditeur. L’hypothèse est que la valeur TCP MSS utilisée par l’expéditeur pour communiquer avec le voisin BGP est la même que la valeur TCP MSS que l’expéditeur peut accepter du voisin BGP. Si la valeur MSS du voisin BGP est inférieure à la valeur MSS configurée, la valeur MSS du voisin BGP est utilisée comme taille de segment maximale pour l’expéditeur.

Cette fonctionnalité est prise en charge avec TCP sur IPv4 et TCP sur IPv6.

Diagramme de topologie

Figure 2 Affiche la topologie utilisée dans cet exemple.

Figure 2 : Taille de segment maximale TCP pour BGPTaille de segment maximale TCP pour BGP

Configuration

Configuration rapide de l’interface de ligne de commande

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit] hiérarchie.

R0

Procédure

Procédure étape par étape

L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.

Pour configurer le routeur R0 :

  1. Configurez les interfaces.

  2. Configurez un protocole IGP (Interior Gateway Protocol), OSPF dans cet exemple.

  3. Configurez un ou plusieurs groupes BGP.

  4. Configurez la découverte MTU pour éviter la fragmentation des paquets.

  5. Configurez les voisins BGP, avec le protocole TCP MSS défini globalement pour le groupe ou spécifiquement pour les différents voisins.

    REMARQUE :

    Le paramètre de voisinage TCP MSS remplace le paramètre de groupe.

  6. Configurez le système autonome local.

Résultats

À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show interfaces, show protocolset show routing-options. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.

Si vous avez terminé de configurer l’appareil, passez commit en mode de configuration.

Vérification

Pour vérifier que la configuration fonctionne correctement, exécutez les commandes suivantes :

  • show system connections extensive | find <neighbor-address>, pour vérifier la valeur TCP MSS négociée.

  • monitor traffic interface, pour surveiller le trafic BGP et s’assurer que la valeur TCP MSS configurée est utilisée comme option MSS dans le paquet TCP SYN.

Dépannage

Calcul MSS avec MTU Discovery

Problème

Prenons l’exemple de deux périphériques de routage (R1 et R2) ayant une connexion BGP interne (IBGP). Sur les deux routeurs, les interfaces connectées ont 4034 comme MTU IPv4.

Dans la capture de paquets suivante sur l’appareil R1, le MSS négocié est 3994. Dans les informations pour MSS show system connections extensive , il est fixé à 2048.

Solution

Il s’agit d’un comportement attendu avec Junos OS. La valeur MSS est égale à la valeur MTU moins les en-têtes IP ou IPv6 et TCP. Cela signifie que la valeur MSS est généralement inférieure de 40 octets à la MTU (pour IPv4) et de 60 octets inférieure à la MTU (pour IPv6). Cette valeur est négociée entre les pairs. Dans cet exemple, il s’agit de 4034 - 40 = 3994. Junos OS arrondit ensuite cette valeur à un multiple de 2 Ko. La valeur est 3994 / 2048 * 2048=2048. Il n’est donc pas nécessaire de voir la même valeur MSS avec dans la show system connections sortie.

3994 / 2048 = 1.95

1,95 est arrondi à 1.

1 * 2048 = 2048