OpenSSH é amplamente utilizado por administradores de sistemas Linux.
Você se lembra dos artigos que postei sobre o PuTTY e o comando SCP? Apenas recapitulando, trata-se de um cliente para protocolos do Secure Shell (SSH), muito utilizado nos sistemas Linux e Windows. Nessa mesma linha temos uma solução ainda mais avançada e bastante consolidada entre os profissionais de redes: o OpenSSH.
Por que essa ferramenta é tão relevante aos que trabalham com servidores? Começarei pelo fator segurança: o protocolo SSH é fundamental no ambiente virtual em que informações circulam a todo o momento. Se considerarmos a disseminação de Ransomware, a criticidade é ainda maior.
A sua função é blindar os dados enquanto eles são transferidos entre host e client (e vice-versa). Ou seja, o SSH assegura que nenhum invasor obtenha acesso ou mesmo interfira em uma transmissão de pacotes. Você consegue imaginar o caos numa rede corporativa desprovida dessa segurança?
Pois bem, agora que o propósito e a importância do protocolo SSH foram devidamente esclarecidas, focarei este artigo no OpenSSH. Aqui, você aprenderá:
- o que é o OpenSSH;
- como instalar o OpenSSH;
- dicas de segurança; e
- como configurar o firewall.
Vamos começar?
O que é o OpenSSH?
Lançado em 1999 pela equipe Open BSD, o OpenSSH é um conjunto de ferramentas livres e de código aberto, usadas para fornecer segurança e encriptar a comunicação entre computadores numa rede.
Todos os programas que fazem parte do OpenSSH têm em comum o fato de utilizarem o protocolo SSH. Essa variedade de utilitários específicos faz dele um software completo e com recursos avançados — não por acaso, o OpenSSH é amplamente utilizado por administradores de sistemas.
Como instalar o OpenSSH server em sua máquina?
A instalação do OpenSSH é um procedimento fácil e quase instantâneo. Basta que digitemos o seguinte commando:
sudo apt-get install openssh-server openssh-client
Se você estiver usando um sistema operacional baseado no RHEL (Red Hat Enterprise Linux), como CentOS e Fedora, digite:
yum -y install openssh-server openssh-clients
Passando para a configuração, é necessário editar o arquivo de configuração (sshd_config). Portanto inicie fazendo uma cópia de segurança via terminal:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.copia
Antes de concluir a instalação, convém fazer um pequeno teste para saber se o servidor OpenSSH está respondendo. Podemos fazer isso de forma simples, conectando o host local ao cliente OpenSSH, ou acionando um utilitário, como o nmap. Vamos aprender pelo segundo método? Siga as instruções:
sudo apt install nmap
nmap -v scanme.nmap.org
O que essas linhas de comando fazem? A primeira, obviamente, instala o nmap no sistema. A segunda linha executa uma análise das portas TCP/IP, exibindo a lista das portas ocupadas.
Quando o terminal exibir o resultado, certamente a porta 22 estará indicada como pertencente ao OpenSSH, pois essa a configuração padrão. Se você quiser alterar a porta, será preciso editar o arquivo de sshd_config utilizando um editor de texto.
Só isso? Sim, basicamente é isso. Porém só podemos garantir que o OpenSSH venha a funcionar corretamente se ajustarmos o firewall. Inclusive, se ele não está executando, o provável motivo é o bloqueio da porta 22. Abaixo, mostro como liberar o OpenSSH server em distribuições Ubuntu.
Como configurar o firewall UFW para liberar o OpenSSH
O firewall que acompanha o Ubuntu por padrão é o UFW (Uncomplicated Firewall). Como o nome já diz, o UFW se caracteriza pela facilidade de uso, mas sem deixar de lado o aspecto funcional — visto que o software deriva do poderoso IPTables.
Então, conforme veremos adiante, o procedimento é simples. Digite um dos comandos abaixo:
sudo ufw allow ssh
ou
sudo ufw allow 22/tcp
Agora, faça o mesmo teste que expliquei no tópico anterior e confira se o servidor está funcionando corretamente. Positivo? Então vamos partir para as dicas de segurança para o OpenSSH.
Três dicas de segurança para o servidor OpenSSH
Assim como em outras áreas de TI, a Segurança da Informação é repleta de melhores práticas e macetes para aprimorar a linha defensiva de sua rede. Blindar a transferência de pacotes que trafegam pelo servidor, sem dúvida alguma, é algo que merece tamanha atenção.
Mas o OpenSSH em si não oferece o suficiente? Sim, os recursos garantem um alto nível de segurança, porém temos de ter em mente a utilização em ambientes corporativos, cuja troca de informações requer sigilo absoluto.
Certo, então como podemos fazer otimizações? Separei três dicas de métodos e ferramentas.
Desabilitar login do root
A maioria das distribuições do Linux tem a opção de login remoto como root habilitada, permitindo que qualquer usuário consiga autenticar-se como root. O Ubuntu, por exemplo, é uma exceção à regra, pois o root é desabilitado por padrão.
Por que é bom deixar a configuração desabilitada? Um dos principais motivos é prevenir ataques de força bruta de invasores para obtenção da credencial root. Para desabilitá-lo, edite o arquivo sshd_config:
vi /etc/ssh/sshd_config
Em seguida, localize a linha PermitRootLogin e insira a sua frente a opção “NO”, como no exemplo abaixo.
PermitRootLogin no
Para finalizar, reinicie o processo digitando o seguinte comando:
/etc/init.d/sshd restart
Monitorar atividades no OpenSSH server
Retomando o tema intrusão que levantei no tópico anterior, um dos meios práticos mais eficazes para identificar tentativas de ataques é o monitoramento do servidor a partir dos registros (LOG). Isto é, observando-se certa quantidade de solicitações de login rejeitadas, ficam nítidos os indícios de que uma ameaça esteja invadindo o servidor.
Essa estratégia pode ser implementada no OpenSSH com auxílio do DenyHosts. Trata-se de uma ferramenta de segurança open source que faz varreduras no sistema em busca de indícios de ataques de força bruta e derivados (ataque de dicionário, por exemplo), banindo endereços de IP que atingem uma quantidade (ajustada pelo administrador) de falhas de login.
Analisar registros de atividades suspeitas
Em complemento ao monitoramento de atividades suspeitas no servidor, recomendo o uso da ferramenta Fail2Ban para analisar arquivos LOG. Além disso, o utilitário fornece opções administrativas ao usuário para agir mediante um ataque, como banir (ou retirar banimento) temporariamente até que a invasão seja confirmada.
Como vimos ao longo deste post, o OpenSSH é a solução mais completa para se conduzir um servidor SSH. Devido à quantidade de ferramentas específicas para esse protocolo que estão inseridas no OpenSSH, não há dúvidas de que estamos falando de um programa extremamente confiável e indispensável a administradores de sistemas.
Quer aprender mais sobre essas e outras ferramentas de segurança e, principalmente, como utilizá-las no Linux? No site Profissionais Linux, você aprende o caminho mais rápido (e sem atalhos) para alcançar os seus objetivos. Acesse-o agora mesmo!