Português

Proteger a ligação SSH

Proteger a ligação SSH contra ataques de brute force

A porta SSH predefinida (22) é frequentemente alvo de ataques automatizados. Este guia explica como alterar a porta SSH e reforçar a segurança do servidor.

📋 Pré-requisitos

  • VPS com acesso root ou sudo
  • Ligação SSH ativa
  • UFW instalado e configurado (ver Instalar UFW)

⚠️ IMPORTANTE: Manter uma sessão SSH aberta

Importante: Antes de começar, mantenha uma sessão SSH ativa. Se algo correr mal, ainda poderá ligar-se e corrigir o problema.

Abra dois terminais SSH em paralelo:

  • Terminal 1: sessão de trabalho (para fazer alterações)
  • Terminal 2: sessão de reserva (por precaução)

🔧 Alterar a porta SSH

Passo 1: Escolher uma nova porta

Escolha uma porta entre 1024 e 65535. Evite portas comuns:

  • 22 (SSH predefinida, muito visada)
  • 80, 443 (HTTP/HTTPS)
  • 3306, 5432 (bases de dados)

Exemplos: 2222, 2200, 1022, 5000

Passo 2: Editar a configuração SSH

Bash
# Editar ficheiro de configuração SSH sudo nano /etc/ssh/sshd_config

Passo 3: Alterar a porta

Encontre a linha #Port 22 e modifique-a:

# Antes
#Port 22

# Depois (substitua 2222 pela sua porta)
Port 2222

Dica: Use Ctrl + W no nano para procurar "Port 22"

Passo 4: Guardar e sair

No nano:

  • Ctrl + X para sair
  • Y para confirmar
  • Enter para guardar

Passo 5: Verificar a sintaxe

Bash
# Verificar que a configuração é válida sudo sshd -t

Se o comando não devolver erros, a configuração está correta.

Passo 6: Autorizar a nova porta no UFW

Bash
1# Autorizar a nova porta SSH (substitua 2222 pela sua porta) 2sudo ufw allow 2222/tcp 3 4# Opcional: remover a porta 22 se já não a utilizar 5sudo ufw delete allow 22/tcp 6 7# Recarregar UFW 8sudo ufw reload 9 10# Verificar que a regra está ativa 11sudo ufw status | grep 2222

Passo 7: Reiniciar o serviço SSH

Bash
1# Reiniciar SSH com a nova configuração 2sudo systemctl restart sshd 3 4# Verificar que SSH continua a funcionar 5sudo systemctl status sshd

Passo 8: Testar a nova ligação

Num novo terminal, teste a ligação com a nova porta:

Bash
# Substitua 2222 pela sua porta e user@your-ip pelas suas credenciais ssh -p 2222 user@your-ip

Se a ligação funcionar, pode fechar a sessão antiga na porta 22.

🔒 Opções de segurança adicionais

Desativar login root

Importante: Desativar o login root via SSH é uma excelente prática. Certifique-se de ter um utilizador com sudo configurado antes de fazer esta alteração.

Bash
1sudo nano /etc/ssh/sshd_config 2 3# Encontrar e modificar esta linha 4PermitRootLogin no 5 6# Guardar e reiniciar 7sudo sshd -t 8sudo systemctl restart sshd

Limitar tentativas de ligação

Bash
1sudo nano /etc/ssh/sshd_config 2 3# Adicionar ou modificar estas linhas 4MaxAuthTries 3 # Máximo 3 tentativas 5LoginGraceTime 30 # Timeout de 30 segundos

Desativar autenticação por palavra-passe (apenas chaves SSH)

Bash
sudo nano /etc/ssh/sshd_config PasswordAuthentication no PubkeyAuthentication yes

Aviso: Só ative esta opção se tiver configurado uma chave SSH e testado que funciona!

Configuração segura recomendada

Exemplo completo para /etc/ssh/sshd_config:

Port 2222
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 30
Protocol 2
X11Forwarding no
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

Após cada alteração:

Bash
sudo sshd -t sudo systemctl restart sshd

🔄 Criar um utilizador com sudo (se necessário)

Bash
1sudo adduser myuser 2sudo usermod -aG sudo myuser 3su - myuser 4sudo whoami 5# Deve mostrar "root"

✅ Verificação final

Bash
sudo systemctl status sshd sudo ss -tlnp | grep ssh sudo sshd -T | grep port sudo tail -f /var/log/auth.log

🛡️ Proteção adicional com fail2ban

Bash
sudo apt update sudo apt install fail2ban -y sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local

Configuração recomendada para SSH:

INI
1[sshd] 2enabled = true 3port = 2222 4maxretry = 3 5bantime = 3600 6findtime = 600
Bash
sudo systemctl start fail2ban sudo systemctl enable fail2ban sudo fail2ban-client status sshd

🆘 Resolução de problemas

Não consigo ligar-me via SSH

  1. Use a sessão de reserva (Terminal 2 que manteve aberto)
  2. Sem sessão de reserva: contacte o suporte Infrawire ou use a consola VNC/KVM:
    Bash
    sudo nano /etc/ssh/sshd_config # Repor Port 22 sudo systemctl restart sshd

A porta SSH não responde

Bash
sudo netstat -tlnp | grep ssh sudo ufw status | grep 2222 sudo journalctl -u sshd -n 50

📚 Recursos adicionais

❓ Perguntas frequentes

P: Que porta devo escolher para SSH?
R: Entre 1024 e 65535. Evite portas comuns (80, 443, 3306). Portas como 2222, 2200 ou 1022 são boas opções.

P: Preciso mesmo de alterar a porta SSH?
R: É altamente recomendado. Reduz significativamente os ataques automatizados de brute force.

P: Como ligar com a nova porta?
R: Use a opção -p: ssh -p 2222 user@your-ip


Boa segurança! 🚀

Precisa de ajuda?

Dúvidas sobre este guia? A nossa equipa e a comunidade estão disponíveis para ajudar.

Fique a par das últimas ofertas, descontos e promoções especiais.

Ver promoções