🐚Segurança do SSH
O serviço SSH é um dos mais visados em ataques de força bruta, visto que ele permite o acesso remoto ao servidor. Portanto, seu hardening é essencial. Algumas práticas simples, como a autenticação via chaves, já podem ser bastante efetivas. Entretanto, o arquivo /etc/sshd_config
permite o uso de diversos outros parâmetros.
Configurações gerais
Port 22: permite alterar a porta padrão do serviço SSH.
Protocol 2: força o uso da versão mais segura do protocolo.
PermitRootLogin no: desabilita o acesso direto via usuário root.
MaxAuthTries 3: número máximo de tentativas de autenticação para uma determinada sessão.
LoginGraceTime 20: tempo que o usuário tem para concluir todo o procedimento de login.
PasswordAuthentication no: desabilita o login via senhas.
PermitEmptyPasswords no: impede tentativas de login com senhas vazias.
X11Forwarding no: desativa o encaminhamento X11 (para execução de aplicações gráficas).
PermitUserEnvironment no: desativa a passagem de variáveis de ambiente.
Banner /etc/ssh/custom_banner: altera a mensagem padrão ao acessar o sistema.
Uma boa prática desativar protocolos de autenticação não utilizados:
ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no
Por fim, também podemos desabilitar opções de tunelamento:
AllowAgentForwarding no
AllowTcpForwarding no
PermitTunnel no
Restrição de acesso por IP
É possível restringir o acesso ao servidor apenas a endereços ou redes autorizadas:
AllowUsers *@10.10.10.217
AllowUsers *@192.168.0.0/24
Autenticação via chaves
O parâmetro PubkeyAuthentication yes
habilita a autenticação via chaves. Lembre-se de adicionar sua chave pública no arquivo ~/.ssh/authorized_keys
para conseguir acessar o servidor.
Exemplo de configuração
A seguir está um exemplo de configuração do arquivo /etc/sshd_config
de acordo com as melhores práticas:
Protocol 2
Port 2222
LoginGraceTime 10
PermitRootLogin no
MaxAuthTries 3
IgnoreRhosts yes
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
UsePAM yes
ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
PrintMotd no
PrintLastLog yes
PermitUserEnvironment no
ClientAliveInterval 300
ClientAliveCountMax 2
PermitTunnel no
Banner /etc/ssh/custom_banner
AllowUsers *@10.10.10.217
Conclusão
Este capítulo explorou boas práticas de configuração do SSH. Por ser um dos serviços mais visados por atacantes, sua proteção é fundamental para evitar acessos indevidos. Sem dúvidas uma excelente abordagem é combinar o uso de chaves com endereços IP autorizados.
Last updated