Sessions NETCONF et Shell sur HTTPS sortant amélioré
RÉSUMÉ Les applications clientes peuvent établir des sessions NETCONF (Network Configuration Protocol) et des sessions shell à l’aide d’un HTTPS sortant amélioré sur les équipements Junos pris en charge.
Comprendre les sessions NETCONF et Shell sur https sortant amélioré
- Avantages des sessions NETCONF et Shell par rapport au HTTPS sortant
- Présentation des sessions NETCONF et Shell sur HTTPS sortant
- Flux de travail de connexion pour les sessions sur HTTPS sortant amélioré
Avantages des sessions NETCONF et Shell par rapport au HTTPS sortant
Activez NETCONF ou les applications clientes shell pour gérer les équipements qui ne sont pas accessibles via d’autres protocoles.
Activez la gestion à distance des équipements à l’aide de l’authentification basée sur des certificats pour le client HTTPS sortant.
Présentation des sessions NETCONF et Shell sur HTTPS sortant
Vous pouvez établir des sessions NETCONF et shell sur https sortant entre les équipements Junos pris en charge et un système de gestion du réseau. Une session NETCONF ou shell sur HTTPS sortant vous permet de gérer à distance des équipements qui peuvent ne pas être accessibles via d’autres protocoles tels que SSH. Cela peut se produire, par exemple, si l’équipement se trouve derrière un pare-feu et que le pare-feu ou un autre outil de sécurité bloque ces protocoles. Https, d’autre part, utilise un port standard, qui est généralement autorisé en sortie dans la plupart des environnements.
Sur les équipements pris en charge, l’image du logiciel Junos comprend une application Juniper Extension Toolkit (JET) qui prend en charge l’établissement d’une session NETCONF ou shell à l’aide de HTTPS sortant. L’application JET utilise l’infrastructure gRPC pour se connecter au client HTTPS sortant, qui se compose d’un serveur gRPC s’exécutant sur le système de gestion du réseau. gRPC est une infrastructure RPC (Remote Procedure Call) indépendante du langage et open source. La figure 1 illustre la configuration HTTPS sortante dans sa forme la plus simple.

Dans ce scénario, le serveur gRPC agit comme le client NETCONF/shell, et l’application JET est le client gRPC et le serveur NETCONF/shell. Le serveur gRPC écoute les demandes de connexion sur le port spécifié, qui est par défaut le port 443. Vous configurez l’application JET en tant que service d’extension. Les informations de connexion et d’authentification pertinentes sont transmises au script. Pendant l’exécution du script, il tente automatiquement de se connecter au serveur gRPC sur l’hôte et le port configurés.
L’application JET et le serveur gRPC établissent une connexion HTTPS persistante sur une session gRPC chiffrée TLS. L’application JET authentifie le serveur gRPC à l’aide d’un certificat numérique X.509, et si l’authentification est réussie, la session NETCONF ou shell demandée est établie sur cette connexion. Les opérations NETCONF et les commandes shell s’exécutent sous les privilèges de compte de l’utilisateur configuré pour l’application de service d’extension.
La connexion HTTPS sortante utilise un certificat numérique X.509 pour authentifier le serveur gRPC. 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 du certificat. Pour établir une session NETCONF ou shell sur https sortant sur les équipements Junos pris en charge, le serveur gRPC doit disposer d’un certificat X.509 valide.
Le protocole HTTPS sortant amélioré prend en charge :
-
Connexion à plusieurs clients HTTPS sortants
-
Configuration de plusieurs serveurs gRPC de sauvegarde pour chaque client HTTPS sortant
-
Mise en place de sessions NETCONF et shell multiples et simultanées avec un client donné
-
Authentification du client HTTPS sortant à l’aide de certificats numériques X.509 auto-signés ou signés par l’CA
-
Authentification de l’équipement Junos à l’aide d’un secret partagé
Flux de travail de connexion pour les sessions sur HTTPS sortant amélioré
Dans une session NETCONF ou shell sur HTTPS sortant, le serveur gRPC s’exécutant sur le système de gestion du réseau agit comme le client NETCONF/shell, et l’application JET sur l’équipement Junos est le client gRPC et le serveur NETCONF/shell. Vous pouvez configurer plusieurs clients HTTPS sortants et configurer un ou plusieurs serveurs gRPC de secours pour chaque client. L’application JET se connecte à un seul serveur gRPC de la liste de serveurs du client à tout moment.
Le client et le serveur gRPC effectuent les actions suivantes pour établir une session NETCONF ou shell sur https sortant :
-
Le serveur gRPC écoute les connexions entrantes sur le port spécifié ou, si aucun port n’est spécifié, sur le port 443 par défaut.
-
Le client gRPC initie une connexion TCP/IP avec le serveur et le port gRPC configurés. Si vous configurez un client HTTPS sortant avec un ou plusieurs serveurs gRPC de secours, le client gRPC tente de se connecter à chaque serveur de la liste jusqu’à ce qu’il établisse une connexion.
-
Le client gRPC envoie un message TLS
ClientHello
pour lancer la négociation TLS. -
Le serveur gRPC envoie un
ServerHello
message et son certificat. -
Le client gRPC vérifie l’identité du serveur gRPC.
-
Le client gRPC envoie l’ID de l’équipement et le secret partagé configurés pour ce client HTTPS sortant au serveur gRPC.
-
Le client HTTPS sortant demande une session NETCONF ou shell, et le serveur gRPC utilise l’ID de l’équipement et le secret partagé pour authentifier l’équipement Junos. Si l’authentification est réussie, la session est établie.
-
Si une session NETCONF est demandée, le serveur et le client échangent des messages NETCONF
<hello>
. -
L’application cliente NETCONF ou shell effectue des opérations selon les besoins.
Le client gRPC initie une autre connexion TCP/IP avec le même serveur gRPC, et le client et le serveur gRPC répètent le processus, ce qui permet au client HTTPS sortant d’établir plusieurs sessions NETCONF et shell avec l’équipement réseau.
Comment établir des sessions NETCONF et Shell sur https sortant amélioré
Vous pouvez utiliser l’application JET incluse dans l’image du logiciel Junos pour établir des sessions NETCONF et shell sur https sortant entre les systèmes de gestion de réseau (NMS) et les équipements Junos pris en charge. L’application JET, configurée en tant que service d’extension, lance une connexion à un serveur gRPC s’exécutant sur un NMS et établit une connexion HTTPS persistante sur une session gRPC chiffrée TLS. La session NETCONF ou shell s’exécute sur cette connexion HTTPS. Dans ce scénario, le serveur gRPC est le client NETCONF/shell, et l’application JET est le client gRPC et le serveur NETCONF/shell.
Les matériels et logiciels suivants sont nécessaires pour établir des sessions sur https sortant amélioré :
Système de gestion du réseau exécutant Python 3.5 ou version ultérieure
Équipement exécutant Junos OS Evolved ou équipement exécutant Junos OS avec mise à niveau de FreeBSD version 20.3 ou ultérieure qui prend également en charge l’exécution des applications JET
Note:Pour les équipements pris en charge, consultez l’Explorateur de fonctionnalités.
La figure 2 illustre la configuration référencée dans les tâches suivantes. Le nom de l’interface de gestion sur l’équipement Junos varie en fonction de la plate-forme et du système d’exploitation.

Avant que le client et le serveur puissent établir une session NETCONF ou shell sur https sortant, vous devez satisfaire aux exigences décrites dans les sections suivantes :
- Obtenir un certificat X.509 pour le serveur gRPC
- Configurer le serveur gRPC
- Configurer le compte utilisateur pour l’utilisateur NETCONF ou Shell
- Configurer les clients HTTPS sortants
- Configurer le service d’extension HTTPS sortant sur les équipements Junos
- Démarrer la session NETCONF ou Shell
Obtenir un certificat X.509 pour le serveur gRPC
La connexion HTTPS sortante utilise un certificat de clé publique X.509 pour authentifier l’identité du serveur gRPC s’exécutant sur le système de gestion du réseau. La pile gRPC prend en charge le format de certificat X.509 v3.
Les exigences du certificat du serveur gRPC sont les suivants :
-
Le certificat peut être auto-signé ou signé par une autorité de certification (CA).
-
Le certificat doit définir soit le nom d’hôte du serveur gRPC dans le champ Nom commun (CN), soit l’adresse IP du serveur gRPC dans le champ SubjectAltName (SAN) ADRESSE IP. L’équipement Junos doit utiliser la même valeur pour établir la connexion au serveur. Si le certificat définit le champ SubjectAltName IP Address (Adresse IP SubjectAltName), l’équipement ignore le champ Common Name (Nom commun) lors de l’authentification.
-
Le certificat doit être encodé PEM et utiliser une extension .crt .
-
Le certificat et sa clé doivent être nommés serveur.crt et server.key, respectivement.
Pour utiliser OpenSSL pour obtenir un certificat :
Configurer le serveur gRPC
Le système de gestion du réseau nécessite les logiciels suivants :
Python 3.5 ou version ultérieure
Le système de gestion du réseau et l’application JET sur l’équipement Junos utilisent l’infrastructure gRPC pour établir une connexion HTTPS persistante sur une session gRPC chiffrée par TLS. La pile gRPC doit être installée dans le système de gestion du réseau et exécuter un serveur gRPC qui écoute la demande de connexion sur le port spécifié. Juniper Networks fournit les fichiers de définition proto nécessaires et des exemples de fichiers d’application serveur gRPC dans le référentiel Juniper Networks netconf-https-outbound
sur GitHub.
Cette section configure le serveur gRPC sur un système de gestion du réseau exécutant Ubuntu 18.04. Si vous exécutez un autre système d’exploitation, utilisez les commandes adaptées à votre système d’exploitation.
Pour configurer le serveur gRPC sur un système de gestion du réseau exécutant Ubuntu 18.04 :
Le serveur gRPC écoute indéfiniment le port spécifié pour les connexions entrantes. Une fois que vous avez configuré l’équipement Junos pour qu’il se connecte au serveur gRPC et qu’une connexion et une session sont établies, vous pouvez effectuer des opérations NETCONF ou des commandes shell selon le cas.
Configurer le compte utilisateur pour l’utilisateur NETCONF ou Shell
Pour établir une session NETCONF ou shell sur https sortant, vous devez créer un compte utilisateur localement sur l’équipement Junos. Vous utilisez ce compte pour effectuer les opérations NETCONF ou shell sur l’équipement pour cette session. L’application JET s’exécute à l’aide des autorisations configurées pour ce compte.
Pour créer un compte utilisateur sur un équipement Junos :
Configurer les clients HTTPS sortants
Le protocole HTTPS sortant amélioré vous permet de configurer plusieurs clients HTTPS sortants au niveau de la [edit system services outbound-https]
hiérarchie et de configurer plusieurs serveurs gRPC de sauvegarde pour chaque client. L’application JET se connecte à un seul serveur gRPC de la liste de serveurs du client à tout moment.
Avant de configurer l’équipement, vous aurez besoin des informations suivantes :
-
Port sur lequel le serveur gRPC écoute les connexions.
-
Le contenu du champ SubjectAltName IP Address ou, s'il n'y a pas de tel champ, le contenu du champ Common Name (CN) dans le certificat du serveur gRPC.
-
Le contenu du certificat du serveur gRPC, s’il est autosigné, ou le contenu des certificats de l’AUTORITÉ de certification, si le certificat du serveur est authentifié à l’aide d’une chaîne de certificats.
Pour configurer un client HTTPS sortant :
Si le service d’extension HTTPS sortant est déjà en cours d’exécution et que vous ajoutez, supprimez ou modifiez un client HTTPS sortant et validez la configuration, vous n’avez pas besoin de redémarrer le service pour que les modifications prennent effet. Ils sont ramassés automatiquement.
Configurer le service d’extension HTTPS sortant sur les équipements Junos
Les versions Junos qui prennent en charge les sessions NETCONF et shell sur https sortant comprennent une application JET et des fichiers de support dans l’image du logiciel. Le tableau 1 présente les fichiers situés dans le répertoire /var/db/scripts/jet de l’équipement.
Fichier |
Description |
---|---|
nc_grpc_app.pyc |
Application JET qui utilise l’infrastructure gRPC pour établir une connexion HTTPS persistante avec un serveur gRPC s’exécutant sur le système de gestion du réseau. |
nc_grpc_app_lib.pyc |
Bibliothèques requises |
Pour configurer l’équipement Junos pour les sessions sur HTTPS sortant :
Une fois l’application lancée, elle enregistre les messages dans le fichier outbound_https.log .
Si l’application ne démarre pas automatiquement après la validation de la configuration, consultez les messages de journal liés à cette application pour résoudre le problème. Dans Junos OS, émettez la show log jet.log
commande. Dans Junos OS Evolved, émettez des show trace application cscript
commandes et show log messages
.
Démarrer la session NETCONF ou Shell
Le serveur gRPC s’exécutant sur le système de gestion du réseau agit comme le client NETCONF/shell, tandis que l’application JET sur l’équipement Junos agit comme le client gRPC et le serveur NETCONF/shell. Après avoir démarré le serveur gRPC et l’application JET, l’application JET tente de se connecter au serveur gRPC sur le port spécifié. Si la connexion est réussie, le client gRPC authentifie le serveur gRPC. Si l’authentification du serveur est réussie, vous pouvez demander une ou plusieurs sessions NETCONF ou shell.
Avant de commencer, vous aurez besoin des informations suivantes :
-
Identifiant de l’équipement et chaîne secrète partagée configurée pour le client HTTPS sortant
Pour établir une session NETCONF ou shell sur https sortant amélioré :