Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Sessions NETCONF sur tls (Transport Layer Security)

RÉSUMÉ Les clients NETCONF (Network Configuration Protocol) peuvent utiliser le protocole TLS (Transport Layer Security) avec une authentification mutuelle basée sur des certificats X.509 pour établir une session NETCONF avec les équipements Junos pris en charge.

Comprendre les connexions NETCONF-over-TLS

Avantages de NETCONF sur TLS

  • Gestion à distance des équipements à l’aide d’une authentification mutuelle basée sur des certificats

  • Vous permet de gérer plus facilement les réseaux à plus grande échelle qu’avec NETCONF sur SSH

  • Utilise une infrastructure à clé publique pour fournir une authentification mutuelle basée sur des certificats TLS pour le client et le serveur

  • Sécurise la connexion et l’échange des messages NETCONF

  • Garantit l’intégrité des données pour les messages échangés

Présentation de NETCONF over TLS

Vous pouvez établir une session NETCONF (Network Configuration Protocol) sur tls (Transport Layer Security) sur certains équipements Junos, comme alternative à l’établissement d’une session NETCONF sur SSH. TLS est un protocole cryptographique qui utilise l’authentification mutuelle basée sur des certificats et fournit une connexion sécurisée et fiable entre deux équipements. Il s’agit d’un successeur du protocole SSL (Secure Sockets Layer). Lorsque vous établissez une session NETCONF sur TLS, le serveur NETCONF agit comme le serveur TLS, et le client NETCONF est le client TLS.

Les sessions NETCONF sur TLS offrent certains avantages par rapport aux sessions qui utilisent SSH. Alors que SSH authentifie un client à l’aide d’informations d’identification (nom d’utilisateur et mot de passe) ou de clés, TLS utilise des certificats pour authentifier mutuellement le client et le serveur. Les certificats peuvent fournir des informations supplémentaires sur un client et peuvent être utilisés pour authentifier en toute sécurité un équipement sur un autre. Ainsi, alors que les sessions NETCONF sur SSH fonctionnent bien pour la gestion manuelle d’équipements individuels, les sessions NETCONF qui utilisent TLS permettent une communication sécurisée d’équipement à équipement pour mieux gérer et automatiser les équipements dans les réseaux à grande échelle.

Les sessions NETCONF-over-TLS avec les équipements Junos ont les exigences suivantes :

  • Client NETCONF prenant en charge TLS version 1.2

  • Le serveur et le client doivent disposer de certificats de clé publique X.509 signés par une autorité de certification

  • L’infrastructure à clé publique (PKI) Junos doit avoir les certificats locaux et ca appropriés chargés

  • L’équipement Junos est configuré pour NETCONF sur TLS et définit un mappage de certificat par défaut ou de nom d’utilisateur spécifique à NETCONF pour un client

  • Le nom d’utilisateur NETCONF correspond à un compte utilisateur Junos OS valide

TLS utilise des certificats numériques X.509 pour l’authentification du serveur et du client. Un certificat numérique est un moyen électronique de vérifier votre identité par l’intermédiaire d’un tiers de confiance, connu sous le nom d’autorité de certification ou d’autorité de certification (CA). Une autorité de certification émet des certificats numériques, qui peuvent être utilisés pour établir une connexion sécurisée entre deux points de terminaison par le biais de la validation de certificat. La norme X.509 définit le format des certificats. Pour établir une session NETCONF sur TLS sur les équipements Junos pris en charge, le serveur et le client doivent disposer d’un certificat X.509 valide et les certificats doivent être signés par une autorité de certification. Les certificats auto-signés ne peuvent pas être utilisés pour établir des sessions NETCONF sur TLS.

Junos OS PKI fournit une infrastructure pour la gestion numérique des certificats. Pour établir une connexion TLS, vous devez installer les éléments suivants dans la PKI Junos OS :

  • Certificat local du serveur NETCONF et ses certificats CA intermédiaires

    Note:

    Si la chaîne de certificats de serveur ne comprend pas de CA intermédiaires, vous devez configurer le certificat d’autorité de certification racine.

  • Certificat d’autorité de certification racine du client NETCONF requis pour valider le certificat ou la chaîne de certificats du client NETCONF

Une fois que le serveur a vérifié l’identité du client et établi la connexion TLS, il doit dériver le nom d’utilisateur NETCONF de ce client avant de pouvoir établir la session NETCONF. Le nom d’utilisateur NETCONF est le compte d’utilisateur Junos sous lequel les droits et privilèges d’accès sont exécutés les opérations NETCONF. Vous pouvez configurer une liste de mappages de nom d’utilisateur de certificat client à NETCONF, et vous pouvez également configurer un mappage de nom d’utilisateur NETCONF par défaut. Junos OS utilise le mappage par défaut lorsqu’un certificat client ne correspond à aucun des clients configurés. Si le serveur extrait un nom d’utilisateur NETCONF valide, il établit alors la session NETCONF. Pour plus d’informations sur la dérivation du nom d’utilisateur NETCONF, consultez Comprendre le mappage des noms d’utilisateur NETCONF du client TLS.

Le processus Junos tls-proxyd gère la connexion TLS. Il effectue la liaison TLS, chiffre et déchiffre le trafic, détermine le nom d’utilisateur NETCONF et récupère les paramètres d’autorisation de l’utilisateur NETCONF. Le processus tls-proxyd fonctionne conjointement avec le processus de gestion (mgd) pour créer et gérer la session NETCONF. Le workflow de session NETCONF-over-TLS est décrit dans le workflow de connexion NETCONF-over-TLS.

Pour plus d’informations sur NETCONF sur TLS, voir RFC 7589, Utilisation du protocole NETCONF sur la couche de transport (TLS) avec l’authentification Mutual X.509.

Pour plus d’informations sur le protocole Transport Layer Security, voir RFC 5246, Le protocole TLS (Transport Layer Security) version 1.2.

Comprendre le mappage du client TLS vers le mappage des noms d’utilisateur NETCONF

L’identité authentifiée du client NETCONF-over-TLS est le nom d’utilisateur NETCONF. Les équipements Junos exécutent les opérations NETCONF sous les privilèges de compte de cet utilisateur. Vous pouvez configurer la méthode utilisée pour dériver le nom d’utilisateur NETCONF pour les clients individuels, et vous pouvez également définir une méthode par défaut pour dériver le nom d’utilisateur NETCONF pour les clients qui ne correspondent pas à un client configuré.

Vous pouvez configurer le mappage des certificats clients avec les noms d’utilisateur NETCONF au niveau de la [edit system services netconf tls client-identity] hiérarchie. Pour chaque client, vous configurez l’empreinte du certificat et un type de carte. Si l’empreinte d’un certificat client correspond à une empreinte configurée, Junos OS utilise le type de carte correspondant pour dériver le nom d’utilisateur NETCONF. Vous ne pouvez configurer qu’une seule empreinte par client, et chaque empreinte client doit être unique. Par exemple :

L’empreinte digitale du certificat configuré utilise le format x509c2n:tls-empreinte digitale défini dans la RFC 7407, modèle de données YANG pour la configuration SNMP. Dans ce format, le premier octet est l’identifiant de l’algorithme de hachage, et les octets restants sont le résultat de l’algorithme de hachage. L’identifiant de l’algorithme de hachage, illustré ici pour référence, est défini dans la RFC 5246, Protocole TLS (Transport Layer Security) version 1.2.

  • md5 : 1

  • sha1: 2

  • sha224: 3

  • sha256 : 4

  • sha384 : 5

  • sha512: 6

Vous pouvez également configurer un mappage par défaut pour le nom d’utilisateur NETCONF au niveau de la [edit system services netconf tls default-client-identity] hiérarchie. Si l’empreinte digitale d’un certificat client ne correspond à aucun client configuré, l’équipement Junos utilise le type de carte par défaut pour dériver le nom d’utilisateur NETCONF.

Les équipements Junos prennent en charge les types de carte suivants :

  • san-dirname-cn: utilisez le nom commun (CN) défini pour le champDirName:/CN DirName (SAN) du certificat client comme nom d’utilisateur NETCONF.

  • specified— Utilisez le nom d’utilisateur NETCONF défini dans l’instruction username au même niveau hiérarchique.

Une fois que le serveur a vérifié l’identité du client et établi la connexion TLS, il en tire le nom d’utilisateur NETCONF. Il fait d’abord correspondre l’empreinte de chaque client configuré à l’empreinte du certificat présenté. S’il y a une correspondance, il utilise le type de carte correspondant pour dériver le nom d’utilisateur NETCONF. Si aucune des empreintes configurées ne correspond à celle du certificat du client, le type de carte par défaut est utilisé pour dériver le nom d’utilisateur NETCONF.

Une fois que le serveur a déterminé le nom d’utilisateur, il récupère l’autorisation de l’utilisateur localement ou à distance. Le nom d’utilisateur doit avoir un compte d’utilisateur défini localement sur l’équipement, ou il doit être authentifié par un serveur LDAP (Lightweight Directory Access Protocol), qui le mappe ensuite à un compte de modèle d’utilisateur défini localement sur l’équipement Junos. Si le nom d’utilisateur extrait n’est pas un utilisateur local ou distant valide, la connexion TLS est alors terminée.

Flux de travail de connexion NETCONF-over-TLS

L’équipement Junos agit comme le serveur TLS et NETCONF. Le serveur écoute les connexions NETCONF-over-TLS entrantes sur le port TCP 6513. Le client NETCONF, qui est également le client TLS, initie une connexion avec le serveur sur ce port.

Le client et le serveur effectuent les actions suivantes pour établir et utiliser la session NETCONF sur TLS :

  1. Le client envoie un message TLS ClientHello pour lancer la négociation TLS.

  2. Le serveur envoie un message ServerHello, la chaîne de certificats du serveur et un message CertificateRequest pour demander un certificat au client.

  3. Le client vérifie l’identité du serveur et envoie la chaîne de certificats du client.

  4. Le serveur vérifie la chaîne de certificats client avec l’autorité de certification racine du client, qui a été préconfigurée sur le serveur.

  5. Le serveur tire le nom d’utilisateur NETCONF de ce client.

  6. Si le nom d’utilisateur NETCONF est valide, le serveur lance la session NETCONF et le serveur et le client échangent des messages NETCONF <hello> .

  7. Le client effectue des opérations NETCONF à l’aide des droits et privilèges d’accès de l’utilisateur NETCONF.

  8. Le client exécute l’opération <close-session> pour mettre fin à la session NETCONF, qui ferme ensuite la connexion TLS.

Le serveur ne parvient pas à établir la session NETCONF sur TLS dans les scénarios suivants :

  • Le certificat du serveur ou du client a expiré ou s’autosigné.

  • Le client ne fournit pas de certificat.

  • Le client n’envoie pas ses certificats ca intermédiaires.

  • Le certificat d’autorité de certification racine du client n’est pas configuré sur le serveur.

  • Le serveur ne peut pas mapper le certificat client à un type de carte configuré ou par défaut pour dériver le nom d’utilisateur NETCONF.

  • Le serveur utilise le type de san-dirname-cn carte pour dériver le nom d’utilisateur NETCONF du client, mais le certificat du client ne spécifie pas de nom d’utilisateur dans le champ correspondant.

Comment établir une session NETCONF sur TLS

Un système de gestion du réseau (NMS) est utilisé pour gérer à distance l’équipement Junos. Vous pouvez établir une session NETCONF sur TLS entre un système de gestion du réseau et les équipements Junos pris en charge. Le NMS est le client NETCONF et TLS, et l’équipement Junos est le serveur NETCONF et TLS.

Avant que le client et le serveur puissent établir une session NETCONF sur TLS, vous devez satisfaire aux exigences décrites dans les sections suivantes :

Installer le logiciel client TLS sur le système de gestion du réseau

Pour établir une session NETCONF à l’aide de TLS, le système de gestion du réseau doit d’abord établir une connexion TLS avec l’équipement Junos. Ainsi, le système de gestion du réseau nécessite un logiciel pour gérer le protocole TLS. Par exemple, vous pouvez installer et utiliser la boîte à outils OpenSSL, qui est une boîte à outils pour les protocoles TLS (Transport Layer Security) et Secure Sockets Layer (SSL). Il est sous licence de type Apache.

Pour plus d’informations sur OpenSSL, voir https://www.openssl.org.

Obtenir des certificats X.509 pour le serveur et le client

Le protocole TLS utilise des certificats de clé publique X.509 pour authentifier l’identité du serveur et du client. Pour établir une session NETCONF sur TLS, le serveur et le client doivent avoir un certificat X.509 et le certificat doit être signé par une autorité de certification (CA) valide. Les certificats auto-signés ne sont pas acceptés pour les sessions NETCONF sur TLS.

Pour utiliser OpenSSL pour obtenir un certificat pour le client NETCONF :

  1. Générez une clé privée et spécifiez la longueur de la clé en bits.
    Note:

    Les équipements Junos ne prennent pas en charge l’utilisation des clés ECDSA (Elliptic Curve Digital Signature Algorithm) dans les sessions NETCONF sur TLS.

  2. Si vous définissez le nom d'utilisateur NETCONF dans le certificat du client, mettez à jour votre fichier de configuration openssl.cnf ou équivalent pour définir l'subjectAltName=dirNameextension et spécifier le nom d'utilisateur NETCONF.
  3. Générez une demande de signature de certificat (CSR), qui contient la clé publique de l'entité et des informations sur son identité.
  4. Générez le certificat en effectuant l’une des opérations suivantes :
    • Envoyez le CSR à une autorité de certification pour demander un certificat X.509, et fournissez le fichier de configuration pour inclure toutes les extensions supplémentaires.

    • Signez le CSR avec une autorité de certification pour générer le certificat client, et incluez les -extfile -extensions options et si vous devez référencer votre fichier de configuration et vos extensions.

  5. Vérifiez que le champ Nom commun (CN) et les extensions, le cas échéant, sont corrects.

De même, générez le certificat du serveur.

  1. Générez une clé privée et spécifiez la longueur de la clé en bits.

  2. Générez une demande de signature de certificat (CSR).

  3. Générez le certificat en effectuant l’une des opérations suivantes :

    • Envoyez le CSR à une autorité de certification pour demander un certificat X.509.

    • Signez le CSR avec une autorité de certification pour générer le certificat du serveur.

L’infrastructure à clé publique (PKI) Junos OS fournit une infrastructure pour la gestion numérique des certificats. Vous pouvez également utiliser la PKI Junos OS pour générer la paire de clés et le CSR requis pour le certificat local du serveur. Pour plus d’informations sur junos OS PKI et sur les différentes méthodes d’obtention de certificats, consultez la présentation des certificats numériques avec PKI et la documentation associée.

Installer le certificat local du serveur dans la PKI Junos

Le certificat local du serveur est le certificat X.509 pour l’équipement Junos qui agit comme serveur NETCONF et TLS. Vous devez installer le certificat local de l’équipement dans la PKI Junos.

Pour installer le certificat local du serveur dans la PKI Junos :

  1. Copiez le certificat et la clé privée sur l’équipement Junos.
  2. Chargez le certificat à partir du fichier spécifié à l’aide de la PKI Junos.

    Définissez un identifiant de certificat unique et spécifiez les chemins du fichier vers le certificat et la clé privée ou la paire de clés. Par exemple :

  3. (Facultatif) Vérifiez le certificat.

Installer les certificats CA dans la PKI Junos

Un certificat numérique est un moyen électronique de vérifier votre identité par l’intermédiaire d’un tiers de confiance, connu sous le nom d’autorité de certification (CA). Lors de l’établissement d’une session NETCONF sur TLS, le client et le serveur doivent chacun disposer d’un certificat numérique X.509 pour authentifier leur identité. Vous devez configurer le certificat d’autorité de certification racine requis pour valider le certificat client dans l’infrastructure à clé publique (PKI) Junos. Vous devez également configurer tous les CA requis pour valider le certificat local du serveur dans la PKI Junos. Ainsi, pour chaque autorité de certification, vous configurez un profil d’autorité de certification et chargez la liste de certificats d’autorité de certification (CRL) correspondante. Cette configuration permet à l’équipement Junos de valider un certificat par rapport à l’autorité de certification.

Note:

Si la chaîne de certificats de serveur ne comprend pas de CA intermédiaires, vous devez configurer le certificat d’autorité de certification racine. Sinon, il vous suffit de configurer les CA intermédiaires.

Pour configurer manuellement un profil d’autorité de certification et charger le certificat d’autorité de certification et la CRL correspondants :

  1. Téléchargez les certificats ca et toutes les listes de révocation de certificats d’AUTORITÉ de certification (CRL) requises sur l’équipement Junos.
  2. Configurez un profil d’autorité de certification fiable pour chaque autorité de certification requise, par exemple :
  3. Chargez le certificat d’autorité de certification associé au profil d’autorité de certification racine du client dans la PKI Junos et spécifiez l’emplacement du fichier de certificat.
  4. Chargez les certificats d’autorité de certification associés au profil d’autorité de certification du serveur dans la PKI Junos et spécifiez l’emplacement du fichier de certificat.
    • Si la chaîne de certificats ne comporte qu’une autorité de certification racine, chargez le certificat d’autorité de certification racine.

    • Si la chaîne de certificats comprend des CA intermédiaires, il vous suffit de charger les certificats ca intermédiaires.

  5. Si nécessaire, chargez la CRL d’un profil de CA donné, par exemple :
    Note:

    Si vous ne configurez pas de liste de révocation de certificat pour un profil d’autorité de certification donné, vous devez désactiver les vérifications de révocation en configurant l’instruction revocation-check disable au [edit security pki ca-profile profile-name] hierarchy level.

  6. (Facultatif) Vérifiez le certificat d’autorité de certification.

Activer le service NETCONF sur TLS

Pour activer NETCONF sur TLS :

  1. Configurez l’ID de certificat local du serveur et référencez l’ID défini lors de l’installation du certificat.
  2. Définissez comment le serveur doit dériver le nom d’utilisateur NETCONF pour un client donné.
  3. (Facultatif) Configurez les options de suivi pour les sessions NETCONF sur TLS, par exemple :
  4. Validez la configuration.

Configurer le mappage des noms d’utilisateur TLS client-NETCONF

Vous pouvez définir le mappage entre le certificat client et le nom d’utilisateur NETCONF pour des clients spécifiques. Si vous ne définissez pas de mappage pour un client spécifique, vous devez définir un mappage par défaut pour qu’il établisse une session NETCONF sur TLS.

Pour définir le mappage pour dériver le nom d’utilisateur NETCONF d’un client donné :

  1. Déterminez l’empreinte digitale du certificat du client en exécutant la commande adaptée à votre environnement sur le système de gestion du réseau et le format du certificat, par exemple :
  2. Déterminez l’identifiant de l’algorithme de hachage de l’empreinte digitale tel que défini dans la RFC 5246, Le protocole TLS (Transport Layer Security) version 1.2.

    Cet exemple utilise l’algorithme de hachage SHA-256, qui correspond à la valeur d’identification de 4.

    • md5 : 1

    • sha1: 2

    • sha224: 3

    • sha256 : 4

    • sha384 : 5

    • sha512: 6

  3. Sur l’équipement Junos, définissez un identifiant unique pour le client.
  4. Configurez l’empreinte digitale du certificat du client au format x509c2n:tls-fingerprint.

    Le premier octet de l’empreinte digitale est l’identifiant de l’algorithme de hachage, et les octets restants sont le résultat de l’algorithme de hachage.

  5. Configurez le type de carte qui définit la façon dont le serveur tire le nom d’utilisateur NETCONF pour ce client.
  6. Si le type de carte est specified, configurez le nom d’utilisateur NETCONF à utiliser pour ce client.
  7. Validez la configuration.

Configurer le mappage des noms d’utilisateur NETCONF par défaut

Vous pouvez définir un mappage par défaut utilisé pour dériver le nom d’utilisateur NETCONF lorsqu’un client ne correspond pas à un client configuré au niveau hiérarchique [edit system services netconf tls client-identity] .

Pour définir le mappage par défaut du nom d’utilisateur NETCONF :

  1. Configurez le type de carte par défaut que le serveur utilise pour dériver le nom d’utilisateur NETCONF.
  2. Si le type de carte est specified, configurez le nom d’utilisateur NETCONF par défaut.
  3. Validez la configuration.

Configurer le compte utilisateur pour l’utilisateur NETCONF

Lors de l’établissement d’une session NETCONF sur TLS, le serveur mappe le certificat client à l’utilisateur NETCONF qui effectue les opérations sur l’équipement pour cette session. Junos OS prend en charge les utilisateurs locaux et les utilisateurs distants LDAP pour les sessions NETCONF-over-TLS. L’utilisateur NETCONF doit soit avoir un compte d’utilisateur défini localement sur l’équipement, soit il doit être authentifié par un serveur LDAP, qui le mappe ensuite à un compte de modèle d’utilisateur local défini localement sur l’équipement. Les instructions suivantes expliquent comment créer un compte utilisateur sur les équipements Junos.

Pour créer un compte d’utilisateur NETCONF sur un équipement Junos :

  1. Configurez l’instruction user avec un nom d’utilisateur unique et incluez l’instruction class pour spécifier une classe de connexion qui dispose des autorisations requises pour toutes les actions à effectuer par l’utilisateur.

    Par exemple, la configuration suivante définit deux utilisateurs : netconf-user et netconf-default-user.

  2. (Facultatif) Configurez les uid déclarations et full-name pour spécifier l’ID et le nom de l’utilisateur.
  3. Validez la configuration pour activer le compte utilisateur sur l’équipement.
  4. Répétez les étapes précédentes sur chaque équipement Junos où le client établit des sessions NETCONF sur TLS.

Démarrez la session NETCONF-over-TLS

Le système de gestion du réseau agit comme le client NETCONF et TLS. Vous pouvez utiliser n’importe quel logiciel pour gérer le protocole TLS pour lancer la session NETCONF-over-TLS avec l’équipement Junos.

Pour commencer la session NETCONF-over-TLS :

  1. Lancez la connexion au serveur NETCONF sur le port 6513, puis fournissez le certificat et la clé du client, le certificat d’autorité de certification racine du serveur et tous les certificats ca intermédiaires requis pour valider le certificat client.
  2. Vérifiez que la session correspond à l’utilisateur NETCONF approprié.

    Le serveur émet le nom d’utilisateur NETCONF pour cette session pendant l’établissement de la session.

  3. Effectuez des opérations NETCONF si nécessaire.
  4. Fermez la session NETCONF et la connexion TLS.