Estabeleça uma conexão SSH para uma sessão netconf
Estabeleça uma conexão SSH para uma sessão netconf
Você pode usar o protocolo SSH para estabelecer conexões entre um servidor de gerenciamento de configuração e um dispositivo Junos. Você usa um servidor de gerenciamento de configuração para configurar o dispositivo Junos remotamente.
Você pode usar as seguintes opções para estabelecer uma conexão SSH entre o servidor de gerenciamento de configuração e o dispositivo Junos.
-
SSH — O servidor de gerenciamento de configuração inicia uma sessão de SSH com o dispositivo Junos.
-
SSH de saída — Use essa opção quando o servidor de gerenciamento de configuração não puder iniciar uma conexão SSH devido a restrições de rede (como um firewall). Nessa situação, você configura o dispositivo Junos para iniciar, estabelecer e manter uma conexão SSH com um conjunto predefinido de servidores de gerenciamento de configuração.
Pré-requisitos para estabelecer uma conexão SSH para sessões netconf
Antes que o servidor de gerenciamento de configuração estabeleça uma conexão SSH com um dispositivo Junos, você deve satisfazer os requisitos discutidos nas seções a seguir.
- Instale software SSH no servidor de gerenciamento de configuração
- Habilite o serviço NETCONF no SSH
- Configure uma conta de usuário para o aplicativo cliente em dispositivos Junos
- Configure um par ou senha de chave pública/privada para a conta do usuário do Junos OS
- Acesse as chaves ou a senha com o aplicativo do cliente
Instale software SSH no servidor de gerenciamento de configuração
O servidor de gerenciamento de configuração lida com a conexão SSH com o dispositivo Junos. Portanto, o software SSH deve ser instalado localmente no servidor de gerenciamento de configuração. Para obter e instalar o software SSH, consulte http://www.ssh.com e http://www.openssh.com.
Habilite o serviço NETCONF no SSH
Para estabelecer sessões netconf em um dispositivo Junos, você deve habilitar o serviço NETCONF. Você pode configurar o servidor NETCONF para aceitar sessões netconf nas seguintes portas:
-
Porta NETCONF padrão (830) ou uma porta definida pelo usuário
-
Porta SSH padrão (22)
Recomendamos que você use a porta NETCONF padrão porque ela permite que o dispositivo identifique e filtre facilmente o tráfego NETCONF. Como alternativa, você pode configurar o dispositivo para aceitar sessões netconf em uma porta específica em vez da porta NETCONF padrão. A porta definida aceita apenas sessões NETCONF-over-SSH e rejeita solicitações regulares de sessão de SSH. Se você também habilitar serviços SSH no servidor, o dispositivo aceita sessões NETCONF tanto na porta SSH padrão quanto na porta NETCONF configurada (porta padrão ou definida pelo usuário). Para maior segurança, você pode configurar políticas de eventos que utilizam UI_LOGIN_EVENT
informações para desabilitar efetivamente a porta padrão ou restringir ainda mais o acesso do servidor NETCONF em uma porta.
Para habilitar o serviço NETCONF sobre SSH em um dispositivo Junos:
-
Habilite o serviço NETCONF na porta NETCONF padrão (830) ou em uma porta definida pelo usuário:
-
Para usar a porta NETCONF padrão (830), inclua a
netconf ssh
declaração no nível de[edit system services]
hierarquia:[edit system services] user@host# set netconf ssh
-
Para usar uma porta específica, configure a
port
declaração com o número de porta desejado no nível [edit system services netconf ssh
] de hierarquia.[edit system services] user@host# set netconf ssh port port-number
A
port-number
pode variar de 1 a 65535. A porta configurada aceita apenas sessões NETCONF-over-SSH e rejeita solicitações regulares de sessão de SSH.Nota:Embora as sessões NETCONF-over-SSH possam ser configuradas em qualquer porta de 1 a 65535, você deve evitar configurar o acesso em uma porta que normalmente é atribuída a outro serviço. Essa prática evita possíveis conflitos de recursos. Se você configurar uma porta designada para outro serviço, como o FTP, e esse serviço estiver habilitado, não revelará
commit check
um conflito de recursos ou emitirá qualquer mensagem de aviso nesse sentido.
-
-
(Opcional) Para também permitir o acesso ao subsistema NETCONF SSH usando a porta SSH padrão (22), inclua a
ssh
declaração no nível de[edit system services]
hierarquia.[edit system services] user@host# set ssh
Essa configuração permite o acesso SSH ao dispositivo para todos os usuários e aplicativos.
Nota:Em versões em que o comportamento padrão é restringir o usuário raiz de usar o serviço SSH, você deve configurar a
root-login allow
declaração no nível de[edit system services ssh]
hierarquia para permitir que o usuário raiz abra sessões netconf no SSH. (Opcional) Configure o dispositivo para desconectar clientes NETCONF sem resposta.
Especifique o intervalo de tempo limite (em segundos) após o qual, se nenhum dados tiver sido recebido do cliente, o processo sshd solicita uma resposta. Além disso, especifique o limite de respostas perdidas com vida do cliente que desencadeiam uma desconexão.
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
Nota:As declarações configuradas no nível de
[edit system services netconf ssh]
hierarquia aplicam-se apenas às sessões netconf que se conectam através da porta padrão (830) ou através da porta definida pelo usuário que está configurada no mesmo nível de hierarquia.-
Confirmar a configuração:
[edit] user@host# commit
-
Repita as etapas anteriores em cada dispositivo que executa o Junos OS, onde o aplicativo cliente estabelece sessões NETCONF.
Configure uma conta de usuário para o aplicativo cliente em dispositivos Junos
O servidor de gerenciamento de configuração deve fazer login no dispositivo Junos para estabelecer uma sessão NETCONF. Assim, o servidor de gerenciamento de configuração precisa de uma conta de usuário em cada dispositivo onde estabelece uma sessão NETCONF. As instruções a seguir explicam como criar uma conta de usuário local em dispositivos Junos. Como alternativa, você pode pular esta seção e habilitar a autenticação por RADIUS ou TACACS+.
Para criar uma conta de usuário local:
Configure um par ou senha de chave pública/privada para a conta do usuário do Junos OS
O servidor de gerenciamento de configuração precisa de um par de chave SSH público/privado, uma senha baseada em texto ou ambos antes que ele possa ser autenticado com o servidor NETCONF. Um par de chave pública/privada é suficiente se a conta for usada apenas para se conectar ao servidor NETCONF por meio de SSH. Se a conta também for usada para acessar o dispositivo de outras maneiras (para fazer login no console, por exemplo), ela deve ter uma senha baseada em texto. A senha também é usada (o servidor SSH solicita isso) se a autenticação baseada em chave estiver configurada, mas falhar.
Você pode pular esta seção se tiver escolhido habilitar a autenticação por RADIUS ou TACACS+.
Para criar uma senha baseada em texto:
Para criar um par de chave SSH público/privado, execute as seguintes etapas:
No servidor de gerenciamento de configuração onde o aplicativo cliente é executado, emita o
ssh-keygen
comando no shell de comando padrão e forneça os argumentos apropriados.% ssh-keygen options
Para obter mais informações sobre
ssh-keygen
opções, consulte a página manual para ossh-keygen
comando.Associe a chave pública com a conta de login do Junos OS.
[edit system login user username authentication] user@host# set load-key-file URL
O Junos OS copia o conteúdo do arquivo especificado no dispositivo que executa o Junos OS. URL é o caminho para o arquivo que contém uma ou mais chaves públicas. O
ssh-keygen
comando por padrão armazena cada chave pública em um arquivo no subdiretório .ssh do diretório doméstico do usuário; o nome do arquivo depende da codificação e versão SSH. Para obter informações sobre como especificar URLs, consulte o Guia do usuário da CLI.Nota:Como alternativa, você pode incluir a
ssh-rsa
declaração no nível de[edit system login user account-name authentication]
hierarquia. No entanto, recomendamos usar aload-key-file
declaração porque ela elimina a necessidade de digitar ou cortar e colar a chave pública na linha de comando.Confirmar a configuração.
[edit] user@host# commit
Repita a Etapa 2 e a Etapa 3 em cada dispositivo Junos, onde o aplicativo do cliente estabelece sessões NETCONF.
Acesse as chaves ou a senha com o aplicativo do cliente
O aplicativo cliente deve ser capaz de acessar as chaves ou senhas públicas/privadas configuradas e fornecê-la quando o servidor NETCONF solicitar.
Existem vários métodos para permitir que o aplicativo acesse a chave ou a senha:
Se forem usadas chaves públicas/privadas, o programa ssh-agent será executado no dispositivo onde o aplicativo cliente é executado e lida com a chave privada.
Quando um usuário inicia o aplicativo, o aplicativo solicita a senha ao usuário e a armazena temporariamente de forma segura.
A senha é armazenada em forma criptografada em um local seguro de disco local ou em um banco de dados seguro.
Pré-requisitos para estabelecer uma conexão SSH de saída para sessões NETCONF
Para permitir que um servidor de gerenciamento de configuração estabeleça uma conexão SSH de saída com o servidor NETCONF, você deve satisfazer os requisitos discutidos nas seguintes seções:
- Instale software SSH no cliente
- Habilite o serviço NETCONF no SSH
- Configure o dispositivo Junos para SSH de saída
- Receba e gerencie a sequência de iniciação de SSH de saída no cliente
Instale software SSH no cliente
Assim que o dispositivo estabelecer a conexão SSH com o servidor de gerenciamento de configuração, o servidor de gerenciamento de configuração assume o controle da sessão de SSH. Portanto, o software cliente SSH deve ser instalado localmente no servidor de gerenciamento de configuração. Para obter e instalar o software SSH, consulte http://www.ssh.com/ e http://www.openssh.com/ .
Habilite o serviço NETCONF no SSH
Para estabelecer sessões netconf em um dispositivo Junos, você deve habilitar o serviço NETCONF. Você pode configurar o servidor NETCONF para aceitar sessões netconf nas seguintes portas:
-
Porta NETCONF padrão (830) ou uma porta definida pelo usuário
-
Porta SSH padrão (22)
Recomendamos que você use a porta NETCONF padrão porque ela permite que o dispositivo identifique e filtre facilmente o tráfego NETCONF. Como alternativa, você pode configurar o dispositivo para aceitar sessões netconf em uma porta específica em vez da porta NETCONF padrão. A porta definida aceita apenas sessões NETCONF-over-SSH e rejeita solicitações regulares de sessão de SSH. Se você também habilitar serviços SSH no servidor, o dispositivo aceita sessões NETCONF tanto na porta SSH padrão quanto na porta NETCONF configurada (porta padrão ou definida pelo usuário). Para maior segurança, você pode configurar políticas de eventos que utilizam UI_LOGIN_EVENT
informações para desabilitar efetivamente a porta padrão ou restringir ainda mais o acesso do servidor NETCONF em uma porta.
Para habilitar o serviço NETCONF sobre SSH em um dispositivo Junos:
-
Habilite o serviço NETCONF na porta NETCONF padrão (830) ou em uma porta definida pelo usuário:
-
Para usar a porta NETCONF padrão (830), inclua a
netconf ssh
declaração no nível de[edit system services]
hierarquia:[edit system services] user@host# set netconf ssh
-
Para usar uma porta específica, configure a
port
declaração com o número de porta desejado no nível [edit system services netconf ssh
] de hierarquia.[edit system services] user@host# set netconf ssh port port-number
A
port-number
pode variar de 1 a 65535. A porta configurada aceita apenas sessões NETCONF-over-SSH e rejeita solicitações regulares de sessão de SSH.Nota:Embora as sessões NETCONF-over-SSH possam ser configuradas em qualquer porta de 1 a 65535, você deve evitar configurar o acesso em uma porta que normalmente é atribuída a outro serviço. Essa prática evita possíveis conflitos de recursos. Se você configurar uma porta designada para outro serviço, como o FTP, e esse serviço estiver habilitado, não revelará
commit check
um conflito de recursos ou emitirá qualquer mensagem de aviso nesse sentido.
-
-
(Opcional) Para também permitir o acesso ao subsistema NETCONF SSH usando a porta SSH padrão (22), inclua a
ssh
declaração no nível de[edit system services]
hierarquia.[edit system services] user@host# set ssh
Essa configuração permite o acesso SSH ao dispositivo para todos os usuários e aplicativos.
Nota:Em versões em que o comportamento padrão é restringir o usuário raiz de usar o serviço SSH, você deve configurar a
root-login allow
declaração no nível de[edit system services ssh]
hierarquia para permitir que o usuário raiz abra sessões netconf no SSH. (Opcional) Configure o dispositivo para desconectar clientes NETCONF sem resposta.
Especifique o intervalo de tempo limite (em segundos) após o qual, se nenhum dados tiver sido recebido do cliente, o processo sshd solicita uma resposta. Além disso, especifique o limite de respostas perdidas com vida do cliente que desencadeiam uma desconexão.
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
Nota:As declarações configuradas no nível de
[edit system services netconf ssh]
hierarquia aplicam-se apenas às sessões netconf que se conectam através da porta padrão (830) ou através da porta definida pelo usuário que está configurada no mesmo nível de hierarquia.-
Confirmar a configuração:
[edit] user@host# commit
-
Repita as etapas anteriores em cada dispositivo que executa o Junos OS, onde o aplicativo cliente estabelece sessões NETCONF.
Configure o dispositivo Junos para SSH de saída
Para configurar o dispositivo Junos para SSH de saída:
Receba e gerencie a sequência de iniciação de SSH de saída no cliente
Quando configurado para SSH de saída, o dispositivo Junos tenta manter uma conexão constante com um servidor de gerenciamento de configuração. Sempre que uma sessão de SSH de saída não é estabelecida, o dispositivo envia uma sequência de iniciação SSH de saída para um servidor de gerenciamento de configuração listado na lista de servidores de gerenciamento de configuração do dispositivo. Antes de estabelecer uma conexão com o dispositivo, cada servidor de gerenciamento de configuração deve ser configurado para receber essa sequência de iniciação, estabelecer uma conexão TCP com o dispositivo e transmitir a identidade do dispositivo de volta para o dispositivo.
A sequência de iniciação requer um dos dois formulários, dependendo de como você escolheu lidar com a chave pública do servidor Junos OS.
Se a chave pública for instalada manualmente no servidor de gerenciamento de configuração, a sequência de iniciação toma o seguinte formulário:
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
Se a chave pública for encaminhada ao servidor de gerenciamento de configuração pelo dispositivo durante a sequência de inicialização, a sequência toma o seguinte formulário:
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
Tabela de histórico de mudanças
O suporte de recursos é determinado pela plataforma e versão que você está usando. Use o Feature Explorer para determinar se um recurso é suportado em sua plataforma.