O acesso via SSH é a principal porta de entrada em servidores Linux. E como toda porta, precisa de controle. Deixar o SSH livre para qualquer usuário do sistema é um convite aberto para problemas.
Neste post, vamos mostrar como restringir quem pode acessar o servidor via SSH. Desde liberar usuários ou grupos específicos, até bloquear o acesso de root e criar uma configuração minimalista e segura.
Por que limitar o SSH?
Por padrão, qualquer usuário do sistema pode tentar logar via SSH. Isso inclui contas administrativas, contas de serviço e até contas esquecidas. Mesmo que o login falhe, o simples fato de um usuário estar disponível já abre margem para ataques de força bruta, engenharia social ou escalonamento de privilégios.
Limitar quem pode tentar logar é um passo simples, mas extremamente eficaz na proteção do servidor.
Permitindo apenas usuários específicos
Abra o arquivo de configuração do SSH com:
sudo vi /etc/ssh/sshd_config
Adicione a seguinte linha ao final do arquivo:
AllowUsers usuario1 usuario2
Aqui, apenas usuario1
e usuario2
poderão autenticar via SSH. Todos os outros serão automaticamente bloqueados, mesmo que existam no sistema.
Depois, salve o arquivo e reinicie o serviço SSH com:
sudo systemctl restart sshd
Permitindo grupos de usuários
Se preferir controlar o acesso por grupos, primeiro crie um grupo com:
sudo groupadd sshusers
Em seguida, adicione os usuários desejados ao grupo:
sudo usermod -aG sshusers usuario1
sudo usermod -aG sshusers usuario2
Abra o sshd_config
novamente:
sudo vi /etc/ssh/sshd_config
Adicione:
AllowGroups sshusers
E finalize com:
sudo systemctl restart sshd
Bloqueando usuários e grupos
É possível negar acesso a usuários ou grupos específicos, mesmo que eles estejam autorizados em outro lugar. Basta adicionar as seguintes linhas no sshd_config
:
DenyUsers usuarioindesejado
DenyGroups grupobloqueado
Esse recurso é útil quando se quer manter um grupo autorizado, mas bloquear um ou outro usuário individualmente.
Impedindo acesso direto do root
Por padrão, muitas distribuições permitem login direto com o usuário root via SSH. Isso é uma falha de segurança grave.
Para desativar o login remoto do root, insira no sshd_config
:
PermitRootLogin no
Com essa configuração ativa, o root só poderá ser acessado por sudo
após um login com outro usuário autorizado.
Configuração Ultra-Restritiva
Se você quer o nível máximo de controle: apenas um usuário pode acessar o SSH. Todos os outros — inclusive root — são bloqueados.
No sshd_config
, defina:
PermitRootLogin no
AllowUsers seuadmin
Depois disso, ninguém além de seuadmin
terá acesso remoto ao servidor. A segurança fica bem mais objetiva.
Checklist Devdata de Segurança SSH
[ ] PermitRootLogin no aplicado
[ ] AllowUsers ou AllowGroups configurado
[ ] DenyUsers e DenyGroups utilizados quando necessário
[ ] Serviço SSH reiniciado (systemctl restart sshd)
[ ] Testes de acesso feitos de outra máquina
[ ] Acesso root via sudo garantido em conta autorizada
Esse é o tipo de controle de acesso que todo servidor de produção deveria ter — simples, direto e poderoso. Segurança começa com restrição.