Authentification de route BGP
Comprendre l’authentification du routeur pour BGP
L’utilisation de l’authentification et de l’intégrité des routeurs et des routes réduit considérablement le risque d’être attaqué par une machine ou un routeur configuré pour partager des informations de routage incorrectes avec un autre routeur. Dans ce type d’attaque, le routeur attaqué peut être amené à créer une boucle de routage, ou la table de routage du routeur attaqué peut être considérablement augmentée, ce qui a un impact sur les performances, ou les informations de routage peuvent être redirigées vers un endroit du réseau pour que l’attaquant les analyse. De fausses annonces d’itinéraires peuvent être envoyées sur un segment. Ces mises à jour peuvent être acceptées dans les tables de routage des routeurs voisins, à moins qu’un mécanisme d’authentification ne soit en place pour vérifier la source des routes.
L’authentification des routeurs et des routes permet aux routeurs de partager des informations uniquement s’ils peuvent vérifier qu’ils parlent à une source fiable, sur la base d’un mot de passe (clé). Dans cette méthode, une clé de hachage est envoyée avec la route envoyée à un autre routeur. Le routeur de réception compare la clé envoyée à sa propre clé configurée. S’ils sont identiques, il accepte l’itinéraire. En utilisant un algorithme de hachage, la clé n’est pas envoyée sur le fil en texte brut. Au lieu de cela, un hachage est calculé à l’aide de la clé configurée. La mise à jour du routage est utilisée comme texte d’entrée, avec la clé, dans la fonction de hachage. Ce hachage est envoyé avec la mise à jour de la route au routeur récepteur. Le routeur de réception compare le hachage reçu avec un hachage qu’il génère lors de la mise à jour de l’itinéraire à l’aide de la clé prépartagée configurée sur celui-ci. Si les deux hachages sont identiques, l’itinéraire est supposé provenir d’une source fiable. La clé n’est connue que des routeurs d’envoi et de réception.
Pour renforcer encore la sécurité, vous pouvez configurer une série de clés d’authentification (un trousseau). Chaque clé a une heure de début unique dans le trousseau. L’authentification par trousseau vous permet de modifier régulièrement les informations de mot de passe sans interrompre les sessions d’appairage. Cette méthode d’authentification de trousseau est dite « sans accès », car les clés passent de l’une à l’autre sans réinitialiser les sessions d’appairage ni interrompre le protocole de routage.
L’homologue émetteur utilise les règles suivantes pour identifier la clé d’authentification active :
L’heure de début est inférieure ou égale à l’heure actuelle (en d’autres termes, pas dans le futur).
L’heure de début est supérieure à celle de toutes les autres clés de la chaîne dont l’heure de début est inférieure à l’heure actuelle (en d’autres termes, la plus proche de l’heure actuelle).
L’homologue récepteur détermine la clé avec laquelle il s’authentifie en fonction de l’identificateur de clé entrant.
L’homologue émetteur identifie la clé d’authentification actuelle en fonction d’une heure de début configurée, puis génère une valeur de hachage à l’aide de la clé actuelle. L’homologue émetteur insère ensuite un objet d’option d’authentification améliorée TCP dans le message de mise à jour BGP. L’objet contient un ID d’objet (attribué par IANA), la longueur de l’objet, la clé actuelle et une valeur de hachage.
L’homologue récepteur examine l’option d’authentification améliorée TCP entrante, recherche la clé d’authentification reçue et détermine si la clé est acceptable en fonction de l’heure de début, de l’heure système et du paramètre de tolérance. Si la clé est acceptée, l’homologue récepteur calcule un hachage et authentifie le message de mise à jour.
L’application initiale d’un trousseau à une session TCP entraîne la réinitialisation de la session. Toutefois, une fois le trousseau appliqué, l’ajout ou la suppression d’un mot de passe du trousseau n’entraîne pas la réinitialisation de la session TCP. De plus, la session TCP ne se réinitialise pas lorsque le trousseau passe d’un algorithme d’authentification à un autre.
Voir également
Authentification TCP
En règle générale, vous configurez l’authentification TCP aux niveaux hiérarchiques suivants :
-
[edit protocols bgp]
-
[edit protocols bgp group group-name]
-
[edit protocols bgp group group-name neighbor address]
Sous-réseaux d’authentification TCP et de préfixe
Les équipements Junos prennent en charge l’authentification TCP auprès des homologues BGP découverts via des sous-réseaux de préfixes autorisés configurés dans un groupe BGP.
Pour configurer l’authentification basée sur des préfixes pour TCP-AO ou TCP MD5 pour les sessions BGP, vous pouvez configurer l’instruction allow (all | prefix-list)
aux hiérarchies suivantes :
-
[edit protocols bgp group group-name]
-
[edit protocols bgp group group-name dynamic-neighbor dyn-name]
Pour plus d’informations sur l’authentification TCP, consultez TCP.
Exemple : Configuration de l’authentification du routeur pour BGP
Tous les échanges de protocole BGP peuvent être authentifiés pour garantir que seuls les équipements de routage approuvés participent aux mises à jour de routage des systèmes autonomes (AS). Par défaut, l’authentification est désactivée.
Conditions préalables
Avant de commencer :
Configurez les interfaces des routeurs.
Configurez un protocole IGP (Interior Gateway Protocol).
Présentation
Lorsque vous configurez l’authentification, l’algorithme crée une somme de contrôle codée qui est incluse dans le paquet transmis. Le périphérique de routage de réception utilise une clé d’authentification (mot de passe) pour vérifier la somme de contrôle du paquet.
Cet exemple inclut les instructions suivantes pour la configuration et l’application du trousseau :
key
: un trousseau peut avoir plusieurs clés. Chaque clé d’un trousseau doit être identifiée par une valeur entière unique. La plage de valeurs d’identificateur valides est comprise entre 0 et 63.La clé peut comporter jusqu’à 126 caractères. Les caractères peuvent inclure n’importe quelle chaîne ASCII. Si vous incluez des espaces, placez tous les caractères entre guillemets ( » « ).
tolerance
—(Facultatif) Pour chaque trousseau, vous pouvez configurer une valeur de tolérance de décalage d’horloge en secondes. La tolérance de décalage d’horloge s’applique au récepteur acceptant les clés pour les mises à jour BGP. La plage configurable est comprise entre 0 et 999 999 999 secondes. Pendant la période de tolérance, le mot de passe actuel ou précédent est acceptable.key-chain
: pour chaque trousseau, vous devez spécifier un nom. Cet exemple définit un trousseau de clés :bgp-auth
. Vous pouvez avoir plusieurs trousseaux sur un périphérique de routage. Par exemple, vous pouvez avoir un trousseau pour BGP, un trousseau pour OSPF et un trousseau pour LDP.secret
: pour chaque clé du trousseau, vous devez définir un mot de passe secret. Ce mot de passe peut être saisi en format crypté ou en texte brut dans lesecret
relevé. Il est toujours affiché au format crypté.start-time
: chaque clé doit spécifier une heure de début au format UTC. Le contrôle passe d’une touche à l’autre. Lorsqu’une heure de début configurée arrive (en fonction de l’horloge du périphérique de routage), la touche avec cette heure de début devient active. Les heures de début sont spécifiées dans le fuseau horaire local d’un périphérique de routage et doivent être uniques dans le trousseau.authentication-key-chain
: permet d’appliquer un trousseau au niveau BGP global à tous les homologues, à un groupe ou à un voisin. Cet exemple applique le trousseau aux homologues définis dans le groupe BGP externe (EBGP) appeléext
.authentication-algorithm
: pour chaque trousseau, vous pouvez spécifier un algorithme de hachage. L’algorithme peut être AES-128, MD5 ou SHA-1.Vous associez un trousseau et un algorithme d’authentification à une session voisine BGP.
Cet exemple configure un trousseau nommé bgp-auth
. La clé 0 sera envoyée et acceptée à partir du 2011-6-23.20 :19 :33 -0700, et cessera d’être envoyée et acceptée lorsque la prochaine clé du trousseau (clé 1) deviendra active. La clé 1 devient active un an plus tard à l’adresse 2012-6-23.20 :19 :33 -0700 et ne cessera pas d’être envoyée et acceptée à moins qu’une autre clé ne soit configurée avec une heure de début postérieure à l’heure de début de la clé 1. Une tolérance de décalage d’horloge de 30 secondes s’applique au récepteur acceptant les touches. Pendant la période de tolérance, la clé actuelle ou précédente est acceptable. Les clés sont des mots de passe partagés-secrets. Cela signifie que les voisins recevant les mises à jour de routage authentifiées doivent avoir la même configuration de trousseau d’authentification, y compris les mêmes clés (mots de passe). Par conséquent, les routeurs R0 et R1 doivent avoir la même configuration de trousseau de clés d’authentification s’ils sont configurés en tant qu’homologues. Cet exemple montre la configuration sur un seul des périphériques de routage.
Diagramme de topologie
Figure 1 Affiche la topologie utilisée dans cet exemple.
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.
set protocols bgp group ext type external set protocols bgp group ext peer-as 65530 set protocols bgp group ext neighbor 172.16.2.1 set routing-options autonomous-system 65533 set protocols bgp group ext authentication-key-chain bgp-auth set protocols bgp group ext authentication-algorithm md5 set security authentication-key-chains key-chain bgp-auth tolerance 30 set security authentication-key-chains key-chain bgp-auth key 0 secret this-is-the-secret-password set security authentication-key-chains key-chain bgp-auth key 0 start-time 2011-6-23.20:19:33-0700 set security authentication-key-chains key-chain bgp-auth key 1 secret this-is-another-secret-password set security authentication-key-chains key-chain bgp-auth key 1 start-time 2012-6-23.20:19:33-0700
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 R1 afin qu’il accepte les filtres de route de l’appareil CE1 et effectue un filtrage de route sortant à l’aide des filtres reçus :
Configurez le système autonome local.
[edit routing-options] user@R1# set autonomous-system 65533
Configurez un ou plusieurs groupes BGP.
[edit protocols bgp group ext] user@R1# set type external user@R1# set peer-as 65530 user@R1# set neighbor 172.16.2.1
Configurez l’authentification avec plusieurs clés.
[edit security authentication-key-chains key-chain bgp-auth] user@R1# set key 0 secret this-is-the-secret-password user@R1# set key 0 start-time 2011-6-23.20:19:33-0700 user@R1# set key 1 secret this-is-another-secret-password user@R1# set key 1 start-time 2012-6-23.20:19:33-0700
L’heure de début de chaque clé doit être unique dans le trousseau.
Appliquez le trousseau d’authentification au BGP et définissez l’algorithme de hachage.
[edit protocols bgp group ext] user@R1# set authentication-key-chain bgp-auth user@R1# set authentication-algorithm md5
(Facultatif) Appliquez une valeur de tolérance de décalage d’horloge en secondes.
[edit security authentication-key-chains key-chain bgp-auth] user@R1# set tolerance 30
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show protocols
, show routing-options
et show security
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
user@R1# show protocols bgp { group ext { type external; peer-as 65530; neighbor 172.16.2.1; authentication-key-chain bgp-auth; authentication-algorithm md5; } }
user@R1# show routing-options autonomous-system 65533;
user@R1# show security authentication-key-chains { key-chain bgp-auth { tolerance 30; key 0 { secret $ABC123$ABC123 start-time “2011-6-23.20:19:33 -0700”; } key 1 { secret $ABC123$ABC123 start-time “2012-6-23.20:19:33 -0700”; } } }
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Répétez la procédure pour chaque périphérique BGP du réseau, en utilisant les noms et adresses d’interface appropriés pour chaque périphérique compatible BGP.
Vérification
Vérifiez que la configuration fonctionne correctement.
- Vérification de l’authentification du voisin
- Vérification de l’envoi des messages d’autorisation
- Vérification des erreurs d’authentification
- Vérification du fonctionnement du trousseau
Vérification de l’authentification du voisin
But
Assurez-vous que l’option AutheKeyChain
apparaît dans la sortie de la show bgp neighbor
commande.
Action
À partir du mode opérationnel, entrez la show bgp neighbor
commande.
user@R1> show bgp neighbor Peer: 172.16.2.1+179 AS 65530 Local: 172.16.2.2+1222 AS 65533 Type: External State: Established Flags: <Sync> Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Export: [ direct-lo0 ] Options: <Preference PeerAS Refresh> Options: <AutheKeyChain> Authentication key is configured Authentication key chain: jni Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 172.16.2.1 Local ID: 10.255.124.35 Active Holdtime: 90 Keepalive Interval: 30 Peer index: 0 Local Interface: fe-0/0/1.0 NLRI advertised by peer: inet-unicast NLRI for this session: inet-unicast Peer supports Refresh capability (2) Table inet.0 Bit: 10000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 2 Received prefixes: 2 Suppressed due to damping: 0 Advertised prefixes: 1 Last traffic (seconds): Received 2 Sent 2 Checked 2 Input messages: Total 21 Updates 2 Refreshes 0 Octets 477 Output messages: Total 22 Updates 1 Refreshes 0 Octets 471 Output Queue[0]: 0
Vérification de l’envoi des messages d’autorisation
But
Vérifiez que BGP dispose de l’option d’autorisation améliorée.
Action
À partir du mode opérationnel, entrez la monitor traffic interface fe-0/0/1
commande.
user@R1> monitor traffic interface fe-0/0/1 verbose output suppressed, use <detail> or <extensive> for full protocol decode Listening on fe-0/0/1, capture size 96 bytes 13:08:00.618402 In arp who-has 172.16.2.66 tell 172.16.2.69 13:08:02.408249 Out IP 172.16.2.2.1122 > 172.16.2.1.646: P 1889289217:1889289235(18) ack 2215740969 win 58486 <nop,nop,timestamp 167557 1465469,nop,Enhanced Auth keyid 0 diglen 12 digest: fe3366001f45767165f17037>: 13:08:02.418396 In IP 172.16.2.1.646 > 172.16.2.2.1122: P 1:19(18) ack 18 win 57100 <nop,nop,timestamp 1466460 167557,nop,Enhanced Auth keyid 0 diglen 12 digest: a18c31eda1b14b2900921675>: 13:08:02.518146 Out IP 172.16.2.2.1122 > 172.16.2.1.646: . ack 19 win 58468 <nop,nop,timestamp 167568 1466460,nop,Enhanced Auth keyid 0 diglen 12 digest: c3b6422eb6bd3fd9cf79742b> 13:08:28.199557 Out IP 172.16.2.2.nerv > 172.16.2.1.bgp: P 286842489:286842508(19) ack 931203976 win 57200 <nop,Enhanced Auth keyid 0 diglen 12 digest: fc0e42900a73736bcc07c1a4>: BGP, length: 19 13:08:28.209661 In IP 172.16.2.1.bgp > 172.16.2.2.nerv: P 1:20(19) ack 19 win 56835 <nop,Enhanced Auth keyid 0 diglen 12 digest: 0fc8578c489fabce63aeb2c3>: BGP, length: 19 13:08:28.309525 Out IP 172.16.2.2.nerv > 172.16.2.1.bgp: . ack 20 win 57181 <nop,Enhanced Auth keyid 0 diglen 12 digest: ef03f282fb2ece0039491df8> 13:08:32.439708 Out IP 172.16.2.2.1122 > 172.16.2.1.646: P 54:72(18) ack 55 win 58432 <nop,nop,timestamp 170560 1468472,nop,Enhanced Auth keyid 0 diglen 12 digest: 76e0cf926f348b726c631944>: 13:08:32.449795 In IP 172.16.2.1.646 > 172.16.2.2.1122: P 55:73(18) ack 72 win 57046 <nop,nop,timestamp 1469463 170560,nop,Enhanced Auth keyid 0 diglen 12 digest: dae3eec390d18a114431f4d8>: 13:08:32.549726 Out IP 172.16.2.2.1122 > 172.16.2.1.646: . ack 73 win 58414 <nop,nop,timestamp 170571 1469463,nop,Enhanced Auth keyid 0 diglen 12 digest: 851df771aee2ea7a43a0c46c> 13:08:33.719880 In arp who-has 172.16.2.66 tell 172.16.2.69 ^C 35 packets received by filter 0 packets dropped by kernel
Vérification des erreurs d’authentification
But
Vérifiez le nombre de paquets abandonnés par TCP en raison d’erreurs d’authentification.
Action
À partir du mode opérationnel, entrez la show system statistics tcp | match auth
commande.
user@R1> show system statistics tcp | match auth 0 send packets dropped by TCP due to auth errors 58 rcv packets dropped by TCP due to auth errors
Vérification du fonctionnement du trousseau
But
Vérifiez le nombre de paquets abandonnés par TCP en raison d’erreurs d’authentification.
Action
À partir du mode opérationnel, entrez la show security keychain detail
commande.
user@R1> show security keychain detail keychain Active-ID Next-ID Transition Tolerance Send Receive Send Receive bgp-auth 3 3 1 1 1d 23:58 30 Id 3, Algorithm hmac-md5, State send-receive, Option basic Start-time Wed Aug 11 16:28:00 2010, Mode send-receive Id 1, Algorithm hmac-md5, State inactive, Option basic Start-time Fri Aug 20 11:30:57 2010, Mode send-receive
Tableau de l'historique des modifications
La prise en charge des fonctionnalités est déterminée par la plateforme et la version que vous utilisez. Utilisez l' Feature Explorer pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.