SSH, Telnet e as diferenças para conectar em um servidor

SSH, Telnet e as diferenças para conectar em um servidor
Yuri Matheus
Yuri Matheus

Compartilhe

Veja a diferença entre uma simples Telnet e o SSH e como cada um lida com as conexões.

Estou querendo acessar um servidor para realizar algumas configurações que fica em uma sala de servidores junto com vários outros servidores.

Logo, se desejo configurar esse servidor, basta ir até a sala e acessá-lo localmente. Mas e se eu não tiver acesso a essa sala? Ou pior, e se essa sala estivesse em outro prédio do outro lado da cidade, ou do estado, quem sabe até em outro país? Ou em um cloud?

A melhor maneira é acessar esse servidor remotamente. Dessa forma, não importa onde ele está localizado, sempre conseguiremos acessá-lo.

Existem diversos protocolos que conseguem realizar o acesso remoto, dois dos mais conhecidos são o SSH e o Telnet.

Com ambos protocolos nós conseguimos acessar outro computador remotamente e criar um terminal virtual, que nada mais é do que a emulação do terminal da máquina acessada em nossa própria máquina.

Dessa maneira, conseguimos executar comandos, realizar configurações, ou seja, temos total controle do servidor mesmo sem acessá-lo fisicamente.

Porém você deve estar se perguntando:

"Por que ter dois protocolos se ambos fazem a mesma coisa?"

Ambos protocolos podem ser usados para acessar computadores remotamente, porém existe algo muito importante que diferencia os dois. A criptografia.

Entendendo a criptografia

A gente pode definir criptografia como a simples ação de tornar uma mensagem ilegível. Apesar de ser simples o conceito, existem diversos cálculos e métodos complexos usados para garantir que uma mensagem seja criptografada e que apenas os destinatários saibam o que ela significa.

Quando uma mensagem não criptografada trafega por uma rede, como a internet, qualquer um que a intercepte consegue ler seu conteúdo. Ou seja, se o conteúdo dessa mensagem conter dados sigilosos, como senhas, eles ficam vulneráveis.

Se essa mensagem está criptografada, o interceptador não conseguirá descobrir seu conteúdo, pois apenas o receptor sabe como tornar a mensagem legível novamente.

Essa é a principal diferença entre os protocolos Telnet e o SSH.

O Telnet não possui nenhuma criptografia. Ele envia as mensagens em texto puro. Dessa forma caso alguém intercepte esses dados conseguirá ver o conteúdo. Mas como um hacker consegue interceptar essas mensagens?

Existem diversas formas de interceptar uma mensagem, ataques como Man in the middle são um exemplo. Outra forma de interceptar essa mensagem é utilizar um farejador (sniffer).

O sniffer fica farejando pacotes em uma rede, ou seja, ele fica capturando os pacotes que passam em uma rede. Os pacotes capturados podem ser analisados e, se a comunicação não for criptografada, ele consegue ver o conteúdo da mensagem. Um sniffer muito conhecido é o Wireshark.

Banner da Escola de DevOps: Matricula-se na escola de DevOps. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

Farejando o Telnet

Vamos fazer uma conexão com o Telnet e usar o Wireshark para farejar essa comunicação e ver se, de fato, conseguimos capturar o conteúdo dos pacotes.

Então, no terminal, podemos dizer para o telnet se conectar a um host. No meu caso esse host é o 192.168.65.55.

Digitamos o usuário e senha e pronto! Temos acesso ao servidor.

Vamos pedir agora para o Wireshark começar a farejar os pacotes que passam pela nossa placa de rede. Para ficar mais fácil a análise, podemos pedir para ele filtrar os pacotes pelo endereço IP da máquina que estamos acessando:

ip.addr == 192.168.65.55

Analisando os pacotes, conseguimos obter algumas informações como quem é o usuário, em qual máquina ele está logado e em qual pasta do sistema ele se encontra:

Além disso, conseguimos capturar tudo que o é passado pela rede, como comandos, ou parte deles:

Será que utilizando o SSH temos acesso a essas informações?

SSH (Secure Socket Shell)

Vamos conectar agora utilizando o SSH e pedir para o Wireshark farejar os pacotes.

Ao contrário do telnet que passamos apenas o endereço IP e depois colocamos o usuário que desejamos acessar, com o ssh falamos que desejamos acessar com o usuário no endereço (@) e passamos o endereço:

ssh [email protected]

Analisando os pacotes, vemos que não temos acesso as informações:

Com o SSH mesmo se o pacote for interceptado o seu conteúdo é ilegível, pois o único que sabe como descriptografar as informações é a máquina que estamos acessando.

Para saber mais

Mesmo o SSH criptografando os dados, ainda é possível descobrir o conteúdo dos pacotes. Existem várias técnicas, como o ataque Man in the Middle, que interceptam os pacotes e tentam abrir seu conteúdo. Ou ataques que tentam combinações para desvendar a criptografia.

Nos dias de hoje, o SSH é muito mais usado do que o Telnet justamente pelos benefícios da segurança.

Além de ser usado para conectar remotamente, com o SSH nós também conseguimos fazer transferências seguras de arquivos.

Segurança de redes é um assunto muito importante, principalmente nesse mundo tão conectado. Entender como funcionam os protocolos, os equipamentos de redes, os tipos de ataques, ajuda quando estamos pensando na política de segurança.

Aqui na Alura temos uma formação em redes. Nela você aprenderá sobre os protocolos e equipamentos de redes, aprenderá sobre o endereços IPv4 e IPv6 e aprenderá técnicas de segurança de redes e segurança web.

Yuri Matheus
Yuri Matheus

Yuri é desenvolvedor e instrutor. É estudante de Sistemas de Informação na FIAP e formado como Técnico em Informática no Senac SP. O seu foco é nas plataformas Java e Python e em outras áreas como Arquitetura de Software e Machine Learning. Yuri também atua como editor de conteúdo no blog da Alura, onde escreve, principalmente, sobre Redes, Docker, Linux, Java e Python.

Veja outros artigos sobre DevOps