Establecer una conexión SSH para una sesión NETCONF
Establecer una conexión SSH para una sesión NETCONF
Puede utilizar el protocolo SSH para establecer conexiones entre un servidor de administración de configuración y un dispositivo Junos. Utilice un servidor de administración de configuración para configurar el dispositivo Junos de forma remota.
Puede utilizar las siguientes opciones para establecer una conexión SSH entre el servidor de administración de configuración y el dispositivo Junos.
-
SSH: el servidor de administración de configuración inicia una sesión SSH con el dispositivo Junos.
-
SSH saliente: utilice esta opción cuando el servidor de administración de configuración no pueda iniciar una conexión SSH debido a restricciones de red (como un firewall). En esta situación, configure el dispositivo Junos para iniciar, establecer y mantener una conexión SSH con un conjunto predefinido de servidores de administración de configuración.
Requisitos previos para establecer una conexión SSH para sesiones de NETCONF
Antes de que el servidor de administración de configuración establezca una conexión SSH con un dispositivo Junos, debe cumplir los requisitos descritos en las secciones siguientes.
- Instalar software SSH en el servidor de administración de configuración
- Habilitar el servicio NETCONF a través de SSH
- Configurar una cuenta de usuario para la aplicación cliente en dispositivos Junos
- Configurar un par de claves pública y privada o una contraseña para la cuenta de usuario de Junos OS
- Acceda a las claves o contraseña con la aplicación cliente
Instalar software SSH en el servidor de administración de configuración
El servidor de administración de configuración controla la conexión SSH con el dispositivo Junos. Por lo tanto, el software SSH debe instalarse localmente en el servidor de administración de configuración. Para obtener información acerca de cómo obtener e instalar software SSH, consulte http://www.ssh.com y http://www.openssh.com.
Habilitar el servicio NETCONF a través de SSH
Para establecer sesiones de NETCONF en un dispositivo Junos, debe habilitar el servicio NETCONF. Puede configurar el servidor NETCONF para aceptar sesiones de NETCONF en los siguientes puertos:
-
Puerto NETCONF predeterminado (830) o un puerto definido por el usuario
-
Puerto SSH predeterminado (22)
Le recomendamos que utilice el puerto NETCONF predeterminado porque permite que el dispositivo identifique y filtre fácilmente el tráfico de NETCONF. Como alternativa, puede configurar el dispositivo para que acepte sesiones de NETCONF en un puerto específico en lugar del puerto NETCONF predeterminado. El puerto definido solo acepta sesiones NETCONF a través de SSH y rechaza las solicitudes de sesión SSH regulares. Si también habilita los servicios SSH en el servidor, el dispositivo acepta sesiones de NETCONF tanto en el puerto SSH predeterminado como en el puerto NETCONF configurado (puerto predeterminado o definido por el usuario). Para mayor seguridad, puede configurar políticas de eventos que utilicen UI_LOGIN_EVENT
información para deshabilitar eficazmente el puerto predeterminado o restringir aún más el acceso al servidor NETCONF en un puerto.
Para habilitar el servicio NETCONF a través de SSH en un dispositivo Junos:
-
Habilite el servicio NETCONF en el puerto NETCONF predeterminado (830) o en un puerto definido por el usuario:
-
Para utilizar el puerto NETCONF predeterminado (830), incluya la
netconf ssh
instrucción en el nivel de[edit system services]
jerarquía:[edit system services] user@host# set netconf ssh
-
Para utilizar un puerto específico, configure la
port
instrucción con el número de puerto deseado en el nivel de jerarquía [edit system services netconf ssh
].[edit system services] user@host# set netconf ssh port port-number
La
port-number
lata varía de 1 a 65535. El puerto configurado solo acepta sesiones NETCONF a través de SSH y rechaza las solicitudes de sesión SSH regulares.Nota:Aunque las sesiones de NETCONF-over-SSH se pueden configurar en cualquier puerto del 1 al 65535, debe evitar configurar el acceso en un puerto que normalmente está asignado para otro servicio. Esta práctica evita posibles conflictos de recursos. Si configura un puerto asignado para otro servicio, como FTP, y ese servicio está habilitado, a no revela un
commit check
conflicto de recursos ni emite ningún mensaje de advertencia a tal efecto.
-
-
(Opcional) Para habilitar también el acceso al subsistema SSH de NETCONF mediante el puerto SSH predeterminado (22), incluya la
ssh
instrucción en el nivel de[edit system services]
jerarquía.[edit system services] user@host# set ssh
Esta configuración permite el acceso SSH al dispositivo para todos los usuarios y aplicaciones.
Nota:En las versiones en las que el comportamiento predeterminado es restringir el uso del servicio SSH por parte del usuario raíz, debe configurar la
root-login allow
instrucción en el nivel de jerarquía para permitir que el[edit system services ssh]
usuario raíz abra sesiones de NETCONF a través de SSH. (Opcional) Configure el dispositivo para desconectar los clientes NETCONF que no responden.
Especifique el intervalo de tiempo de espera (en segundos) después del cual, si no se han recibido datos del cliente, el proceso sshd solicita una respuesta. Además, especifique el umbral de respuestas vivas del cliente perdidas que desencadenan una desconexión.
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
Nota:Las instrucciones configuradas en el nivel de jerarquía sólo se aplican a las sesiones de NETCONF que se conectan a través del puerto predeterminado (830) o a través del puerto definido por el usuario que está configurado en el mismo nivel de
[edit system services netconf ssh]
jerarquía.-
Confirme la configuración:
[edit] user@host# commit
-
Repita los pasos anteriores en cada dispositivo que ejecute Junos OS donde la aplicación cliente establezca sesiones de NETCONF.
Configurar una cuenta de usuario para la aplicación cliente en dispositivos Junos
El servidor de administración de configuración debe iniciar sesión en el dispositivo Junos para establecer una sesión de NETCONF. Por lo tanto, el servidor de administración de configuración necesita una cuenta de usuario en cada dispositivo donde establece una sesión NETCONF. Las siguientes instrucciones explican cómo crear una cuenta de usuario local en dispositivos Junos. Alternativamente, puede omitir esta sección y habilitar la autenticación a través de RADIUS o TACACS+.
Para crear una cuenta de usuario local:
Configurar un par de claves pública y privada o una contraseña para la cuenta de usuario de Junos OS
El servidor de administración de configuración necesita un par de claves pública y privada SSH, una contraseña basada en texto o ambas para poder autenticarse con el servidor NETCONF. Un par de claves pública/privada es suficiente si la cuenta se usa solo para conectarse al servidor NETCONF a través de SSH. Si la cuenta también se utiliza para acceder al dispositivo de otras maneras (para iniciar sesión en la consola, por ejemplo), debe tener una contraseña basada en texto. La contraseña también se utiliza (el servidor SSH la solicita) si la autenticación basada en claves está configurada pero falla.
Puede omitir esta sección si ha elegido habilitar la autenticación a través de RADIUS o TACACS+.
Para crear una contraseña basada en texto:
Para crear un par de claves pública y privada SSH, realice los pasos siguientes:
En el servidor de administración de configuración donde se ejecuta la aplicación cliente, emita el comando en el
ssh-keygen
shell de comandos estándar y proporcione los argumentos adecuados.% ssh-keygen options
Para obtener más información acerca
ssh-keygen
de las opciones, consulte la página del manual delssh-keygen
comando.Asocie la clave pública con la cuenta de inicio de sesión de Junos OS.
[edit system login user username authentication] user@host# set load-key-file URL
Junos OS copia el contenido del archivo especificado en el dispositivo que ejecuta Junos OS. URL es la ruta de acceso al archivo que contiene una o varias claves públicas. El
ssh-keygen
comando almacena de forma predeterminada cada clave pública en un archivo en el subdirectorio . ssh del directorio principal del usuario; el nombre de archivo depende de la codificación y la versión SSH. Para obtener información acerca de cómo especificar URL, consulte la Guía del usuario de CLI.Nota:Como alternativa, puede incluir la
ssh-rsa
instrucción en el nivel jerárquico[edit system login user account-name authentication]
. Sin embargo, se recomienda usar la instrucción, ya que elimina la necesidad de escribir o cortar y pegar la clave pública en laload-key-file
línea de comandos.Confirme la configuración.
[edit] user@host# commit
Repita los pasos 2 y 3 en cada dispositivo Junos en el que la aplicación cliente establezca sesiones de NETCONF.
Acceda a las claves o contraseña con la aplicación cliente
La aplicación cliente debe poder tener acceso a las claves públicas o privadas configuradas o a la contraseña y proporcionarla cuando el servidor NETCONF la solicite.
Existen varios métodos para permitir que la aplicación acceda a la clave o contraseña:
Si se utilizan claves públicas/privadas, el programa ssh-agent se ejecuta en el dispositivo donde se ejecuta la aplicación cliente y controla la clave privada.
Cuando un usuario inicia la aplicación, la aplicación le pide la contraseña y la almacena temporalmente de forma segura.
La contraseña se almacena de forma cifrada en una ubicación de disco local segura o en una base de datos segura.
Requisitos previos para establecer una conexión SSH saliente para sesiones de NETCONF
Para permitir que un servidor de administración de configuración establezca una conexión SSH saliente con el servidor NETCONF, debe cumplir los requisitos descritos en las secciones siguientes:
- Instalar software SSH en el cliente
- Habilitar el servicio NETCONF a través de SSH
- Configurar el dispositivo Junos para SSH saliente
- Recibir y administrar la secuencia de iniciación SSH saliente en el cliente
Instalar software SSH en el cliente
Una vez que el dispositivo establece la conexión SSH con el servidor de administración de configuración, el servidor de administración de configuración toma el control de la sesión SSH. Por lo tanto, el software cliente SSH debe instalarse localmente en el servidor de administración de configuración. Para obtener información acerca de cómo obtener e instalar software SSH, consulte http://www.ssh.com/ y http://www.openssh.com/ .
Habilitar el servicio NETCONF a través de SSH
Para establecer sesiones de NETCONF en un dispositivo Junos, debe habilitar el servicio NETCONF. Puede configurar el servidor NETCONF para aceptar sesiones de NETCONF en los siguientes puertos:
-
Puerto NETCONF predeterminado (830) o un puerto definido por el usuario
-
Puerto SSH predeterminado (22)
Le recomendamos que utilice el puerto NETCONF predeterminado porque permite que el dispositivo identifique y filtre fácilmente el tráfico de NETCONF. Como alternativa, puede configurar el dispositivo para que acepte sesiones de NETCONF en un puerto específico en lugar del puerto NETCONF predeterminado. El puerto definido solo acepta sesiones NETCONF a través de SSH y rechaza las solicitudes de sesión SSH regulares. Si también habilita los servicios SSH en el servidor, el dispositivo acepta sesiones de NETCONF tanto en el puerto SSH predeterminado como en el puerto NETCONF configurado (puerto predeterminado o definido por el usuario). Para mayor seguridad, puede configurar políticas de eventos que utilicen UI_LOGIN_EVENT
información para deshabilitar eficazmente el puerto predeterminado o restringir aún más el acceso al servidor NETCONF en un puerto.
Para habilitar el servicio NETCONF a través de SSH en un dispositivo Junos:
-
Habilite el servicio NETCONF en el puerto NETCONF predeterminado (830) o en un puerto definido por el usuario:
-
Para utilizar el puerto NETCONF predeterminado (830), incluya la
netconf ssh
instrucción en el nivel de[edit system services]
jerarquía:[edit system services] user@host# set netconf ssh
-
Para utilizar un puerto específico, configure la
port
instrucción con el número de puerto deseado en el nivel de jerarquía [edit system services netconf ssh
].[edit system services] user@host# set netconf ssh port port-number
La
port-number
lata varía de 1 a 65535. El puerto configurado solo acepta sesiones NETCONF a través de SSH y rechaza las solicitudes de sesión SSH regulares.Nota:Aunque las sesiones de NETCONF-over-SSH se pueden configurar en cualquier puerto del 1 al 65535, debe evitar configurar el acceso en un puerto que normalmente está asignado para otro servicio. Esta práctica evita posibles conflictos de recursos. Si configura un puerto asignado para otro servicio, como FTP, y ese servicio está habilitado, a no revela un
commit check
conflicto de recursos ni emite ningún mensaje de advertencia a tal efecto.
-
-
(Opcional) Para habilitar también el acceso al subsistema SSH de NETCONF mediante el puerto SSH predeterminado (22), incluya la
ssh
instrucción en el nivel de[edit system services]
jerarquía.[edit system services] user@host# set ssh
Esta configuración permite el acceso SSH al dispositivo para todos los usuarios y aplicaciones.
Nota:En las versiones en las que el comportamiento predeterminado es restringir el uso del servicio SSH por parte del usuario raíz, debe configurar la
root-login allow
instrucción en el nivel de jerarquía para permitir que el[edit system services ssh]
usuario raíz abra sesiones de NETCONF a través de SSH. (Opcional) Configure el dispositivo para desconectar los clientes NETCONF que no responden.
Especifique el intervalo de tiempo de espera (en segundos) después del cual, si no se han recibido datos del cliente, el proceso sshd solicita una respuesta. Además, especifique el umbral de respuestas vivas del cliente perdidas que desencadenan una desconexión.
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
Nota:Las instrucciones configuradas en el nivel de jerarquía sólo se aplican a las sesiones de NETCONF que se conectan a través del puerto predeterminado (830) o a través del puerto definido por el usuario que está configurado en el mismo nivel de
[edit system services netconf ssh]
jerarquía.-
Confirme la configuración:
[edit] user@host# commit
-
Repita los pasos anteriores en cada dispositivo que ejecute Junos OS donde la aplicación cliente establezca sesiones de NETCONF.
Configurar el dispositivo Junos para SSH saliente
Para configurar el dispositivo Junos para SSH saliente:
Recibir y administrar la secuencia de iniciación SSH saliente en el cliente
Cuando se configura para SSH saliente, el dispositivo Junos intenta mantener una conexión constante con un servidor de administración de configuración. Cuando no se establece una sesión SSH saliente, el dispositivo envía una secuencia de iniciación SSH saliente a un servidor de administración de configuración que aparece en la lista de servidores de administración de configuración del dispositivo. Antes de establecer una conexión con el dispositivo, cada servidor de administración de configuración debe configurarse para recibir esta secuencia de inicio, establecer una conexión TCP con el dispositivo y transmitir la identidad del dispositivo al dispositivo.
La secuencia de inicio adopta una de dos formas, dependiendo de cómo haya elegido manejar la clave pública del servidor de Junos OS.
Si la clave pública se instala manualmente en el servidor de administración de configuración, la secuencia de inicio adopta la forma siguiente:
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
Si el dispositivo reenvía la clave pública al servidor de administración de configuración durante la secuencia de inicialización, la secuencia adopta la siguiente forma:
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
Tabla de historial de cambios
La compatibilidad con las funciones viene determinada por la plataforma y la versión que esté utilizando. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.