Établir une connexion SSH pour une session NETCONF
Comprendre les sessions NETCONF sur SSH
Vous pouvez utiliser le protocole SSH pour établir des connexions entre un serveur de gestion de la configuration (CMS) et un équipement Junos. Vous utilisez un serveur de gestion de la configuration pour gérer le périphérique Junos à distance.
Vous pouvez utiliser les options suivantes pour établir une connexion SSH entre le serveur de gestion de la configuration et le périphérique Junos.
-
SSH : le serveur de gestion de la configuration lance une session SSH avec le périphérique Junos.
-
SSH sortant : le périphérique Junos initie, établit et maintient une connexion SSH avec un ensemble prédéfini de serveurs de gestion de la configuration. Utilisez cette option lorsque le serveur de gestion de la configuration ne peut pas établir de connexion SSH en raison de restrictions réseau (telles qu’un pare-feu).
Junos OS inclut une implémentation personnalisée d’OpenSSH pour la gestion des périphériques. Les correctifs de sécurité sont rétroportés selon les besoins, indépendamment des numéros de version d’OpenSSH. La version affichée dans la sortie CLI (par exemple, show version) peut ne pas refléter tous les correctifs appliqués. Référez-vous toujours aux avis de sécurité de Juniper (JSA) pour obtenir des évaluations de l’impact des vulnérabilités.
Conditions préalables courantes pour les sessions NETCONF sur SSH ou SSH sortant
Pour les sessions NETCONF qui utilisent SSH ou SSH sortant, vous devez installer le logiciel SSH sur le serveur de gestion de la configuration et activer le service NETCONF sur le périphérique Junos. Reportez-vous aux sections suivantes pour obtenir des instructions détaillées :
- Installer le logiciel SSH sur le serveur de gestion de la configuration
- Activer le service NETCONF sur SSH
Installer le logiciel SSH sur le serveur de gestion de la configuration
Pour les connexions SSH, le serveur de gestion de la configuration (CMS) gère la connexion SSH avec le périphérique Junos. Pour les connexions SSH sortantes, le périphérique Junos établit la connexion SSH au serveur de gestion de la configuration, puis le serveur de gestion de la configuration prend le contrôle de la session SSH.
Pour établir une connexion SSH ou SSH sortante avec un périphérique, le logiciel SSH doit être installé localement sur le serveur de gestion de la configuration. Pour plus d’informations sur l’obtention et l’installation du logiciel SSH, voir :
Activer le service NETCONF sur SSH
Pour établir des sessions NETCONF sur un équipement Junos, vous devez activer le service NETCONF. Vous pouvez configurer le serveur NETCONF pour qu’il accepte les sessions NETCONF sur les ports suivants :
-
Port NETCONF par défaut (830) ou port défini par l’utilisateur
-
Port SSH par défaut (22)
Nous vous recommandons d’utiliser le port NETCONF par défaut, car il permet à l’appareil d’identifier et de filtrer plus efficacement le trafic NETCONF. Vous pouvez également configurer l’appareil pour qu’il accepte les sessions NETCONF sur le numéro de port de votre choix au lieu du port NETCONF par défaut. Le port défini n’accepte que les sessions NETCONF-over-SSH et rejette les requêtes de session SSH normales.
Si vous activez NETCONF et que vous activez également les services SSH sur l’appareil, celui-ci accepte les sessions NETCONF à la fois sur le port SSH par défaut et sur le port NETCONF configuré (port par défaut ou port défini par l’utilisateur). Pour plus de sécurité, vous pouvez configurer des stratégies d’événements qui utilisent UI_LOGIN_EVENT les informations pour empêcher efficacement le port SSH d’accepter des sessions NETCONF ou pour restreindre davantage l’accès du serveur NETCONF sur un port.
Pour activer le service NETCONF via SSH sur un équipement Junos :
-
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), incluez l’instruction au
netconf sshniveau de la[edit system services]hiérarchie :[edit system services] user@host# set netconf ssh
-
Pour utiliser un port spécifique, configurez l’instruction
portavec le numéro de port au niveau de la[edit system services netconf ssh]hiérarchie.[edit system services] user@host# set netconf ssh port port-number
La
port-numberboîte va de 1 à 65535. Le port configuré n’accepte que les sessions NETCONF-over-SSH et rejette les demandes de session SSH normales.Note:Bien que vous puissiez configurer NETCONF sur n’importe quel port compris entre 1 et 65535, vous ne devez pas configurer l’accès sur un port normalement affecté à un autre service. Cette pratique permet d’éviter les conflits de ressources potentiels. Si vous configurez un port attribué à un autre service, tel que FTP, et que ce service est activé, un ne révèle pas de conflit de ressources et n’émet
commit checkaucun message d’avertissement.
-
-
(Facultatif) Pour permettre également l’accès au sous-système SSH NETCONF à l’aide du port SSH par défaut (22), incluez l’instruction
sshau niveau de la[edit system services]hiérarchie.[edit system services] user@host# set ssh
Cette configuration permet à tous les utilisateurs et applications d’accéder SSH à l’appareil.
Note:Dans les versions dont le comportement par défaut est d’empêcher l’utilisateur root d’utiliser le service SSH, vous devez configurer l’instruction
root-login allowau niveau de la[edit system services ssh]hiérarchie pour permettre à l’utilisateur root d’ouvrir des sessions NETCONF via SSH. (Facultatif) Configurez l’appareil pour qu’il déconnecte les clients NETCONF qui ne répondent pas.
Spécifiez l’intervalle de délai d’attente (en secondes) après lequel, si aucune donnée n’a été reçue du client, le processus sshd demande une réponse. En outre, spécifiez le seuil de réponses client-alive manquées qui déclenche une déconnexion.
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
Note:Les instructions configurées au niveau de la
[edit system services netconf ssh]hiérarchie s’appliquent uniquement aux sessions NETCONF qui se connectent via le port par défaut (830) ou via le port défini par l’utilisateur configuré au même niveau hiérarchique.-
Validez la configuration :
[edit] user@host# commit
-
Répétez les étapes précédentes sur chaque équipement Junos sur lequel l’application cliente établit des sessions NETCONF.
Conditions préalables à l’établissement d’une connexion SSH pour les sessions NETCONF
Avant que le serveur de gestion de la configuration puisse établir une connexion SSH avec un périphérique Junos, vous devez satisfaire aux exigences communes décrites dans :
Vous devez également satisfaire aux exigences décrites dans les sections suivantes :
- Configurer un compte d’utilisateur pour l’application cliente sur les équipements Junos
- Configurer une paire de clés publique/privée ou un mot de passe pour le compte d’utilisateur Junos OS
- Accéder aux clés ou au mot de passe avec l’application cliente
Configurer un compte d’utilisateur pour l’application cliente sur les équipements Junos
Le serveur de gestion de la configuration doit se connecter à l’équipement Junos pour établir une session NETCONF. Ainsi, le serveur de gestion de la configuration a besoin d’un compte utilisateur sur chaque périphérique sur lequel il établit une session NETCONF. Les instructions suivantes expliquent comment créer un compte d’utilisateur local sur les équipements Junos. Vous pouvez également ignorer cette section et activer l’authentification via RADIUS ou TACACS+.
Pour créer un compte d’utilisateur local :
Configurer une paire de clés publique/privée ou un mot de passe pour le compte d’utilisateur Junos OS
Pour s’authentifier auprès du serveur NETCONF, le serveur de gestion de la configuration a besoin d’une paire de clés publique/privée SSH, d’un mot de passe textuel ou des deux. Une paire de clés est suffisante si le compte est utilisé uniquement pour se connecter au serveur NETCONF via SSH. Si le compte est également utilisé pour accéder à l’appareil d’une autre manière (pour se connecter à la console, par exemple), il doit disposer d’un mot de passe textuel. Le mot de passe est également utilisé (le serveur SSH le demande) si l’authentification par clé est configurée mais échoue.
Vous pouvez ignorer cette section si vous avez choisi d’activer l’authentification via RADIUS ou TACACS+.
Pour créer un mot de passe textuel :
Pour créer une paire de clés publique/privée SSH, effectuez les opérations suivantes :
Sur le serveur de gestion de la configuration sur lequel s’exécute l’application cliente, exécutez la
ssh-keygencommande dans l’interpréteur de commandes standard et fournissez les arguments appropriés.user@cms:~$ ssh-keygen options
Par exemple:
netconf-user@cms:~$ ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/netconf-user/.ssh/id_rsa): Created directory '/home/netconf-user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/netconf-user/.ssh/id_rsa Your public key has been saved in /home/netconf-user/.ssh/id_rsa.pub ...
Pour plus d’informations sur
ssh-keygenles options, reportez-vous à la page de manuel de lassh-keygencommande.Associez la clé publique au compte de connexion Junos OS.
[edit system login user username authentication] user@host# set load-key-file URL
Junos OS copie le contenu du fichier spécifié sur le périphérique. URL est le chemin d’accès au fichier contenant une ou plusieurs clés publiques. Par défaut, la
ssh-keygencommande stocke chaque clé publique dans un fichier situé dans le sous-répertoire .ssh du répertoire personnel de l’utilisateur ; le nom du fichier dépend de l’encodage et de la version SSH. Pour plus d’informations sur la spécification des URL, reportez-vous au Guide de l’utilisateur de l’interface de ligne de commande.Note:Vous pouvez également inclure l’instruction
ssh-rsaau niveau de la[edit system login user account-name authentication]hiérarchie. Nous vous recommandons toutefois d’utiliser l’instructionload-key-file, car elle élimine le besoin de taper ou de copier-coller la clé publique sur la ligne de commande.Validez la configuration.
[edit] user@host# commit
Répétez les étapes 2 et 3 sur chaque équipement Junos sur lequel l’application cliente établit des sessions NETCONF.
Accéder aux clés ou au mot de passe avec l’application cliente
L’application cliente doit être en mesure d’accéder à la paire de clés ou au mot de passe configuré et de le fournir lorsque le serveur NETCONF le demande.
Il existe plusieurs méthodes pour permettre à l’application d’accéder à la clé ou au mot de passe :
-
Si des clés publiques/privées sont utilisées, le programme ssh-agent s’exécute sur l’appareil sur lequel s’exécute l’application cliente et gère la clé privée.
-
Lorsqu’un utilisateur démarre l’application, celle-ci lui demande le mot de passe et le stocke temporairement de manière sécurisée.
-
Le mot de passe est stocké sous forme cryptée dans un emplacement de disque local sécurisé ou dans une base de données sécurisée.
Conditions préalables à l’établissement d’une connexion SSH sortante pour les sessions NETCONF
Pour permettre à un serveur de gestion de la configuration d’établir une connexion SSH sortante vers le serveur NETCONF, vous devez satisfaire aux exigences communes décrites dans :
Vous devez également satisfaire aux exigences décrites dans les sections suivantes :
- Configurer l’équipement Junos pour le SSH sortant
- Réception et gestion de la séquence d’initiation SSH sortante sur le client
Configurer l’équipement Junos pour le SSH sortant
Pour configurer l’équipement Junos pour le SSH sortant :
Réception et gestion de la séquence d’initiation SSH sortante sur le client
Lorsque vous configurez un équipement Junos pour le SSH sortant, le périphérique tente de maintenir une connexion constante avec un serveur de gestion de la configuration. Lorsqu’une session SSH sortante n’est pas établie, l’appareil envoie une séquence d’initiation SSH sortante à un serveur de gestion de la configuration répertorié dans la liste des serveurs de gestion de la configuration de l’appareil. Avant d’établir une connexion avec l’appareil, chaque serveur de gestion de la configuration doit être configuré pour recevoir cette séquence d’initiation, établir une connexion TCP avec l’appareil et transmettre l’identité de l’appareil à l’appareil.
La séquence d'initiation prend l'une des deux formes suivantes, selon la façon dont vous avez choisi de gérer la clé publique du serveur Junos OS.
Si la clé publique est installée manuellement sur le serveur de gestion de la configuration, la séquence de lancement prend la forme suivante :
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
Si l’équipement transmet la clé publique au serveur de gestion de la configuration au cours de la séquence d’initialisation, celle-ci prend la forme suivante :
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: : <device-id>\r\n HOST-KEY: <pub-host-key>\r\n HMAC: <HMAC(pub-SSH-host-key,<secret>)>\r\n
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’explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.