5 práticas recomendadas para impedir ataques de login de força bruta ssh no Linux

5 práticas recomendadas para impedir ataques de login de força bruta ssh no Linux

Servidores em execução Ssh geralmente são um alvo suave para ataques de força bruta. Os hackers estão constantemente criando ferramentas e bots de software inovadores para automatizar ataques de força bruta que aumentam ainda mais o risco de intrusão.

Neste guia, exploramos algumas das dicas que você pode implementar para proteger seus servidores SSH de ataques de força bruta a distribuições Linux baseadas em RHEL e derivados debian.

Desativar a autenticação de senha SSH e ativar a autenticação de chave SSH

O método de autenticação padrão para Ssh é nome de usuário/autenticação de senha. Mas, como vimos, a autenticação de senha é propensa a ataques de força bruta. Para estar do lado seguro, é recomendável implementar a autenticação SSH baseada em chaves, onde a autenticação é possível por pares de chaves ssh públicas e privadas. A chave privada permanece no PC do cliente enquanto a chave pública é copiada para o servidor.

Durante a autenticação de chave SSH, o servidor verifica se o PC cliente possui a chave privada. Se o cheque for bem -sucedido, uma sessão de shell será criada ou o comando enviado ao servidor remoto será executado com sucesso. Temos um guia abrangente sobre como configurar a autenticação baseada em chave SSH.

Mesmo depois de configurar a autenticação baseada em chaves, seu servidor ainda é suscetível a ataques de força bruta pela simples razão de que a autenticação de senha ainda está ativa. Isso precisa ser desativado.

Portanto, edite o arquivo de configuração SSH padrão.

$ sudo vim/etc/ssh/sshd_config 

Colocou o PasswordAuthentication parâmetro para não como mostrado.

PasswordAuthentication no 
Desativar a autenticação de senha SSH

Em seguida, salve o arquivo e recarregue o SSH para aplicar as alterações.

$ sudo systemctl Reload SSH 

Implementar Fail2ban Intrusion Prevention Tool

Escrito em Pitão, Fail2ban é uma estrutura de prevenção de intrusões de código aberto que verifica arquivos de log de serviços quanto a falhas de autenticação e proíbe IPs que falham repetidamente verificações de autenticação por senha por uma quantidade especificada de tempo.

Fail2ban Monitora constantemente os arquivos de log do servidor para tentativas de intrusão e outras atividades nefastas, após um número predefinido de falhas de autenticação - na maioria dos casos, 3 tentativas de login com falha - Fail2ban bloqueia automaticamente o host remoto de acessar o servidor, e o host é mantido em um ''Cadeia'Por uma duração específica de tempo.

Ao fazer isso, Fail2ban reduz significativamente a taxa de tentativas de autenticação de senha incorreta. Confira nosso guia sobre como você pode instalar e configurar Fail2ban no Linux para proteger seu servidor de ataques de fortaleza.

Limite o número máximo de tentativas de autenticação SSH

Outra maneira simples de proteger seu servidor de ataques de força bruta é limitando o número de tentativas de login do SSH. Por padrão, isso está definido como 3, Mas se, por acaso.

Por exemplo, para definir as tentativas máximas de conexão para 3 definir o Maxauthtries parâmetro para 3 como mostrado

Maxauthtries = 3 

Mais uma vez, salve as mudanças e recarregue o serviço SSH.

$ sudo systemctl Reload SSH 

Implemente os envolventes do TCP para limitar o acesso SSH dos clientes

TCP Wrappers é uma biblioteca que fornece um host baseado em host Lista de controle de acesso (ACL) que restringe o acesso aos serviços TCP por clientes remotos com base em seus endereços IP

Hosts remotos de acessar serviços no sistema. Wrappers TCP usa o /etc/hosts.permitir e /etc/hosts.negar Arquivos de configuração (nessa ordem) para determinar se o cliente remoto tem permissão para acessar um serviço específico ou não.

Geralmente, esses arquivos são comentados e todos os hosts são permitidos através da camada de Wrappers TCP. Regras para permitir o acesso a um determinado serviço são colocadas no /etc/hosts.permitir arquivar e tenha precedência sobre as regras no /etc/hosts.negar arquivo.

Best Practice recomenda bloquear todas as conexões recebidas. Portanto, abra o /etc/hosts.negar arquivo.

$ sudo vim /etc /hosts.negar 

Adicione a seguinte linha.

TUDO TUDO 

Salve as alterações e saia do arquivo.

Em seguida, acesse o /etc/hosts.permitir arquivo.

$ sudo vim /etc /hosts.permitir 

Configurar os hosts ou domínios que podem se conectar ao servidor via SSH, como mostrado. Neste exemplo, estamos permitindo que apenas dois hosts remotos se conectem ao servidor (173.82.227.89 e 173.82.255.55) e negar o resto.

SSHD: 173.82.227.89 173.82.255.55 SSHD: Todos: negar 
Limitar o acesso SSH aos clientes

Salve as alterações e saia do arquivo de configuração.

Para testá -lo, tente se conectar ao servidor de um host que não está entre aqueles que você permitiu acesso a. Você deve obter um erro de permissão como mostrado.

$ ssh [email protegido] kex_exchange_identification: Leia: Redefinição de conexão por conexão de pares Redefinir por 173.82.235.7 Porta 22 Conexão perdida 

Implementar a autenticação de dois fatores do SSH

Autenticação de dois fatores Fornece uma camada de segurança adicional à autenticação de senha, tornando seu servidor mais seguro de ataques de força bruta. Um amplamente usado Autenticação de dois fatores solução é App do Google Authenticator E temos um guia bem documentado sobre como você pode configurar dois fatores de autenticação.

Conclusão

Este foi um resumo das 5 melhores práticas que você pode implementar para prevenir SSH Força bruta Login ataca e garantir a segurança do seu servidor. Você também pode ler como proteger e endurecer o servidor OpenSsh.