Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Sessions téléphoniques à domicile NETCONF

L’appel d’accueil NETCONF permet à un serveur NETCONF d’établir une connexion sécurisée à un client NETCONF. Le client NETCONF peut alors établir une session SSH et une session NETCONF avec le serveur.

L’appel d’accueil NETCONF permet à un client NETCONF de gérer à distance les équipements Junos dans les cas où le client ne peut pas initier de connexion à l’équipement réseau. L’équipement Junos qui fait office de serveur NETCONF initie et maintient des connexions sécurisées à un ensemble prédéfini de clients NETCONF. Les sections suivantes traitent de la fonctionnalité d’appel d’accueil NETCONF.

Comprendre l’appel NETCONF

Présentation du réseau d’appel NETCONF

Pour les sessions NETCONF normales sur SSH, le client NETCONF initie d’abord une connexion TCP à l’équipement Junos qui fait office de serveur NETCONF. Le client démarre alors la session SSH suivie de la session NETCONF. Dans un scénario d’appel NETCONF, les rôles du serveur et du client TCP sont inversés. Le serveur NETCONF initie la connexion TCP au client NETCONF. Une fois la connexion établie, le client NETCONF démarre alors la session SSH et la session NETCONF comme d’habitude.

NETCONF Call Home vous permet de gérer à distance des équipements Junos qui ne seraient peut-être pas accessibles autrement. Cela peut se produire, par exemple, si l’appareil se trouve derrière un pare-feu et que le pare-feu ou un autre outil de sécurité restreint l’accès de gestion à l’appareil ou implémente la traduction d’adresses réseau (NAT). Dans de tels cas, le client NETCONF peut ne pas être en mesure d’initier la connexion avec l’équipement Junos. Toutefois, vous pouvez configurer l’équipement Junos pour initier, établir et maintenir une connexion avec un ensemble prédéfini de systèmes de gestion réseau.

Vous pouvez utiliser l’appel NETCONF dans les scénarios suivants :

  • Déploiement initial

  • Gestion générale des appareils

La figure 1 présente la séquence d’appel à la maison. Dans un scénario d’appel NETCONF, le système de gestion du réseau (NMS) est le serveur TCP et l’équipement Junos est le client TCP. Vous configurez le serveur TCP pour écouter les demandes de connexion sur un port spécifié. Le port standard Call Home NETCONF est 4334, mais vous pouvez configurer tout numéro de port valide qui n’entre pas en conflit avec un autre service. Vous configurez le périphérique Junos pour qu’il se connecte à un ou plusieurs systèmes de gestion de réseau prédéfinis sur le port spécifié. Une fois que les appareils ont établi une connexion TCP, le NMS assume son rôle de client SSH et de client NETCONF.

Figure 1 : connexion Communication process between NETCONF Client and Server: TCP connection, SSH session, and NETCONF session establishment. Highlights secure network management. d’appel à distance NETCONF

Le client NETCONF initie une session SSH sur la connexion TCP. Lors de l’établissement d’une session SSH, le client NETCONF doit authentifier le serveur en validant la clé d’hôte ou le certificat présenté par le serveur. Le serveur NETCONF doit également authentifier le client. Le client peut choisir n’importe quelle méthode d’authentification SSH prise en charge par le serveur. Le serveur vérifie d’abord l’authentification basée sur les certificats, puis l’authentification basée sur les clés, et enfin l’authentification basée sur les mots de passe.

Nous vous recommandons d’utiliser l’authentification basée sur les certificats SSH pour les utilisateurs et les hôtes. L’authentification basée sur les certificats vous permet de configurer l’accès SSH à un appareil avec une connexion sans mot de passe pour les utilisateurs et donne la possibilité d’approuver les hôtes sans avoir besoin de vérifier les empreintes des clés. En outre, vous pouvez définir la durée de validité d’un certificat donné. Pour l’authentification basée sur les certificats, le serveur et le client envoient chacun leur certificat SSH. Vous devez configurer le client avec la clé publique de l’AC qui vérifie le certificat du serveur. De même, vous devez configurer le serveur avec la clé publique de l’AC qui vérifie le certificat du client.

Remarque :

Junos OS inclut une implémentation personnalisée d’OpenSSH pour la gestion des équipements. Les correctifs de sécurité sont rétroportés si nécessaire, indépendamment des numéros de version d’OpenSSH. La version affichée dans CLI sortie (par exemple, show version) peut ne pas refléter tous les correctifs appliqués. Consultez toujours les avis de sécurité de Juniper (JSA) pour évaluer l’impact sur la vulnérabilité.

Pour plus d’informations sur l’appel d’accueil NETCONF, consultez RFC 8071, Appel d’accueil NETCONF et Appel d’accueil RESTCONF.

Avantages de l’appel NETCONF

  • NETCONF Call Home peut rationaliser le déploiement initial des appareils.

  • Appel NETCONF L’authentification basée sur les certificats peut simplifier la gestion et la mise à l’échelle des clés d’authentification et offrir une sécurité renforcée par rapport aux approches traditionnelles basées sur les mots de passe.

Comment configurer un appel NETCONF

Pour configurer l’appel NETCONF, effectuez les étapes décrites dans les sections suivantes :

Configurer le compte utilisateur Junos

Pour toutes les méthodes d’authentification SSH, le client NETCONF a besoin d’un compte d’utilisateur local ou d’un compte de modèle d’utilisateur sur chaque équipement sur lequel il établit une session NETCONF.

Pour créer un compte de modèle d’utilisateur local :

  1. Configurez l’instruction user au niveau de la [edit system login] hiérarchie et spécifiez un nom d’utilisateur. Incluez l’instruction class et spécifiez une classe de connexion disposant des autorisations requises pour toutes les actions à effectuer par l’utilisateur.

  2. Valider la configuration

  3. Répétez les étapes précédentes sur chaque équipement Junos sur lequel l’application cliente établit des sessions NETCONF.

Configurer l’authentification SSH

Lors de l’établissement d’une session SSH, le client NETCONF authentifie le serveur en validant la clé d’hôte ou le certificat présenté par le serveur. De même, le serveur NETCONF authentifie le client. Le serveur vérifie d’abord l’authentification basée sur les certificats, puis l’authentification basée sur les clés, et enfin l’authentification basée sur les mots de passe. Vous devez configurer le serveur et le client pour la méthode d’authentification de votre choix. Les méthodes d’authentification SSH sont décrites dans les sections suivantes :

Configurer l’authentification par mot de passe

Si le client NETCONF utilise l’authentification par mot de passe, configurez le compte utilisateur Junos à l’aide d’un mot de passe.

Pour créer un mot de passe textuel :

  1. Incluez l’instruction plain-text-password ou encrypted-password pour le compte d’utilisateur.

    • Pour saisir un mot de passe sous forme de texte, exécutez la commande suivante. On vous invite à saisir le mot de passe, qui est chiffré avant d’être stocké.

      Pour stocker un mot de passe pré-chiffré, par exemple, un mot de passe que vous avez précédemment créé et haché à l’aide de Message Digest 5 (MD5), exécutez la commande suivante :

  2. Validez la configuration.

  3. Répétez les étapes précédentes sur chaque équipement Junos sur lequel l’application cliente établit des sessions NETCONF à l’aide de l’authentification par mot de passe.

Configurer l’authentification basée sur les clés

Si le client NETCONF utilise l’authentification basée sur les clés, générez d’abord la paire de clés SSH de l’utilisateur sur le serveur de gestion de la configuration. Configurez ensuite la clé publique sous le compte utilisateur correspondant sur l’équipement Junos.

Pour configurer l’authentification basée sur les clés pour le client NETCONF :

  1. Générez la paire de clés SSH pour l’utilisateur donné.

    Sur le système de gestion du réseau, exécutez la ssh-keygen commande et fournissez les arguments appropriés.

    Par exemple :

    Par défaut, la ssh-keygen commande stocke les clés publiques et privées dans des fichiers du sous-répertoire .ssh du répertoire personnel de l’utilisateur ; le nom de fichier dépend de l’encodage et de la version SSH. Consultez la page du ssh-keygen manuel pour plus d’informations sur les options de commande.
  2. Sur l’équipement Junos, associez la clé publique au compte de connexion Junos de cet utilisateur.

    Junos OS copie le contenu du fichier spécifié sur l’équipement exécutant Junos OS. URL est le chemin d’accès au fichier qui contient une ou plusieurs clés publiques. Pour plus d’informations sur la spécification d’URL, consultez le Guide de l’utilisateur de la ligne de CLI.

    Remarque :

    Vous pouvez également configurer la clé publique en incluant l’instruction ssh-rsa ou l’instruction équivalente au niveau de la [edit system login user username authentication] hiérarchie.

  3. Validez la configuration.

  4. Répétez les étapes de configuration de la clé publique sur chaque équipement Junos sur lequel l’application cliente établit une session NETCONF.

Lors de l’initialisation de la connexion SSH, le client peut authentifier l’identité du serveur NETCONF à l’aide de la clé publique du serveur. Vous pouvez installer la clé publique du serveur sur le système de gestion du réseau ou la transmettre lors de l’initialisation de la session.

Configurer l’authentification basée sur les certificats

NETCONF Call Home prend en charge l’utilisation de certificats SSH pour l’authentification. Un certificat SSH comprend une clé publique SSH qui a été signée par une autorité de certification (AC). Une clé privée de l’AC (clé de signature) signe la clé publique de l’hôte pour générer le certificat de l’hôte. De même, une clé privée de l’AC signe la clé publique de l’utilisateur pour générer le certificat de l’utilisateur. Le certificat d’hôte authentifie l’hôte auprès des utilisateurs, et le certificat d’utilisateur authentifie l’utilisateur auprès des hôtes.

Vous pouvez utiliser OpenSSH pour créer des certificats SSH et l’infrastructure d’AC associée. Le certificat OpenSSH spécifie une clé publique, des informations d’identité et des contraintes de validité. Pour utiliser des certificats SSH pour l’authentification, vous devez :

  • Créez les autorités de certification et générez les clés de signature de l’AC.

  • Générez la paire de clés SSH de l’utilisateur.

  • Générez les certificats utilisateur et hôte à l’aide de la clé privée de l’AC pour signer la clé publique de l’utilisateur et la clé publique de l’hôte.

  • Configurez la clé publique de l’AC comme approuvée sur l’équipement Junos et le système de gestion du réseau.

  • Configurez les principaux autorisés sur l’équipement Junos.

Par défaut, les certificats générés sont valides pour tous les utilisateurs. Pour limiter le certificat utilisateur à un ensemble spécifique d’utilisateurs (mandataires), vous devez spécifier les principaux autorisés lorsque vous générez le certificat. Les équipements Junos nécessitent des certificats qui spécifient un ou plusieurs mandataires autorisés. Vous devez également configurer la liste des principaux autorisés sur l’équipement Junos. Si un principal autorisé configuré sur l’appareil correspond à un principal autorisé dans le certificat, l’appareil authentifie le certificat. L’utilisateur qui se connecte est autorisé même s’il n’est pas explicitement configuré en tant que principal autorisé dans le certificat ou sur l’appareil.

Pour configurer l’authentification basée sur les certificats, procédez comme suit :

Générer les autorités de certification
  1. Sur n’importe quel système Linux/FreeBSD, générez les clés de signature de l’autorité de certification.

    Par exemple, les commandes suivantes créent des clés de signature AC distinctes pour signer les certificats utilisateur et hôte.

  2. Configurez le système de gestion du réseau pour qu’il approuve l’AC hôte.

    Copiez le contenu de l’hôte AC clé publique et ajoutez-le au fichier SSH global ou au fichier SSH de l’utilisateur pour le marquer comme AC approuvé. Dans l’exemple suivant, nous copions l’hôte AC le contenu de la clé publique et l’ajoutons @cert-authority * host-ca-public-key au fichier known_hosts de l’utilisateur.

    Remarque :

    Le NMS utilise la clé publique de l’AC hôte pour vérifier le certificat de l’hôte. Pour approuver le certificat uniquement pour des hôtes ou des domaines spécifiques, remplacez le caractère générique (*) par les noms d’hôte ou de domaine appropriés.

  3. Copiez la clé publique de l’AC utilisateur sur l’équipement Junos.

    Par exemple :

  4. Sur l’équipement Junos, configurez la clé publique de l’AC utilisateur en tant que clé d’AC approuvée.

    L’exemple suivant ajoute la clé publique AC stockée dans le fichier user_ca.pub en tant qu’utilisateur approuvé AC clé.

    Lorsque vous configurez cette instruction, l’appareil ajoute l’utilisateur AC clé publique au fichier /var/etc/ssh_trusted_user_ca.pub . L’appareil Junos utilise la clé publique de l’utilisateur AC pour vérifier le certificat utilisateur lors de l’établissement de la session SSH.

Générer le certificat utilisateur

Pour générer le certificat SSH pour le client NETCONF :

  1. Sur le NMS client, générez une paire de clés SSH pour l’utilisateur.

    Par exemple :

  2. Copiez la clé publique de l’utilisateur sur le serveur d’AC qui possède les clés de signature de l’AC, si les périphériques sont différents.

  3. Générez le certificat utilisateur.

    Utilisez la clé privée de l’AC utilisateur pour signer la clé publique de l’utilisateur et spécifiez la liste des mandataires autorisés (utilisateurs) qui peuvent accéder à l’équipement Junos à l’aide de ce certificat.

    La commande suivante utilise la clé privée AC stockée dans user_ca pour signer la clé publique de l’utilisateur stockée dans id_rsa.pub. Le certificat est valable pour deux principaux : lab et netconf-user.

  4. Vérifiez que le certificat utilisateur est bien créé.

    Pour l’étape précédente, la commande crée le fichier id_rsa-cert.pub .

  5. Copiez le certificat utilisateur dans le système de gestion du réseau, si les appareils sont différents.

  6. Assurez-vous que le propriétaire et les autorisations du fichier de certificat utilisateur sont corrects.

  7. Ajoutez la clé SSH et les identités de certificat à l’application ssh-agent, si elles ne sont pas ajoutées automatiquement. Par exemple :

Générer le certificat d’hôte

Le périphérique Junos stocke les clés SSH dans le répertoire /etc/ssh . Pour générer le certificat hôte, copiez d’abord la clé publique de l’hôte sur le serveur de l’AC, puis utilisez la clé privée de l’AC hôte pour signer la clé publique de l’hôte.

  1. Sur l’équipement Junos, vérifiez les clés publiques de l’hôte.

  2. Copiez la clé publique de l’équipement Junos sur le serveur d’AC qui possède les clés de signature de l’AC.

  3. Générez le certificat hôte.

    Utilisez la clé privée de l’AC hôte pour signer la clé publique de l’hôte et spécifiez l’option -h permettant de créer un certificat d’hôte.

    La commande suivante utilise la clé privée AC stockée dans host_ca pour signer la clé publique de l’hôte stockée dans ssh_host_rsa_key.pub.

  4. Vérifiez que le certificat d’hôte est bien créé.

    Pour l’étape précédente, la commande crée le fichier ssh_host_rsa_key-cert.pub .

  5. Copiez le certificat d’hôte sur l’équipement Junos.

    Par exemple :

  6. Sur l’équipement Junos, configurez le certificat d’hôte.

    Lorsque vous configurez cette instruction, le périphérique ajoute le certificat hôte au fichier /var/etc/ssh_host_ca.pub .

Configuration des principaux autorisés

Les certificats utilisateur peuvent être liés à des utilisateurs spécifiques, ou à des mandataires. Les équipements Junos nécessitent que le certificat utilisateur spécifie un ou plusieurs mandataires autorisés. Vous devez également configurer des mandataires autorisés sur l’équipement Junos. L’équipement Junos authentifie le certificat si au moins un des principaux autorisés configurés sur l’équipement correspond à un principal autorisé dans le certificat.

Vous pouvez configurer la liste des mandataires autorisés à l’aide de plusieurs méthodes. Vous pouvez charger un fichier contenant la liste des mandataires autorisés, chacun sur une ligne distincte. Vous pouvez également configurer la liste des principaux autorisés directement dans la configuration.

Pour configurer les principaux autorisés :

  1. (Facultatif) Créez le fichier des principaux autorisés et copiez-le sur l’équipement Junos.

  2. Configurez les principaux autorisés qui peuvent accéder au système à l’aide de certificats SSH.

    • Pour charger un fichier contenant les principaux autorisés, configurez l’instruction authorized-principals-file et spécifiez le chemin d’accès au fichier à charger.

      Par exemple :

    • Pour configurer un ou plusieurs principaux autorisés directement dans la configuration, utilisez l’instruction authorized-principals et spécifiez un nom de principal ou une liste de noms de principal.

      Par exemple :

  3. Validez la configuration.

    Lorsque vous configurez des mandataires autorisés, l’appareil ajoute la liste des principaux autorisés au fichier /var/etc/ssh_authorized_principals .

Activer le service NETCONF

Pour configurer le service NETCONF pour NETCONF Call Home sur l’équipement Junos :
  1. Activez le service NETCONF sur le port NETCONF par défaut (830) ou sur un port défini par l’utilisateur.
    • Pour utiliser le port NETCONF par défaut (830), ne spécifiez pas de numéro de port.

    • Pour utiliser un port spécifique, configurez le numéro de port.

      Le port peut être compris entre 1 et 65535, mais évitez de configurer l’accès sur un port normalement affecté à un autre service.

  2. Configurez des sessions NETCONF conformes à la RFC.
  3. Configurez des sessions NETCONF conformes à YANG.
  4. Validez la configuration :

Configurer le périphérique Junos pour qu’il se connecte au client d’accueil d’appel NETCONF

Dans un scénario d’appel NETCONF, les rôles du serveur et du client TCP sont inversés. Vous configurez l’équipement Junos pour initier, établir et maintenir une connexion avec un ensemble prédéfini de systèmes de gestion réseau. L’appel NETCONF utilise SSH sortant pour se connecter aux clients NETCONF spécifiés.

Avant de commencer :

  • Si vous utilisez des certificats SSH pour l’authentification, configurez les certificats de l’AC utilisateur, le certificat hôte et les principaux autorisés.

Remarque :

La configuration du client d’appel NETCONF enregistre la configuration du certificat SSH au moment où vous validez la configuration du client. Vous devez configurer le certificat hôte et au moins un certificat d’AC utilisateur et un principal autorisé au moment où vous validez la configuration du client. Si vous ajoutez ces valeurs initiales ultérieurement, vous devez désactiver et valider la configuration client, puis activer et valider la configuration client pour que les valeurs prennent effet. Si les valeurs initiales sont configurées lors de la première activation de la configuration client, la configuration client enregistrera automatiquement toutes les mises à jour des valeurs existantes.

Pour configurer un client Call Home NETCONF sur l’équipement Junos :

  1. Au niveau de la [edit system services ssh] hiérarchie, définissez la version SSH sur v2.
  2. Accédez à la hiérarchie des clients SSH sortants et définissez un identificateur qui identifie de manière unique le client d’appel NETCONF.

    Par exemple :

  3. Configurez le nom d’hôte ou l’adresse IPv4 ou IPv6 du client NETCONF. En outre, spécifiez le port sur lequel le client NETCONF (agissant comme serveur TCP) écoute les demandes de connexion.

    Par exemple :

  4. Définissez l’identificateur de périphérique, qui est une chaîne définie par l’utilisateur qui identifie le périphérique Junos au client pendant la séquence de lancement.

    Par exemple :

  5. Définissez la méthode utilisée pour rétablir une connexion SSH sortante déconnectée comme sticky ou in-order.
  6. Configurez le service NETCONF pour la session.
  7. (Facultatif) Configurez le périphérique Junos pour envoyer des messages keepalive au serveur de gestion.

    Par exemple, la configuration suivante envoie un signal keepalive toutes les 15 secondes (par défaut) et met fin à la connexion SSH après l’envoi de 3 messages (par défaut) qui ne reçoivent pas de réponse.

  8. (Facultatif) Configurez l’instruction secret si vous souhaitez transmettre la clé publique de l’appareil au serveur d’administration lors de l’initialisation de la session.

    Lorsque vous configurez cette instruction, l’appareil transmet sa clé publique ainsi qu’un hachage SHA1 dérivé en partie de l’instruction secret au serveur d’administration lors de l’initialisation de la session. L’application cliente peut utiliser le secret partagé et le hachage pour vérifier si la clé d’hôte présentée provient de l’appareil identifié par l’instruction device-id .

  9. Répétez les étapes précédentes pour chaque client Call Home NETCONF qui gérera l’équipement Junos.
  10. Validez la configuration.

Une fois que vous avez configuré l’appareil pour qu’il se connecte au client Call Home NETCONF et que vous avez validé la configuration, l’appareil tente d’initier une connexion TCP/IP avec le client. L’appareil continue d’établir cette connexion jusqu’à ce qu’il réussisse ou jusqu’à ce que la configuration du client d’appel NETCONF soit supprimée ou désactivée.

Chaque fois que l’équipement Junos établit une connexion SSH sortante, il envoie une séquence d’initiation qui identifie l’équipement au client. Dans cette transmission se trouve la valeur de device-id. Si vous ne configurez pas l’instruction secret , la séquence d’initiation est la suivante :

Si vous configurez l’instruction secret , la séquence de lancement inclut la clé publique de l’équipement Junos et un hachage SHA1 dérivé en partie de l’instruction secret . Le client peut calculer la valeur de hachage attendue et la comparer à la valeur HMAC pour vérifier que la clé d’hôte présentée provient de l’appareil identifié par l’instruction device-id .

Le client authentifie l’équipement Junos en validant la clé d’hôte ou le certificat présenté. De même, le serveur NETCONF authentifie le client. Le serveur vérifie d’abord l’authentification basée sur les certificats, puis l’authentification basée sur les clés, et enfin l’authentification basée sur les mots de passe. Une fois la session SSH établie, le client démarre la session NETCONF.