Pular para o conteúdo principal

Thanwer's Blog

Boas praticas para configuração do SSH

Table of Contents

Como voce pode ver no meu ultimo post sobre fail2ban, o serviço SSH é um alvo popular de ataques de força bruta, nós devemos tomar nosso tempo para melhorar a segurança de nossos servidores.

Além de regras do iptables e jails do fail2ban, temos alguns parâmetros que podemos ajustar nos nossos servidores para termos mais uma medida de proteção.

# Métodos de autenticação SSG

Por padrão, o serviço SSH permite autenticação por senha para todos os usuários exceto o root, oque é um bom começo, mas podemos fazer mais.

## Autenticação por chaves

O primeiro passo que voce pode fazer é desativar a autenticação por senha e utilizar apenas autenticação por chaves. Isso vai reduzir muito a eficiência de ataques de força bruta já que chaves SSH são muito mais difíceis de quebrar do que senhas.

Eu não vou mostrar como fazer isso, já que existem muitos tutoriais bons na internet sobre esse assunto, esse do Github por exemplo.

Outro passo é desativar o login do root, isso faz sentido por que o root é um usuário que existe em todos os sistemas GNU/Linux e isso o torna um alvo obvio.

#PermitRootLogin prohibit-password
PermitRootLogin no

## Autenticação por dois fatores (2FA)

Se voce quiser mais um nivel de segurança, voce pode implementar autenticação de dois fatores com o Google Autenticator.

## Desativar métodos de autenticação não utilizados

Por padrão o servidor SSH vem com vários métodos de autenticação habilitados que voce provavelmente não utiliza. Voce pode desabilita-los para reduzir a superfície de ataque do seu servidor:

ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no

# Melhorar algoritmos de criptografia do SSH

Seguindo esses guias voce pode desabilitar algoritmos de autenticação e criptografia vulneraveis e priorizar os mais fortes (AES-256-GCM, chacha20-poly1305).

Quando voce terminar, verifique com a ferramenta ssh-audit.

# Restringir acessos SSH

Além das regras do iptables, o arquivo /etc/ssh/sshd_config pode aplicar restrições baseadas em usuário, grupo e/ou IP de origem.

Por exemplo, para permitir conexões por IP, voce pode adicionar conforme os seguintes exemplos:

# Restrict to a specific IP address
AllowUsers *@192.0.0.2
# Restrict using CIDR notation
AllowUsers *@192.0.0.0/24
# Restrict a specific user to a specific IP address
Match User alice
  AllowUsers alice@192.0.0.2