Establecer una conexión SSH para una sesión NETCONF
Descripción de las sesiones de NETCONF a través de SSH
Puede utilizar el protocolo SSH para establecer conexiones entre un servidor de administración de configuración (CMS) y un dispositivo Junos. Utilice un servidor de administración de configuración para administrar 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: el dispositivo Junos inicia, establece y mantiene una conexión SSH con un conjunto predefinido de servidores de administración de configuración. 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).
Junos OS incluye una implementación personalizada de OpenSSH para la administración de dispositivos. Las correcciones de seguridad se portan según sea necesario, independientemente de los números de versión de OpenSSH. Es posible que la versión que se muestra en la salida de la CLI (por ejemplo, show version) no refleje todos los parches aplicados. Consulte siempre los avisos de seguridad de Juniper (JSA) para obtener evaluaciones del impacto de la vulnerabilidad.
Requisitos previos comunes para sesiones de NETCONF a través de SSH o SSH saliente
Para las sesiones de NETCONF que utilizan SSH o SSH saliente, debe instalar el software SSH en el servidor de administración de configuración y habilitar el servicio NETCONF en el dispositivo Junos. Consulte las siguientes secciones para obtener instrucciones detalladas:
- Instalar software SSH en el servidor de administración de configuración
- Habilitar el servicio NETCONF a través de SSH
Instalar software SSH en el servidor de administración de configuración
Para las conexiones SSH, el servidor de administración de configuración (CMS) maneja la conexión SSH con el dispositivo Junos. Para las conexiones SSH salientes, el dispositivo Junos establece la conexión SSH con el servidor de administración de configuración y, a continuación, el servidor de administración de configuración toma el control de la sesión SSH.
Para establecer una conexión SSH o SSH saliente con un dispositivo, el servidor de administración de configuración debe tener software SSH instalado localmente. Para obtener información acerca de cómo obtener e instalar software SSH, consulte:
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 el tráfico de NETCONF de manera más eficaz. Como alternativa, puede configurar el dispositivo para que acepte sesiones de NETCONF en un número de puerto de su elección 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 habilita NETCONF y también habilita los servicios SSH en el dispositivo, 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 SSH para que no acepte sesiones de NETCONF o para restringir aún más el acceso al servidor de 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 sshinstrucció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
portinstrucción con el número de puerto en el nivel jerárquico[edit system services netconf ssh].[edit system services] user@host# set netconf ssh port port-number
La
port-numberlata 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 puede configurar NETCONF en cualquier puerto del 1 al 65535, no debe configurar el acceso en un puerto que normalmente se asigna 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 checkconflicto de recursos ni emite ningún mensaje de advertencia.
-
-
(Opcional) Para habilitar también el acceso al subsistema SSH de NETCONF mediante el puerto SSH predeterminado (22), incluya la
sshinstrucció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 allowinstrucción en el nivel de[edit system services ssh]jerarquía para permitir que el 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
[edit system services netconf ssh]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 jerarquía.-
Confirme la configuración:
[edit] user@host# commit
-
Repita los pasos anteriores en cada dispositivo Junos donde la aplicación cliente establezca sesiones NETCONF.
Requisitos previos para establecer una conexión SSH para sesiones de NETCONF
Antes de que el servidor de administración de configuración pueda establecer una conexión SSH con un dispositivo Junos, debe cumplir los requisitos comunes descritos en:
También debe cumplir los requisitos descritos en las siguientes secciones:
- 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
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/privada SSH, una contraseña basada en texto o ambas para autenticarse con el servidor NETCONF. Un par de claves 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/privada SSH, realice los pasos siguientes:
En el servidor de administración de configuración donde se ejecuta la aplicación cliente, emita el
ssh-keygencomando en el shell de comandos estándar y proporcione los argumentos adecuados.user@cms:~$ ssh-keygen options
Por ejemplo:
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 ...
Para obtener más información acerca
ssh-keygende las opciones, consulte la página man delssh-keygencomando.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. URL es la ruta de acceso al archivo que contiene una o varias claves públicas. El
ssh-keygencomando 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-rsainstrucción en el nivel jerárquico[edit system login user account-name authentication]. Sin embargo, se recomienda usar laload-key-fileinstrucción, ya que elimina la necesidad de escribir o cortar y pegar la clave pública en la 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 al par de claves o contraseña configurado y proporcionarlo cuando el servidor NETCONF lo 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 comunes descritos en:
También debe cumplir los requisitos descritos en las siguientes secciones:
- Configurar el dispositivo Junos para SSH saliente
- Recibir y administrar la secuencia de iniciación SSH saliente en el cliente
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 configura un dispositivo Junos para SSH saliente, el dispositivo 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 estar configurado para recibir esta secuencia de inicio, establecer una conexión TCP con el dispositivo y transmitir la identidad del dispositivo de vuelta 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.