fbpx

Guia completo sobre o protocolo SSH

Guia completo sobre o protocolo SSH

Powered by Rock Convert

A segurança do seu servidor — e, portanto, seus dados — deve ser uma das coisas mais importantes para gerenciar. Ter o seu servidor comprometido pode ser um problema que vai desde um pequeno aborrecimento e queda temporária de serviço até um nível raiz, que pode levar a uma perda completa de dados, tempo e, principalmente, dinheiro.

Levando em conta esse cenário, é fundamental contar com recursos de segurança adequados. O SSH é um conjunto de protocolos e softwares usado para transmissão segura de dados, tunelamento de aplicativos e administração remota de sistemas. Ele é implantado em milhões de servidores e é usado em quase todos os ambientes de data center.

Ele é ainda mais amplamente usado para processos máquina a máquina automatizados, incluindo backups, atualizações de banco de dados, aplicativos de monitoramento de integridade do sistema e gerenciamento automatizado de sistemas.

Em suma, o protocolo SSH desempenha um papel crítico no funcionamento das modernas redes digitais automatizadas encontradas em todos os negócios ou data centers. Entenda mais sobre esse recurso!

O que é e como funciona o protocolo SSH?

Basicamente, o SSH — ou Secure Socket Shell — é um protocolo de rede que proporciona aos usuários uma forma segura de acessar um computador em uma rede desprotegida.

Ele fornece comunicação de dados criptografados entre dois computadores conectados e uma autenticação robusta em uma rede aberta, como a Internet. Ele é amplamente usado por administradores de rede para gerenciar sistemas e aplicativos remotamente, permitindo que eles façam login em outro computador em uma rede, executem comandos e movam arquivos de um computador para outro.

As implementações de SSH geralmente incluem suporte para protocolos de aplicativos usados para emulação de terminal ou transferência de arquivos. O SSH também pode ser usado para criar túneis seguros para outros protocolos de aplicativo por exemplo, para executar com segurança sessões gráficas remotamente.

Embora seja possível usar o SSH com um ID de usuário e senha comuns como credenciais, ele depende mais dos pares de chaves públicas para autenticar os hosts entre si. Os usuários individuais ainda devem usar seu ID de usuário e senha (ou outros métodos de autenticação) para se conectarem ao próprio host remoto, mas a máquina local e a remota se autenticam separadamente entre si.

Isso é feito gerando um par de chaves públicas exclusivo para cada host na comunicação; uma única sessão requer dois pares de chaves públicas — um para autenticar a máquina remota na máquina local e outro para autenticar a máquina local na máquina remota.

As conexões SSH são usadas para proteger muitos tipos diferentes de comunicação entre uma máquina local e um host remoto, incluindo acesso remoto seguro a recursos, execução de comandos a distância, entrega de correções e atualizações de software e outras tarefas administrativas ou de gerenciamento.

Para quais casos o protocolo SSH é indicado?

O SSH é um protocolo versátil. Sua estrutura e recursos de segurança permitem que ele seja usado de várias maneiras, como para acesso remoto, encaminhamento de porta, encapsulamento e transferência segura de arquivos. Confira algumas aplicações.

Acesso remoto

O acesso remoto oferece aos usuários uma maneira de efetuar login em outro computador ou servidor de sua própria máquina. Ele é usado para acessar os arquivos locais da máquina de destino ou executar serviços nela, sem ter que estar fisicamente lá.

Programas como o Telnet e o rlogin também têm essa funcionalidade, mas não apresentam os recursos de segurança do SSH. As medidas de criptografia e autenticação envolvidas no SSH permitem que os usuários se conectem a outro servidor ou computador de maneira protegida, mesmo em uma rede intermediária potencialmente perigosa.

O acesso remoto com SSH é comumente implementado para que os funcionários possam trabalhar remotamente ou para permitir que o departamento de TI realize tarefas sem ter que ir fisicamente para a máquina. Ele pode ser usado para administração a distância, gerenciamento de infraestrutura de rede, para configurar automação, criar backups e muito mais.

Encaminhamento de porta

O encaminhamento de porta é usado para transferir solicitações de um endereço e número de porta para outro conjunto. Aplica a tradução de endereços de rede para redirecionar as portas entre uma rede local e um computador remoto, permitindo que você acesse um dispositivo de fora da rede.

Encapsulamento

Os protocolos de encapsulamento — ou tunelamento — servem para mover dados entre redes. Os “túneis” podem ser implantados para permitir que protocolos não nativos sejam executados em redes que normalmente não os suportariam. Outro uso comum é para fornecer segurança em uma rede vulnerável.

Os protocolos de tunelamento envolvem pacotes críticos dentro da carga útil de outro pacote. O tunelamento SSH permite aos usuários contornar a segurança da rede, vincular dispositivos usando um protocolo de rede não nativo e proteger os dados que estão sendo transmitidos. Eles são frequentemente usados para conectar usuários remotos aos recursos online de sua organização de maneira segura.

SFTP

O Protocolo de Transferência de Arquivos SSH (FTP), às vezes conhecido como Protocolo de Transferência de Arquivos Seguro, oferece uma maneira protegida de acessar, transferir e gerenciar arquivos. É uma alternativa resguardada ao FTP e aproveita o protocolo SSH para enviar, receber e administrar arquivos com segurança.

O que é o Shell?

Você provavelmente sabe o que é uma concha — shell, em inglês. Elas protegem, por exemplo, tartarugas, caracóis e caranguejos de coisas que podem desejar seus interiores saborosos. Então, se você fizer a conexão lógica, um shell, no mundo da TI, pode ser considerado uma cobertura para algo.

Em termos de computadores e software, um shell é uma interface de usuário para as ofertas de um sistema operacional. Os sistemas operacionais destinam-se a harmonizar e controlar todas as diferentes partes de um computador, de modo que ele possa facilitar todas as variadas funções e softwares que exigimos para eles.

Na verdade, você provavelmente tem interações com um shell diariamente: a boa interface gráfica que usamos para controlar nossos computadores, telefones e tablets é um tipo de shell. Isso inclui sistemas operacionais como o Windows 10, iOS 12, Android 8.0 Oreo etc.

Em um nível alto, você pode dividir um sistema operacional em duas partes: a parte da interface do usuário com a qual todos estamos familiarizados e os interiores saborosos do sistema operacional subjacente — estrutura que está fazendo todo o levantamento pesado nos bastidores que tomamos como garantido. Nada de muito novo para quem trabalha com TI, certo?

Qual a diferença do SSH para o FTP?

Em primeiro lugar, precisamos entender o que é FTP. A transferência de arquivos pela rede usando o File Transfer Protocol tem suas raízes no ano de 1980, quando o primeiro RFC para o protocolo FTP foi publicado.

O FTP fornece funções para carregar, baixar e excluir arquivos, criar e excluir diretórios e ler o conteúdo do diretório. Embora ele seja muito popular, tem certas características que dificultam seu uso.

As principais desvantagens são a falta de um formato uniforme para listagem de diretórios (esse problema foi parcialmente resolvido introduzindo o comando MLST, mas não é suportado por alguns servidores) e a presença de uma conexão secundária — a conexão DATA. A segurança no FTP é fornecida empregando o protocolo SSL/TLS para criptografía de canal. A versão segura do FTP é chamada de FTPS.

Nos sistemas UNIX, o SSH cresceu como padrão de segurança. A principal função dele era proteger o acesso remoto ao shell e aos sistemas UNIX. Posteriormente, o SSH foi estendido com o protocolo de transferência de arquivos — primeiro SCP (no SSH 1.x), depois SFTP (no SSH2).

A abreviatura SFTP é muitas vezes utilizada por engano para especificar algum tipo de FTP seguro, pelo qual as pessoas mais frequentemente significam FTPS. Outro erro similar é que o SFTP é considerado um tipo de FTP sobre SSL. Na verdade, o SFTP é uma abreviação de “SSH File Transfer Protocol”.

O SFTP é um protocolo binário, cuja versão mais recente é padronizada na RFC 4253. Todos os comandos são compactados em mensagens binárias e enviados ao servidor, que responde com os pacotes de resposta binária.

Em versões posteriores, o SFTP foi estendido para fornecer não apenas operações de upload/download de arquivos, mas também algumas operações do sistema de arquivos, como bloqueio de arquivo, criação de link simbólico etc.

FTPS e SFTP usam uma combinação de um algoritmo assimétrico, algoritmo simétrico e algoritmo de troca de chaves.

Uma chave SSH contém apenas uma chave pública (a chave privada associada é armazenada separadamente). Não contém informações sobre o proprietário da chave. Também não tem informações que permitam validar com segurança a integridade e a autenticidade.

Algumas implementações de software SSH usam certificados X.509 para autenticação, mas na verdade eles não validam toda a cadeia de certificados — somente a chave pública é usada, o que torna essa autenticação incompleta e semelhante à autenticação de chave SSH.

Quais são os diferentes tipos de criptografia utilizados pelo SSH?

Para garantir a transmissão de informações, o SSH emprega tipos diferentes de técnicas de manipulação de dados em vários pontos da transação. Veja como cada um funciona.

Simétrica

O relacionamento dos componentes que criptografam e descriptografam os dados determina se um esquema de criptografia é simétrico ou assimétrico.

A criptografia simétrica é um tipo de criptografia em que uma chave pode ser usada para criptografar mensagens para a outra parte e também para descriptografar as mensagens recebidas do outro participante.

Esse tipo de esquema de criptografia é geralmente chamado de criptografia “segredo compartilhado” ou criptografia de “chave secreta”. Normalmente, há apenas uma chave usada para todas as operações, ou um par de chaves em que o relacionamento é fácil de descobrir e é trivial derivar a chave oposta.

Chaves simétricas são utilizadas pelo SSH para criptografar toda a conexão. Ao contrário do que alguns usuários supõem, os pares de chaves assimétricas públicas / privadas que podem ser criados são usados apenas para autenticação, não para criptografar a conexão. A criptografia simétrica permite que até mesmo a autenticação por senha seja protegida contra a espionagem.

O cliente e o servidor contribuem para o estabelecimento dessa chave, e o segredo resultante nunca é conhecido por terceiros. A chave secreta é criada por meio de um processo conhecido como algoritmo de troca de chaves. Essa troca faz com que o servidor e o cliente cheguem à mesma chave independentemente, compartilhando certos dados públicos e manipulando-os com determinados dados secretos.

A chave de criptografia simétrica criada por esse procedimento é baseada em sessão e constitui a criptografia real dos dados enviados entre o servidor e o cliente. Depois que isso for estabelecido, o restante dos dados deverá ser criptografado com esse segredo compartilhado. Isso é feito antes de autenticar um cliente.

Assimétrica

A criptografia assimétrica é diferente da criptografia simétrica, pois, para enviar dados em uma única direção, duas chaves associadas são necessárias. Uma dessas chaves é conhecida como chave privada, enquanto a outra é chamada de chave pública.

A chave pública pode ser compartilhada livremente com qualquer parte. Está associada à sua chave emparelhada, mas a chave privada não pode ser derivada da chave pública. A relação matemática entre a chave pública e a chave privada permite que a chave pública criptografe as mensagens que só podem ser descriptografadas pela chave privada.

Essa é uma habilidade unidirecional, o que significa que a chave pública não tem capacidade de descriptografar as mensagens escritas, nem pode descriptografar qualquer coisa que a chave privada possa enviá-la.

A chave privada deve ser mantida secreta e nunca deve ser compartilhada com outra parte. Esse é um requisito fundamental para que o paradigma de chave pública funcione. Em virtude desse fato, qualquer entidade capaz de descriptografar essas mensagens demonstrou que está no controle da chave privada.

O SSH utiliza criptografia assimétrica em alguns lugares diferentes. Durante o processo de troca de chave inicial usado para configurar a criptografia simétrica (aplicada para criptografar a sessão), a criptografia assimétrica é usada. Nesse estágio, ambas as partes produzem pares de chaves temporários e trocam a chave pública para produzir o segredo compartilhado que será usado para criptografia simétrica.

O uso melhor discutido da criptografia assimétrica com o SSH vem da autenticação baseada em chave SSH. Pares de chaves SSH podem ser usados para autenticar um cliente em um servidor. O cliente cria um par de chaves e depois carrega a chave pública para qualquer servidor remoto que deseje acessar.

Após a criptografia simétrica ser estabelecida para proteger a comunicação entre o servidor e o cliente, o cliente deve autenticar para ter acesso permitido.

O servidor pode usar a chave pública nesse arquivo para criptografar uma mensagem de desafio para o cliente. Se o cliente puder provar que foi capaz de descriptografar essa mensagem, demonstrou que possui a chave privada associada. O servidor pode então configurar o ambiente para o cliente.

Hashing

Outra forma de manipulação de dados da qual o SSH se aproveita é o hashing criptográfico. As funções hash criptográficas são métodos para criar uma “assinatura” sucinta ou um resumo de um conjunto de informações. Seus principais atributos distintivos são que eles nunca devem ser revertidos, são impossíveis de influenciar de maneira previsível e são únicos.

Usar a mesma função de hashing e mensagem deve produzir o mesmo hash; modificar qualquer parte dos dados deve produzir um hash diferente. Um usuário não deve ser capaz de produzir a mensagem original de um determinado hash, mas deve saber se uma determinada mensagem produziu um dado hash.

Dadas essas propriedades, os hashes são usados principalmente para fins de integridade de dados e para analisar a autenticidade da comunicação.

Como parte da negociação de criptografia simétrica descrita acima, um algoritmo de código de autenticação de mensagem (MAC) é selecionado. O algoritmo é escolhido trabalhando-se na lista de escolhas MAC aceitáveis do cliente. O primeiro da lista que o servidor suporta será usado.

Cada mensagem enviada após a criptografia ser negociada deve conter um MAC para que a outra parte possa verificar a integridade do pacote. O MAC é calculado a partir do segredo compartilhado simétrico, o número de sequência do pacote da mensagem e o conteúdo real da mensagem.

Quais são as ferramentas necessárias para um cliente SSH?

Existem muitas razões pelas quais alguém precisaria usar um cliente SSH. De um modo geral, nós os usamos para acessar os sistemas em um local remoto. A seguir, apresentamos algumas das ferramentas necessárias para um cliente SSH.

MobaXterm

O MobaXterm oferece uma solução completa de gerenciamento remoto, mas tem uma desvantagem: não é código aberto. No entanto, há uma versão gratuita disponível que, embora não seja tão rica em recursos, ainda contém uma enorme quantidade de funcionalidades.

Ele pode estabelecer conexões gráficas de área de trabalho remota para computadores Windows e Linux. Na verdade, ele tem um cliente VNC embutido para se conectar a qualquer computador com capacidade VNC.

Ele também tem um navegador SFTP gráfico para facilitar a transferência de arquivos de e para o computador remoto. Outros recursos avançados incluem um servidor X completo e encaminhamento X11 e suporte para plugins. Você pode optar por baixar a versão do instalador.

Você simplesmente instala como qualquer outro aplicativo do Windows. Como alternativa, há também uma versão portátil. Você faz o download como um arquivo zip contendo o executável MobaXterm e não precisa instalá-lo. Copie-o para uma chave USB e use-o em qualquer lugar.

A versão gratuita tem as seguintes limitações:

  • o número máximo de sessões simultâneas é 12;
  • você pode estabelecer um máximo de 2 túneis SSH;
  • tem um limite de 4 macros;
  • há um limite de tempo de 360 segundos para TFTP, NFS e Cron.

SmarTTY

O SmarTTY é um cliente SSH gratuito que suporta a cópia de arquivos e diretórios com o SCP e a edição de arquivos no local. É um dos melhores clientes SSH para Windows. Pode não ser tão completo quanto o MobaXterm, mas tem tudo o que é necessário para gerenciar remotamente um dispositivo.

Com a maioria dos servidores via SSH suportando até 10 sub-sessões por conexão, o SmarTTY permite que os usuários os abram em uma nova guia sem precisar fazer login novamente.

Além disso, o SmarTTY tem um utilitário de transferência de arquivos gráficos no estilo Windows, que permite transferir arquivos de e para o computador remoto. Diretórios inteiros podem ser transferidos tão facilmente quanto arquivos individuais.

Outro ótimo recurso do SmarTTY, especialmente para executar tarefas administrativas rápidas em dispositivos remotos, é o editor no local. Ao navegar por arquivos remotos, você tem a opção de editá-los direto do software. Não há necessidade de baixar o arquivo, editá-lo localmente e enviá-lo de volta.

Como uma empresa de hospedagens contribuirá nesse sentido?

Sem dúvida, o SSH é uma ferramenta importante usada para garantir um alto nível de segurança para sites. Portanto, se você estiver em busca de um parceiro de hospedagem para configurar um site, é fundamental descobrir se ele inclui esse recurso importante no pacote.

Contar com essa empresa de hospedagem permite que os setores de TI aproveitem os benefícios do gerenciamento de chaves SSH sem as desvantagens e a sobrecarga de gerenciá-las manualmente.

Nesse sentido, os gestores de TI concedem acesso a dispositivos hospedados e os usuários geram suas próprias chaves SSH. O usuário armazena a chave privada em seu sistema e carrega a chave pública no portal do usuário do provedor.

Quando essa chave pública é carregada com êxito no portal do usuário, ela é automaticamente distribuída para a infraestrutura da nuvem à qual o usuário individual recebeu acesso. Em seguida, permite que os usuários acessem todos os seus recursos de TI com um único conjunto de credenciais, como os antigos, mas dessa vez a partir da nuvem.

Em resumo, compreender o funcionamento básico do protocolo SSH pode auxiliar os gestores de TI a entender as particularidades de segurança desse recurso. Muitos profissionais ainda consideram esse processo complexo, mas ele é mais simples do que possa parecer.

Mesmo que você não seja um administrador de sistemas avançado, o protocolo SSH é um recurso inestimável para todos os tipos de pequenas tarefas, e deve fazer parte do seu kit de ferramentas.

Seu negócio já conta com um provedor de hospedagem que contempla o protocolo SSH? Entre em contato conosco e saiba como podemos otimizar e transformar sua realidade positivamente!

Deixe um comentário

avatar

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

  Subscribe  
Notify of