Minha jornada até o CCNA - SSH x Telnet

Nesse rápido artigo vamos abordar métodos de acesso SSH e Telnet em equipamentos Cisco.


The Matrix - Warner Brothers Pictures (1999)


Os acessos remotos aos devices da Cisco são feitos, por padrão, via telnet. Porém com o telnet o dados trafegam em "texto claro" (e veremos isso na prática com um exemplo abaixo), isso significa que alguém executando um sniffer de rede, como o Wireshark pode ter acesso facilmente a toda a informação transmitida entre quem iniciou a sessão remota e o device de destino, até mesmo as senhas! Por isso, é altamente recomendável ativar o SSH nos dispositivos para um acesso remoto seguro.


Cenário Telnet

Vamos dar uma olhada nesse problema usando o exemplo abaixo, nele vou capturar o tráfego na interface Ethernet0/0 entre o R1 e o R2 para interceptar o que passa nessa interface durante uma tentativa de conexão via telnet.




Os roteadores estão zerados, possuem apenas configurações de IP e das linhas vty (acesso remoto via rede) para habilitar o telnet.


How to telnet R1:

Router> enable
Router# conf t
Router(config)# hostname R1
R1(config)# int e0/0 
R1(config-if)# ip add 192.168.0.1 255.255.255.0
R1(config-if)# no shut
R1(config-if)# line vty 0 4
R1(config-line)# password cisco
R1(config-line)# login
R1(config-line)# end 


How to telnet R2:

Router> enable
Router# conf t
Router(config)# hostname R2
R2(config)# int e0/0 
R2(config-if)# ip add 192.168.0.2 255.255.255.0
R2(config-if)# no shut
R2(config-if)# line vty 0 4
R2(config-line)# password cisco
R2(config-line)# login
R2(config-line)# end 


"Sniffando" o telnet

Vamos em Capture na interface Ethernet0/0 e deixar o wireshark "sniffando":





Agora da perspectiva de R2, vamos tentar conectar via Telnet no R1:

R2# telnet 192.168.0.1
Trying 192.168.0.1 ... Open
User Access Verification
Password:
R1>

Podemos notar que após digitarmos a senha que configuramos nos steps anteriores, o prompt é alterado para R1, portanto a conexão via telnet foi feita.

Agora voltando ao wireshark, podemos notar que enquanto isso tudo foi capturado e indo em uma das capturas correspondentes ao Telnet:
Botão direito sobre a captura > Follow > TCP Stream

Podemos ver a senha que digitamos, ou seja, isso é um gap de segurança e qualquer indivíduo que fizer isso, poderá enxergar a sua senha trafegando pelas conexões telnet.




Por esse motivo é recomendada a utilização do SSH (Secure Shell), que diferentemente do Telnet, torna o acesso remoto mais seguro e todo o tráfego é encriptado.

É possível configurar um dispositivo Cisco para oferecer suporte ao SSH em quatro etapas, como mostrado abaixo:

Etapa 1: Configurar o IP domain-name.

Etapa 2: Gerar as chaves SSH

Etapa 3: Criar um usuário local

Etapa 4: Ativar sessões SSH de entrada VTY.


How to SSH:

Para habilitar o SSHv2 que é uma versão mais robusta do SSH, basta executar as seguintes linhas de comando nos roteadores:

R1# conf t
R1(config)# username admin privilege 15 secret SENHA
R1(config)# ip domain-name maxaddress.com.br
R1(config)# crypto key generate rsa modulus 1024   
R1(config)# ip ssh version 2
!
R1(config)# ip ssh time-out 30
!
R1(config)# ip ssh authentication retries 3
!
R1(config)# line vty 0 4
R1(config-line)# transport input SSH
R1(config-line)# login local
R1(config-line)# end
!

Para configuração do SSH, criamos um usuário local no roteador com privilégio nível 15 (máximo).
Em seguida o IP domain-name que é utilizado para gerar a chave do SSH.
Geramos a chave RSA para codificação/decodificação dos dados que deve ter pelo menos 1024 bits.
Importante: Para criar poder ativar o SSHv2 é necessário que a chave RSA tenha pelo menos 768 bits.
Setamos alguns parâmetros, como habilitar o SSHv2, estabelecemos o time-out da sessão e a quantidade de tentativas de conexão.

Por fim, fizemos a configuração das linhas vty, configuramos o roteador para preferencialmente usar o SSH no transporte dos dados e autenticar baseado no usuário local adicionado.

Para verificar a configuração do SSH usa-se o comando "show ip ssh", com ele é possível visualizar qual versão do SSH está sendo utilizada.

R1# show ip ssh






Comando para executar o acesso via SSH:

R1# ssh -l max 192.168.0.2


Note que o -l é o nome do usuário local que criamos, no nosso exemplo o nome do usuário cabeçudo é max.




Portanto o SSHv2 já está ativado com sucesso.

💡 Importante: O SSH usa porta TCP 22, enquanto o Telnet a porta TCP 23.


Se tentarmos farejar o tráfego gerado para essa conexão SSH, conforme abaixo, vamos notar que tudo está encriptado, como diria Chorão: Como tudo deve ser.




Bom, por hoje é só. Abaixo deixo o link da Cisco com maiores informações sobre as nuances do SSH:

http://www.cisco.com/c/en/us/support/docs/security-vpn/secure-shell-ssh/4145-ssh.html

Abraços,

Max.