Établissement d’une connexion SSH pour une session NETCONF
Établissement d’une connexion SSH pour une session NETCONF
Vous pouvez utiliser le protocole SSH pour établir des connexions entre un serveur de gestion de la configuration et un équipement Junos. Vous utilisez un serveur de gestion de la configuration pour configurer 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 : 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). Dans ce cas, vous configurez le périphérique Junos pour qu’il initie, établisse et maintienne une connexion SSH avec un ensemble prédéfini de serveurs de gestion de la configuration.
Conditions préalables à l’établissement d’une connexion SSH pour les sessions NETCONF
Avant que le serveur de gestion de la configuration n’établisse une connexion SSH avec un périphérique Junos, vous devez satisfaire aux exigences décrites dans les sections suivantes.
- Installer le logiciel SSH sur le serveur de gestion de la configuration
- Activer le service NETCONF sur SSH
- Configurer un compte d’utilisateur pour l’application cliente sur les équipements Junos
- Configuration d’une paire de clés publique/privée ou d’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
Installer le logiciel SSH sur le serveur de gestion de la configuration
Le serveur de gestion de la configuration gère la connexion SSH avec le périphérique Junos. Par conséquent, 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, reportez-vous à http://www.ssh.com et http://www.openssh.com.
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 facilement le trafic NETCONF. Vous pouvez également configurer le périphérique pour qu’il accepte les sessions NETCONF sur un port spécifique au lieu du port NETCONF par défaut. Le port défini n’accepte que les sessions NETCONF-over-SSH et rejette les demandes de session SSH normales. Si vous activez également les services SSH sur le serveur, l’appareil accepte les sessions NETCONF à la fois sur le port SSH par défaut et sur le port NETCONF configuré (port par défaut ou 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 désactiver efficacement le port par défaut ou restreindre davantage l’accès du serveur NETCONF sur un port.
Pour activer le service NETCONF sur 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
netconf ssh
au niveau de la[edit system services]
hiérarchie :[edit system services] user@host# set netconf ssh
-
Pour utiliser un port spécifique, configurez l’instruction
port
avec le numéro de port souhaité au niveau de la hiérarchie [edit system services netconf ssh
].[edit system services] user@host# set netconf ssh port port-number
La
port-number
boîte peut aller 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 les sessions NETCONF-over-SSH puissent être configurées sur n’importe quel port compris entre 1 et 65535, vous devez éviter de configurer l’accès sur un port normalement attribué à un autre service. Cette pratique permet d’éviter les conflits de ressources potentiels. Si vous configurez un port affecté à un autre service, tel que FTP, et que ce service est activé, a ne révèle pas de conflit de
commit check
ressources et n’émet aucun message d’avertissement à cet effet.
-
-
(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
ssh
au 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 où le comportement par défaut est d’empêcher l’utilisateur racine d’utiliser le service SSH, vous devez configurer l’instruction au niveau de la
[edit system services ssh]
hiérarchie pour permettre à l’utilisateur racine d’ouvrirroot-login allow
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’expiration (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 exécutant Junos OS sur lequel l’application cliente établit des sessions NETCONF.
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 d’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 :
Configuration d’une paire de clés publique/privée ou d’un mot de passe pour le compte d’utilisateur Junos OS
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 avant de pouvoir s’authentifier auprès du serveur NETCONF. Une paire de clés publique/privée 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 avoir 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-keygen
commande dans l’interpréteur de commandes standard et fournissez les arguments appropriés.% ssh-keygen options
Pour plus d’informations sur
ssh-keygen
les options, reportez-vous à la page de manuel de lassh-keygen
commande.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 exécutant Junos OS. URL est le chemin d’accès au fichier contenant une ou plusieurs clés publiques. Par défaut, la commande 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
ssh-keygen
version SSH. Pour plus d’informations sur la spécification d’URL, consultez le Guide de l’utilisateur de l’interface de ligne de commande.Note:Vous pouvez également inclure l’instruction
ssh-rsa
au niveau de la[edit system login user account-name authentication]
hiérarchie. Toutefois, nous vous recommandons d’utiliser cetteload-key-file
instruction, 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 périphérique 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 aux clés publiques/privées ou au mot de passe configurés et de les fournir lorsque le serveur NETCONF vous 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 l’application cliente s’exécute 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 au serveur NETCONF, vous devez satisfaire aux exigences décrites dans les sections suivantes :
- Installer le logiciel SSH sur le client
- Activer le service NETCONF sur SSH
- Configurer l’équipement Junos pour le SSH sortant
- Réception et gestion de la séquence d’initiation SSH sortante sur le client
Installer le logiciel SSH sur le client
Une fois que l’appareil a établi la connexion SSH au serveur de gestion de la configuration, le serveur de gestion de la configuration prend le contrôle de la session SSH. Par conséquent, le logiciel client 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, reportez-vous aux sections http://www.ssh.com/ et http://www.openssh.com/ .
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 facilement le trafic NETCONF. Vous pouvez également configurer le périphérique pour qu’il accepte les sessions NETCONF sur un port spécifique au lieu du port NETCONF par défaut. Le port défini n’accepte que les sessions NETCONF-over-SSH et rejette les demandes de session SSH normales. Si vous activez également les services SSH sur le serveur, l’appareil accepte les sessions NETCONF à la fois sur le port SSH par défaut et sur le port NETCONF configuré (port par défaut ou 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 désactiver efficacement le port par défaut ou restreindre davantage l’accès du serveur NETCONF sur un port.
Pour activer le service NETCONF sur 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
netconf ssh
au niveau de la[edit system services]
hiérarchie :[edit system services] user@host# set netconf ssh
-
Pour utiliser un port spécifique, configurez l’instruction
port
avec le numéro de port souhaité au niveau de la hiérarchie [edit system services netconf ssh
].[edit system services] user@host# set netconf ssh port port-number
La
port-number
boîte peut aller 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 les sessions NETCONF-over-SSH puissent être configurées sur n’importe quel port compris entre 1 et 65535, vous devez éviter de configurer l’accès sur un port normalement attribué à un autre service. Cette pratique permet d’éviter les conflits de ressources potentiels. Si vous configurez un port affecté à un autre service, tel que FTP, et que ce service est activé, a ne révèle pas de conflit de
commit check
ressources et n’émet aucun message d’avertissement à cet effet.
-
-
(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
ssh
au 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 où le comportement par défaut est d’empêcher l’utilisateur racine d’utiliser le service SSH, vous devez configurer l’instruction au niveau de la
[edit system services ssh]
hiérarchie pour permettre à l’utilisateur racine d’ouvrirroot-login allow
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’expiration (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 exécutant Junos OS sur lequel l’application cliente établit des sessions NETCONF.
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
Lorsqu’il est configuré pour le SSH sortant, le périphérique Junos 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’équipement, chaque serveur de gestion de la configuration doit être configuré pour recevoir cette séquence d’initiation, établir une connexion TCP avec l’équipement et transmettre l’identité de l’équipement à 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 d’initiation se présente comme suit :
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
Si la clé publique est transmise au serveur de gestion de la configuration par l’appareil 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 plate-forme 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.