Segurança e VPN : Shell Seguro (ssh)

Configurando o Secure Shell em Roteadores e Switches que Executam o Cisco IOS

14 Julho 2008 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (29 Julho 2013) | Inglês (28 Junho 2007) | Feedback

Índice

Introdução
Pré-requisitos
      Requisitos
      Componentes Utilizados
      Convenções
SSH v1 x SSH v2
Diagrama de Rede
Testar Autenticação
      Teste de Autenticação sem o SSH
      Teste de Autenticação com o SSH
Configurações Opcionais
      Bloqueio de Conexões Não SSH
      Configuração de um Roteador ou Switch IOS como um Cliente de SSH
      Adição de Linha Terminal de Acesso de SSH
      Configuração da Versão do SSH
      Variações da Saída do Comando Banner
      Impossível Exibir o Banner de Login
Comandos Debug e Show
Exemplo de Depuração
      Depuração do Roteador
      Depuração do Servidor
O Que Pode Estar Errado?
      SSH de um Cliente de SSH Não Compilado com o DES (Data Encryption Standard)
      Senha Incorreta
      O SSH Envia Cifras sem Suporte (Blowfish)
Dicas para Troubleshooting
Discussões relacionadas da comunidade de suporte da Cisco

Introdução

O Secure Shell (SSH) é um protocolo que fornece uma conexão de acesso remoto segura para dispositivos de rede. A comunicação entre o cliente e o servidor é criptografada tanto no SSH versão 1 como no SSH versão 2. Quando possível, implemente o SSH versão 2 porque ele usa um algoritmo de criptografia mais evoluído.

Este documento discute como configurar e depurar o SSH em roteadores ou switches Cisco que executam uma versão do Cisco IOS® Software compatível com o SSH. Esse documento contém mais informações sobre versões específicas e imagens de software:

Pré-requisitos

Requisitos

Não existem requisitos específicos para este documento.

Componentes Utilizados

As informações neste documento baseiam-se no software Cisco IOS 3600 (C3640-IK9S-M) Release 12.2(2)T1.

O SSH foi introduzido nas seguintes plataformas e imagens do IOS:

  • O servidor de SSH versão 1.0 (SSH v1) foi introduzido em algumas plataformas e imagens do IOS a partir do Cisco IOS Software Release 12.0.5.S.

  • O cliente de SSH foi introduzido em algumas plataformas e imagens do IOS a partir do Cisco IOS Software Release 12.1.3.T.

  • O acesso de linha de terminal de SSH (também conhecido como Telnet reverso) foi introduzido em algumas plataformas e imagens do IOS a partir do Cisco IOS Software Release 12.2.2.T.

  • O suporte ao SSH versão 2.0 (SSH v2) foi introduzido em algumas plataformas e imagens do IOS a partir do Cisco IOS Software Release 12. 1(19)E.

  • Consulte Como Configurar o SSH nos Catalyst Switches com CatOS para obter informações sobre o suporte ao SSH nos switches.

Consulte o Software Advisor (somente clientes registrados) para obter uma lista completa dos conjuntos de recursos aceitos em releases diferentes do Cisco IOS Software e em plataformas distintas.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração padrão. Se a sua rede estiver em um ambiente de produção, esteja ciente do impacto potencial de qualquer comando.

Convenções

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

SSH v1 x SSH v2

Use o Cisco Software Advisor (somente clientes registrados) para obter ajuda para encontrar a versão do código com suporte apropriado ao SSH v1 ou SSH v2.

Diagrama de Rede

ssh-1.gif

Testar Autenticação

Teste de Autenticação sem o SSH

Primeiro, teste a autenticação sem o SSH para verificar se ela funciona com o roteador Carter antes de adicionar o SSH. A autenticação pode ser feita com um nome de usuário e uma senha locais ou com um servidor AAA (Authentication, Authorization, and Accounting), por exemplo, RADIUS ou TACACS+. (A autenticação pela linha de conexão não é possível com o SSH.) Este exemplo mostra a autenticação local, a qual permite conectar via Telnet ao roteador com o nome de usuário "cisco" e a senha "cisco".


!--- O comando aaa new-model faz com que o nome de usuário e a senha locais no roteador
!--- sejam usados na ausência de outras instruções AAA.

aaa new-model
username cisco password 0 cisco
line vty 0 4
transport input telnet

!--- Em vez de aaa new-model, é possível usar o comando login local.

Teste de Autenticação com o SSH

Para testar a autenticação com o SSH, é preciso adicionar a configuração às instruções anteriores para ativar o SSH no Carter e testar o SSH em estações UNIX e PC.

ip domain-name rtp.cisco.com

!--- Gera uma chave SSH para uso com o SSH.

cry key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2

Nesse ponto, o comando show cry key mypubkey rsa deve mostrar a chave gerada. Após adicionar a configuração do SSH, teste sua capacidade de acessar o roteador em estações UNIX e PC. Se isso não funcionar, consulte a Seção de Depuração deste documento.

Configurações Opcionais

Bloqueio de Conexões Não SSH

Para impedir conexões não SSH, adicione o comando transport input ssh abaixo das linhas para limitar o roteador a estabelecer somente conexões SSH. Telnets diretos (não SSH) são recusados.

line vty 0 4

!--- Impede Telnets não SSH.

transport input ssh

Teste para ter certeza de que os usuários não SSH não podem fazer Telnet para o roteador Carter.

Configuração de um Roteador ou Switch IOS como um Cliente de SSH

Existem quatro etapas necessárias para ativar o suporte de SSH em um roteador IOS:

  1. Configurar o comando hostname.

  2. Configurar o domínio do DNS.

  3. Gerar a chave SSH que será usada.

  4. Habilitar o suporte ao transporte do SSH para o terminal de tipo virtual (vtys).

Para ter um dispositivo atuando como um cliente SSH para o outro, adicione o SSH a um segundo dispositivo denominado Reed. Esses dispositivos estão, então, em uma disposição cliente-servidor, onde Carter atua como servidor e Reed atua como cliente. A configuração do cliente de IOS SSH em Reed é a mesma necessária para a configuração de servidor de SSH em Carter.


!--- Passo 1: Caso ainda não o tenha feito anteriormente, configure o nome do host.

hostname carter

!--- O comando aaa new-model faz com que o nome de usuário e a senha locais no roteador
!--- sejam usados na ausência de outras instruções AAA.

aaa new-model
username cisco password 0 cisco

!--- Passo 2: Configure o domínio DNS do roteador.

ip domain-name rtp.cisco.com

!--- Passo 3:  Gere uma chave SSH a ser usada com o SSH.

cry key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2

!--- Passo 4: Por padrão, o transporte do vtys é Telnet. Nesse caso,
!--- o Telnet é desativado e há apenas suporte ao SSH.

line vty 0 4
transport input SSH

!--- Em vez de aaa new-model, é possível usar o comando login local.

Execute este comando para estabelecer uma conexão de SSH do cliente de IOS SSH (Reed) para o servidor de IOS SSH (Carter) para fazer o teste:

  • SSH v1:

    ssh -l cisco -c 3des 10.13.1.99
    
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -l cisco 10.31.1.99
    

Adição de Linha Terminal de Acesso de SSH

Se uma autenticação de linha terminal de saída for necessária, você poderá configurar e testar o SSH para Telnets reversos de saída via Carter, o qual atua como um servidor de comunicação para Philly.

ip ssh port 2001 rotary 1
line 1 16
   no exec
   rotary 1
   transport input ssh
   exec-timeout 0 0
   modem In Out
   Stopbits 1

Se Philly estiver conectado à porta 2 de Carter, configure o SSH para Philly por meio de Carter a partir de Reed com a ajuda deste comando:

  • SSH v1:

    ssh -c 3des -p 2002 10.13.1.99
    
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -p 2002 10.31.1.99
    

Você pode usar este comando do Solaris:

ssh -c 3des -p 2002 -x -v 10.13.1.99

Configuração da Versão do SSH

Configurar o SSH v1:

carter (config)#ip ssh version 1

Configurar o SSH v2:

carter (config)#ip ssh version 2

Configurar o SSH v1 e v2:

carter (config)#no ip ssh version

Variações da Saída do Comando Banner

A saída do comando banner varia entre o Telnet e as diferentes versões de conexão SSH. Esta tabela ilustra como as diferentes opções do comando banner funcionam com os diversos tipos de conexão.

Opção do comando banner

Telnet

Somente SSH v1

SSH v1 e v2

Somente SSH v2

banner login

Exibido antes do login no dispositivo.

Não exibido.

Exibido antes do login no dispositivo.

Exibido antes do login no dispositivo.

banner motd

Exibido antes do login no dispositivo.

Exibido após o login no dispositivo.

Exibido após o login no dispositivo.

Exibido após o login no dispositivo.

banner exec

Exibido após o login no dispositivo.

Exibido após o login no dispositivo.

Exibido após o login no dispositivo.

Exibido após o login no dispositivo.

Impossível Exibir o Banner de Login

O SSH versão 2 oferece suporte ao banner de login. O banner de login será exibido se o cliente de SSH enviar o nome de usuário ao iniciar a sessão de SSH com o roteador Cisco. Por exemplo, quando o cliente Secure Shell do SSH é usado, o banner de login é exibido. Quando o cliente PuTTY do SSH é usado, o banner de login não é exibido. Isso acontece porque o Secure Shell envia o nome de usuário por padrão, enquanto que o PuTTY não.

O cliente Secure Shell necessita do nome de usuário para iniciar a conexão para o dispositivo com suporte ao SSH. O botão Connect não será habilitado se você não inserir os nomes de host e de usuário. Esta captura de tela mostra que o banner de login é exibido quando o Secure Shell se conecta ao roteador. Em seguida, o prompt de senha do banner de login é exibido.

ssh-2.gif

O cliente PuTTY não necessita do nome de usuário para iniciar a conexão de SSH com o roteador. Esta captura de tela mostra que o cliente PuTTY se conecta ao roteador e solicita o nome de usuário e a senha. Ele não exibe o banner de login.

ssh-3.gif

Esta captura de tela mostra que o banner de login é exibido quando o PuTTY é configurado para enviar o nome de usuário para o roteador.

ssh-5.gif

Comandos Debug e Show

Antes de executar os comandos debug descritos e ilustrados aqui, consulte Informações Importantes sobre Comandos de Depuração. Alguns comandos show são aceitos pela Output Interpreter Tool (somente clientes registrados) , o que permite exibir uma análise da saída do comando show.

  • debug ip ssh — Exibe mensagens de depuração para o SSH.

  • show ssh — Exibe o status das conexões de servidor do SSH.

    carter#show ssh
      Connection    Version Encryption    State              Username
       0            1.5     DES           Session started    cisco
    
  • show ip ssh — Exibe a versão e os dados de configuração do SSH.

    • Conexão da versão 1 sem versão 2

      carter#show ip ssh
        SSH Enabled - version 1.5
        Authentication timeout: 60 secs; Authentication retries: 2
      
    • Conexão da versão 2 sem versão 1

      carter#show ip ssh
        SSH Enabled - version 2.0
        Authentication timeout: 120 secs; Authentication retries: 3
      
    • Conexões das versões 1 e 2

      carter#show ip ssh
        SSH Enabled - version 1.99
        Authentication timeout: 120 secs; Authentication retries: 3
      

Exemplo de Depuração

Depuração do Roteador

Nota: Algumas destas saídas de depuração são dispostas em várias linhas devido a limitações de espaço.

00:23:20: SSH0: starting SSH control process
00:23:20: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:23:20: SSH0: protocol version id is - SSH-1.5-1.2.26
00:23:20: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:23:21: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH0: sending encryption confirmation
00:23:21: SSH0: keys exchanged and encryption on
00:23:21: SSH0: SSH_CMSG_USER message received
00:23:21: SSH0: authentication request for userid cisco
00:23:21: SSH0: SSH_SMSG_FAILURE message sent
00:23:23: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:23:23: SSH0: authentication successful for cisco
00:23:23: SSH0: requesting TTY
00:23:23: SSH0: setting TTY - requested: length 24, width 80; set:
   length 24, width 80
00:23:23: SSH0: invalid request - 0x22
00:23:23: SSH0: SSH_CMSG_EXEC_SHELL message received
00:23:23: SSH0: starting shell for vty

Depuração do Servidor

Nota: Esta saída foi capturada em um computador Solaris.

rtp-evergreen.rtp.cisco.com#ssh -c 3des -l cisco -v 10.31.1.99
rtp-evergreen#/opt/CISssh/bin/ssh -c 3des -l cisco -v 10.13.1.99
SSH Version 1.2.26 [sparc-sun-solaris2.5.1], protocol version 1.5.
Compiled with RSAREF.
rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config
rtp-evergreen: ssh_connect: getuid 0 geteuid 0 anon 0
rtp-evergreen: Allocated local port 1023.
rtp-evergreen: Connecting to 10.13.1.99 port 22.
rtp-evergreen: Connection established.
rtp-evergreen: Remote protocol version 1.5,
   remote software version Cisco-1.25
rtp-evergreen: Waiting for server public key.
rtp-evergreen: Received server public key (768 bits)
   and host key (512 bits).
rtp-evergreen: Host '10.13.1.99' is known and matches the host key.
rtp-evergreen: Initializing random; seed file //.ssh/random_seed
rtp-evergreen: Encryption type: 3des
rtp-evergreen: Sent encrypted session key.
rtp-evergreen: Installing crc compensation attack detector.
rtp-evergreen: Received encrypted confirmation.
rtp-evergreen: Doing password authentication.
cisco@10.13.1.99's password:
rtp-evergreen: Requesting pty.
rtp-evergreen: Failed to get local xauth data.
rtp-evergreen: Requesting X11 forwarding with authentication spoofing.
Warning: Remote host denied X11 forwarding, perhaps xauth program
   could not be run on the server side.
rtp-evergreen: Requesting shell.
rtp-evergreen: Entering interactive session.

O Que Pode Estar Errado?

Estas seções contêm exemplos de saída de depuração de várias configurações incorretas.

SSH de um Cliente de SSH Não Compilado com o DES (Data Encryption Standard)

Depuração do Solaris

rtp-evergreen#/opt/CISssh/bin/ssh -c des -l cisco -v 10.13.1.99
SSH Version 1.2.26 [sparc-sun-solaris2.5.1], protocol version 1.5.
Compiled with RSAREF.
rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config
rtp-evergreen: ssh_connect: getuid 0 geteuid 0 anon 0
rtp-evergreen: Allocated local port 1023.
rtp-evergreen: Connecting to 10.13.1.99 port 22.
rtp-evergreen: Connection established.
rtp-evergreen: Remote protocol version 1.5,
   remote software version Cisco-1.25
rtp-evergreen: Waiting for server public key.
rtp-evergreen: Received server public key (768 bits)
   and host key (512 bits).
rtp-evergreen: Host '10.13.1.99' is known and matches the host key.
rtp-evergreen: Initializing random; seed file //.ssh/random_seed
rtp-evergreen: Encryption type: des
rtp-evergreen: Sent encrypted session key.
cipher_set_key: unknown cipher: 2

Depuração do Roteador

00:24:41: SSH0: Session terminated normally
00:24:55: SSH0: starting SSH control process
00:24:55: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:24:55: SSH0: protocol version id is - SSH-1.5-1.2.26
00:24:55: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:24:55: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:24:55: SSH: RSA decrypt started
00:24:56: SSH: RSA decrypt finished
00:24:56: SSH: RSA decrypt started
00:24:56: SSH: RSA decrypt finished
00:24:56: SSH0: sending encryption confirmation
00:24:56: SSH0: Session disconnected - error 0x07

Senha Incorreta

Depuração do Roteador

00:26:51: SSH0: starting SSH control process
00:26:51: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:26:52: SSH0: protocol version id is - SSH-1.5-1.2.26
00:26:52: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:26:52: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH0: sending encryption confirmation
00:26:52: SSH0: keys exchanged and encryption on
00:26:52: SSH0: SSH_CMSG_USER message received
00:26:52: SSH0: authentication request for userid cisco
00:26:52: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:26:54: SSH0: password authentication failed for cisco
00:26:54: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: authentication failed for cisco (code=7)
00:26:54: SSH0: Session disconnected - error 0x07

O SSH Envia Cifras sem Suporte (Blowfish)

Depuração do Roteador

00:39:26: SSH0: starting SSH control process
00:39:26: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:39:26: SSH0: protocol version id is - SSH-1.5-W1.0
00:39:26: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:39:26: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:39:26: SSH0: Session disconnected - error 0x20

Dicas para Troubleshooting

  • Se os seus comandos de configuração do SSH forem rejeitados como comandos ilegais, você não gerou corretamente um par de chaves RSA para seu roteador. Certifique-se de ter especificado um nome de host e um domínio. Em seguida, use o comando crypto key generate rsa para gerar um par de chaves RSA e habilitar o servidor de SSH.

  • Ao configurar o par de chaves RSA, você poderá encontrar as seguintes mensagens de erro:

    1. Nenhum nome de host especificado

      Você deverá configurar um nome de host para o roteador usando o comando de configuração global hostname.

    2. Nenhum domínio especificado

      Você deverá configurar um domínio de host para o roteador usando o comando de configuração global ip domain-name.

  • O número de conexões de SSH permitidas é limitado pelo número máximo de vtys configurados para o roteador. Cada conexão de SSH usa um recurso vty.

  • O SSH usa a segurança local ou o protocolo de segurança configurado por meio do AAA em seu roteador para a autenticação de usuários. Ao configurar o AAA, você deverá garantir que o console não esteja em execução sob o AAA ao aplicar uma palavra-chave no modo de configuração global para desabilitar o AAA no console.


Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Document ID: 4145