Hardening SSH no Linux | Tarefas rotineiras | Linux
- Hardening SSH no Linux | Tarefas rotineiras | Linux
Objetivo
Esta documentação mostra uma baseline de hardening para o sshd em Linux, com foco em reduzir as brechas mais comuns:
- login remoto como
root - autenticação por senha
- acesso irrestrito de usuários
- abuso de forwarding
- permissões inseguras em arquivos do SSH
A base da configuração vem das diretivas oficiais do sshd_config, como PermitRootLogin, PasswordAuthentication, PubkeyAuthentication, AuthenticationMethods, AllowUsers, AllowGroups e StrictModes. (Man Page do OpenBSD)
O que eu recomendo como padrão seguro
Para um servidor Linux comum em produção:
- desabilitar login SSH do
root - desabilitar autenticação por senha
- permitir apenas autenticação por chave pública
- restringir acesso com
AllowUsersouAllowGroups - manter validação rígida de permissões com
StrictModes yes - desabilitar recursos de forwarding que você não usa
Importante: a documentação oficial deixa claro que desabilitar apenas AllowTcpForwarding ou X11Forwarding não resolve tudo sozinho se o usuário ainda tem shell, então essas opções devem ser vistas como redução de superfície, não como controle absoluto. (Man Page do OpenBSD)
Arquivo principal
Normalmente o arquivo principal fica em:
/etc/ssh/sshd_config
Em várias distros também existem includes em:
/etc/ssh/sshd_config.d/*.conf
Antes de editar, faça backup:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Configuração recomendada
Abaixo está uma configuração segura e prática para a maioria dos cenários administrativos.
# /etc/ssh/sshd_config
Port 22
Protocol 2
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
AuthenticationMethods publickey
UsePAM yes
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
PermitUserEnvironment no
LoginGraceTime 30
MaxAuthTries 3
MaxSessions 2
MaxStartups 10:30:60
ClientAliveInterval 300
ClientAliveCountMax 2
IgnoreRhosts yes
HostbasedAuthentication no
StrictModes yes
# Escolha UMA das abordagens abaixo:
# 1. Liberar apenas usuários específicos
AllowUsers adolfosp
# 2. Ou liberar apenas um grupo administrativo
# AllowGroups sshadmins
O que cada diretiva faz
PermitRootLogin no
Impede login remoto direto como root. Isso reduz o alvo óbvio mais atacado em qualquer servidor exposto. Essa é uma das medidas mais importantes de hardening. A diretiva é oficial do sshd_config. (Man Page do OpenBSD)
PasswordAuthentication no
Desabilita autenticação por senha. Isso elimina brute force e password spraying via SSH como vetor principal. A documentação oficial do OpenSSH trata essa diretiva diretamente. (Man Page do OpenBSD)