6 formas de proteger o SSH do servidor

Compartilhe:

Profissional de TI explicando configurações de segurança do ssh

Acessar servidores remotamente é uma tarefa cotidiana para profissionais de ti, e para executar esse trabalho o serviço mais usado é o ssh.

O SSH (Secure Shell) permite o acesso remoto seguro a servidores, mas por ser tão usado, ele também se torna um dos principais alvos de ataques automatizados, tentativas de força bruta e explorações maliciosas.

Se o ssh estiver mal configurado, um invasor pode ganhar acesso total ao sistema, comprometendo dados, aplicações e até outros servidores conectados à mesma rede.

Por isso, adotar boas práticas para proteger o SSH não é apenas recomendado, mas indispensável para garantir a segurança dos sistemas executados no servidor, e a seguir você aprenderá 6 dicas valiosas de segurança tornando o ssh mais seguro.

1. Alterar porta padrão do SSH

Uma das maneiras mais simples de melhorar a segurança do SSH e proteger o servidor é alterar a porta padrão do serviço. Por padrão, o SSH utiliza a porta 22/TCP, e isso é amplamente conhecido por atacantes e bots automatizados.

Grande parte dos ataques começa tentando explorar a porta padrão, realizando tentativas de login por força bruta. Ao mudar a porta para um número diferente e menos previsível, você já reduz significativamente o volume de ataques automáticos que atingem o servidor diariamente.

Para alterar a porta que o ssh receberá conexões(padrão é a 22/TCP), edite o arquivo /etc/ssh/sshd_config, substituindo ou comentando:

por:

O exemplo acima a porta padrão foi alterada para 2422, mas você pode alterar a porta para outro número, desde que não seja uma porta usada por outro serviço. Veja as principais portas e por quais serviços são usadas.

Após salvar as alterações, reinicie o ssh:

No RHEL/AlmaLinux ou Rocky Linux é necessário executar alguns comandos a mais antes de reiniciar o ssh.

Embora essa medida não impeça completamente um atacante experiente, ela funciona como uma primeira barreira, dificultando ataques básicos.

2. Proteger o SSH desabilitando o login do usuário root

Outra prática fundamental para proteger o SSH é desativar o login direto do usuário root. Caso tenha alguma experiência, com certeza já viu nos logs tentativas de autenticação pelo ssh usando o usuário root de endereços IP desconhecidos.

Permitir que esse usuário root se conecte diretamente via SSH aumenta o risco de comprometimento total do servidor, já que a conta de usuário root possui privilégios administrativos completos no sistema.

A abordagem mais segura é criar um a conta de usuário sem privilégios, e tentar acessar a partir dela a conta de usuário root a partir, bloqueando o acesso remoto pelo SSH do root.

Para desativar o acesso remoto do usuário root através do ssh, edite o arquivo /etc/ssh/sshd_config e inclua a seguinte linha:

Na maioria das instalações do openssh-server essa configuração está comentada, nesse caso basta descomentar e atribuir o valor “no”. Após salvar as alterações reinicie o ssh:

Dessa forma, mesmo que um invasor consiga acesso inicial ao sistema do servidor, ele ainda encontrará mais obstáculos antes de assumir o controle total do sistema.

3. Permitir acesso de usuários específicos

Outra medida para aumentar a segurança e proteger o ssh no servidor é permitir que somente contas de usuários específicas ou membros de grupos específicos tenham autorização para fazer acesso remoto ao servidor.

O serviço ssh permite controlar o acesso para usuários específicos através da diretiva AllowUsers
, as contas de usuário que você autorizar precisam está cadastradas no sistema.

Exemplo prático, vamos supor que você queira autorizar o acesso remoto ao servidor através do ssh somente para as contas de usuário linus e suzan, para isso edite o arquivo /etc/ssh/sshd_config e inclua a seguinte configuração:

Salve as alterações e reinicie o serviço do ssh:

A partir desse momento somente os usuários linus e suzan(do exemplo) poderá acessar via ssh e qualquer conta de usuário que não estiver na lista da diretiva AllowUsers terá acesso negado.

Permitir acesso de grupos específicos

Para autorizar somente contas de usuários que são membros de grupos específicos use a diretiva AllowGroups. A prática recomendada, antes de alterar as configurações do serviço ssh, crie um grupo e adicione ao grupo os usuários que queira autorizar o acesso.

Por exemplo, você quer autorizar o acesso somente para quem é membro do grupo access-ssh, então primeiro crie o grupo:

Adicione os usuários que quer autorizar o acesso remoto ao servidor ao grupo, por exemplo adicione o usuário linus:

E por fim altere o arquivo /etc/ssh/sshd_config, comente a linha que tem a diretiva AllowUsers e inclua a seguinte configuração:

Salve as alterações e reinicie o serviço do ssh:

A partir desse momento os membros dos grupos listados na diretiva AllowGroups terão autorização para acessar remotamente o servidor através do ssh.

4. Restringir acesso por endereço IP e grupos específicos

Outra forma de controlar o acesso remoto via ssh é restringir acessos somente para membros de grupos que você quiser, mas esses membros somente podem acessar o servidor a partir de endereços IP específicos.

Para permitir que grupos específicos acessem via SSH somente a partir de um endereço IP específico, você deve combinar as diretivas Match Address e AllowGroups.

Exemplo prático, você quer que membros do grupo access-ssh somente acessem o servidor a partir do endereço IPv4 171.34.123.45, adicione no final do arquivo /etc/ssh/sshd_config a seguinte configuração:

É importante você saber que o grupo chamado disabled( que não existe no sistema ), logo ninguém terá permissão de acessar. Salve as alterações e reinicie o ssh:

A configuração acima vai fazer o ssh autorizar acesso remoto somente para usuários membros do grupo especificado ( exemplo: access-ssh ) desde que o acesso seja feito a partir do IPv4 171.34.123.45.

5. Proteger o SSH restringindo acesso sem senhas

Autorizar acesso de usuários com senha em branco é uma das piores práticas de segurança e é fortemente recomendado que evite isso, pois é uma vulnerabilidade grave.

Para proteger o ssh contra acessos de contas de usuários que não tenham senha você pode usar a diretiva PermitEmptyPasswords, que é uma configuração do serviço SSH que controla se as contas de usuário podem fazer login com uma senha em branco.

Para desativar o acesso de usuários sem senha edite o arquivo /etc/ssh/sshd_config e adicione a seguinte configuração:

Salve as alterações e reinicie o serviço do ssh:

Por padrão, o ssh já desabilita o acesso de usuários sem senhas, mas é importante reforçar para que administradores de sistema verifiquem isso no arquivo de configuração.

6. Tempo limite para fazer login através do SSH

A última dica de segurança para proteger o ssh é limitar o tempo que o SSH espera para que um usuário faça login com diretiva LoginGraceTime, isso vai ajudar a prevenir contra:

  • Ataques de força bruta: A configuração define um período de tolerância mais curto, minimizando a janela de oportunidade para bots automatizados tentarem continuamente senhas diferentes.
  • Limita conexões não autenticadas simultâneas: Ajuda a evitar o esgotamento de recursos, limitando o número de conexões não autenticadas que podem permanecer abertas simultaneamente.

A diretiva LoginGraceTime específica o tempo máximo permitido para que um usuário se autentique com sucesso (insira suas credenciais) após estabelecer uma conexão.

Para configurar o ssh adicione ou descomente a configuração abaixo no arquivo de configuração do ssh /etc/ssh/sshd_config, ou, caso não exista inclua a configuração, o valor da diretiva é um número em segundos.

Após salvar o arquivo, reinicie o serviço SSH para aplicar a alteração:

Se o usuário não fizer login dentro desse período(no exemplo: 30 segundos), o serviço SSH desconecta a sessão.

7. Autenticação com chaves SSH

Sim, eu sei que já foram passadas 6 formas de proteger o SSH no servidor, mas, mais segurança nunca é de mais não é mesmo ?

E substituir a autenticação de senhas de usuários por autenticação que usa chaves criptográficas aumenta consideravelmente a segurança.

Para aprender o que é, como funciona e como configurar autenticação usando chaves ssh recomendo a leitura desse tutorial completo.

Conclusão

O SSH é uma ferramenta essencial para acessar e administrar servidores por meio de acessos remotos, e usá-lo corretamente pode tornar seu trabalho mais fácil e mais seguro protegendo servidores de ataques.

Comece com o básico, como alterar a porta padrão, desativar o login do usuário root e depois explore gradualmente recursos avançados.

E uma dica final é manter o sistema operacional e o serviço SSH sempre atualizados. Atualizações frequentes corrigem falhas de segurança conhecidas que podem ser exploradas por atacantes.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.