A segurança do seu servidor — e, portanto, dos 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 informações, tempo e, principalmente, dinheiro.
Levando em conta esse cenário, é fundamental contar com recursos de segurança adequados. O protocolo SSH é um conjunto de comandos e softwares usado para garantir a transmissão segura de dados, tunelamento de aplicativos e administração remota de sistemas. A solução é implantada em milhões de servidores, sendo usado em quase todos os ambientes de data center.
O protocolo SSH é utilizado amplamente em processos automatizados entre máquinas, incluindo backups, atualizações de banco de dados, aplicativos de monitoramento de integridade do sistema e gerenciamento automatizado de sistemas. Em suma, a solução desempenha um papel crítico no funcionamento das modernas redes digitais automatizadas encontradas em todos os negócios ou data centers.
Para ajudar você a conhecer melhor a tecnologia, mostramos neste conteúdo o que é, como funciona, como surgiu, quais são as camadas e quando o protocolo SSH é indicado para os clientes. Além disso, explicamos o que fazer para executar, quais são as vantagens e quais ferramentas são necessárias no SSH, solução caracterizada pela rápida conexão, tráfego criptografado e flexibilidade de uso em sistemas de TI.
Continue a leitura e conheça mais sobre o protocolo SSH!
O que é 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. Desse modo, o protocolo SSH fornece comunicação de dados criptografados entre dois computadores conectados e uma autenticação robusta em uma rede aberta, como a Internet.
Ao mesmo tempo, o protocolo SSH é 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.
Como funciona o protocolo SSH?
As implementações de SSH incluem, geralmente, suporte para comandos de aplicativos em etapa de emulação de terminal ou transferência de arquivos. O protocolo também pode ser utilizado 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.
Como surgiu o protocolo SSH?
Neste momento, você já sabe o que é e como funciona o protocolo SSH. Mas como essa tecnologia foi desenvolvida ao longo da história? Tudo começou em 1995, quando o professor Tatu Ylönen, da Universidade de Tecnologia de Helsinque, descobriu, em função de uma invasão na rede institucional da faculdade, um sniffer, isto é, um programa usado com frequência para monitorar e analisar o tráfego de redes.
O sniffer rastreado por Tatu Ylönen havia capturado informações de milhares de usuários, coletando senhas privadas e armazenado-as em um banco de dados. A descoberta foi suficiente para que o professor lançasse, em poucas semanas, a primeira versão de código aberto, o chamado Open Source, para o protocolo SSH.
Com o tempo, a empresa criada por Tatu Ylönen tornou o protocolo SSH proprietário, mas um grupo de desenvolvedores se baseou na última versão desse código aberto para criar o OpenSSH, incorporado, ainda hoje, aos sistemas operacionais Windows e Linux.
Para você ter ideia, após mais de duas décadas, a descoberta de Tatu Ylönen e as respectivas atualizações, realizadas por desenvolvedores independentes, estão presentes em mais da metade dos servidores web do planeta, o que indica a segurança e a eficácia da solução tecnológica.
Afinal, o que é o shell em serviços de TI?
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?
Quais são os elementos do protocolo SSH?
Você já sabe o que é um shell, termo que está na sigla Secure Socket Shell, nomeando o protocolo SSH. Mas quais são os principais elementos que formam a solução tecnológica? Para responder à questão, é preciso entender o que caracteriza e como funcionam as camadas de transporte, autenticação e conexão.
Primeiramente, a camada de transporte é responsável por estabelecer uma comunicação segura entre o cliente e o servidor. A camada, que funciona durante e após a autenticação, otimiza a troca de dados, realizando a compactação e o armazenamento das informações em cache, o que aumenta a segurança dos sites. A tecnologia também supervisiona a criptografia, descriptografia e proteção da integridade de dados dos usuários.
A camada de autenticação, por sua vez, tem a função de comunicar os métodos de autenticação ao cliente. Relacionando-se à etapa de transporte, a tecnologia também realiza o processo de autenticação de um usuário, garantindo a eficiência do sistema de TI.
Por fim, a camada de conexão cumpre o objetivo de gerenciar a comunicação entre as máquinas, sendo realizada após as camadas de transporte e autenticação.
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.
Quais são as vantagens do protocolo SSH?
Você deve estar se perguntando, agora, quais são as vantagens do SSH para o sistema de TI da sua empresa, certo? Para responder à questão, fizemos uma lista com as principais características desse protocolo. Veja!
Criptografia
A lista não poderia começar de outro modo, pois uma das grandes vantagens do protocolo SSH é a criptografia do tráfego. A característica permite que os usuários tenham ações privadas na rede, desde a transferência de um arquivo até a navegação na web e a execução de comandos. O motivo é que as chaves SSH fornecem logon único (SSO), possibilitando a alternância entre contas sem que seja necessário digitar várias senhas.
Conexão
Outra informação importante sobre o protocolo SSH é que o Secure Shell garante a conexão dos servidores, realizando alterações por meio do terminal ou de ferramentas específicas. Desse modo, as chaves SSH são empregadas para automatizar o acesso aos servidores, com scripts, sistemas de backup e instrumentos de gerenciamento de configuração.
Flexibilidade
Por fim, a flexibilidade é uma forte vantagem do SSH, utilizado em scripts e outros softwares para permitir o acesso dos programas a alguns dados específicos. Ao garantir a criptografia e a conexão, o protocolo torna essa ação, realizada de maneira remota, completamente segura para o usuário.
Como executar o protocolo SSH?
Agora que já sabe quais são as vantagens do SSH, é fundamental entender como executar esse protocolo nos sistemas Windows e Linux. Confira!
Protocolo SSH no Windows
O protocolo SSH foi disponibilizado, inicialmente, na versão beta do Windows 10 Fall Creators Update. A instalação do recurso nativo é simples, basta seguir estes passos:
- abra as configurações do Windows;
- acesse a seção “Aplicativos”;
- procure a seção “Aplicativos e recursos”;
- clique na seção “Gerenciar recursos opcionais”;
- espera a lista ser carregada e, quando o OpenSSH não estiver instalado, clique em “Adicionar um recurso”;
- encontre o item “Cliente OpenSSH” e clique nessa opção caso deseje instalar o Servidor OpenSSH no servidor;
- clique em “Instalar” para concluir a execução do protocolo SSH no Windows.
Depois de ativar o protocolo SSH, abra o terminal, digite “ssh usuario@servidor” no espaço determinado para a ação e tecle “Enter” para finalizar a ação.
Protocolo SSH no Linux
Para quem utiliza o sistema Linux, é preciso seguir este passo a passo para executar o protocolo SSH:
- instale o OpenSSH ao abrir um terminal e executar alguns comandos com permissão de superusuário;
- digite os seguintes comandos no terminal: “# chkconfig sshd on” e “# service sshd”, iniciando um novo parágrafo a cada comando, que não deve incluir as aspas, apenas o conteúdo aspeado;
- caso tenha firewall, abra a porta SSH em seu firewall;
- navegue para “/opt/MicroStrategy/ServicesRegistration/yaml/” e abra o “installation_list.yaml”;
- modifique o “Caminho Comum” para o diretório de instalação do MicroStrategy Common Files, digitando no lugar o comando “/var/opt/MicroStrategy”;
- modifique o “InstallType” para “Porta” ao usar o número da porta do seu servidor SSH;
- modifique a “Versão” para usar o número de versão do MicroStrategy;
- navegue para “/opt/MicroStrategy/ServicesRegistration/jar” e execute o comando “# java -jar svcsreg-admin.jar parse SSH-Server” para gerar um novo arquivo JSON no servidor SSH;
- reinicie o Registro do MicroStrategy Services com o comando “# java -jar <MSTR_INSTALL_PATH>/ServicesRegistration/jar/svcsreg-admin.jar control consul restart”;
Ao final, o usuário deve abrir a visualização “Topologia” na estação de trabalho para iniciar os serviços.
Qual é a diferença do protocolo SSH para o protocolo 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.
Por que contratar empresa de hospedagens para otimizar o protocolo SSH?
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!