Sitemap

Tutorial: Configuração Segura de SSH num Servidor Linux

3 min readApr 2, 2025
Press enter or click to view image in full size

Introdução

Neste tutorial, vamos configurar um servidor Linux para permitir conexões SSH seguras, com foco no bloqueio de autenticação com o utilizador root, na criação de uma chave para aceder ao servidor Linux sem password e na configuração utilizando o Fail2Ban.

Pré-requisitos

  • Uma máquina virtual (VM), preferencialmente Linux, com SSH instalado e para a realização das configurações;
  • Acesso à máquina local — pode ser o PC pessoal — para testar a conexão SSH.

1. Desativar Autenticação com o Utilizador Root

O primeiro passo é garantir que não é possível fazer login através do utilizador root via SSH.

  1. Abra o ficheiro de configuração do SSH:
sudo nano /etc/ssh/sshd_config

2. Localize a linha PermitRootLogin e altere para:

PermitRootLogin no

Nota: No caso de não encontrar o PermitRootLogin no ficheiro, podem adicionar no fim do mesmo.

3. Salve o ficheiro e saia do mesmo (Ctrl + X, Y, Enter).

4. Reinicie o serviço SSH para aplicar as mudanças:

sudo systemctl restart ssh

2. Desativar Acesso via SSH sem Senha

  1. Abra novamente o ficheiro de configuração do SSH:
sudo nano /etc/ssh/sshd_config

2. Localize a linha PasswordAuthenticatione altere para:

PasswordAuthentication no

3. Salve o ficheiro e saia do mesmo (Ctrl + X, Y, Enter).

4. Reinicie o serviço SSH para aplicar as mudanças:

sudo systemctl restart ssh

3. Criar um Banner de Aviso no SSH

  1. Abra o ficheiro de banner:
sudo nano /etc/issue.net

2. Adicione a seguinte mensagem:

Bem-vindo ao SSH de ASS! CUIDADO!

3. Salve o ficheiro e saia do mesmo (Ctrl + X, Y, Enter).

4. No ficheiro de configuração do SSH (/etc/ssh/sshd_config), certifique-se de que a linha Banner está configurada:

Banner /etc/issue.net

5. Reinicie o serviço SSH para aplicar as mudanças:

sudo systemctl restart ssh

4. Alterar o Porto Padrão do SSH

Passo 1: Modificar o ficheiro de configuração do SSH

  1. Abra o ficheiro de configuração do SSH:
sudo nano /etc/ssh/sshd_config

2. Altere a linha Portpara:

Port 5555

3. Salve o ficheiro e saia do mesmo (Ctrl + X, Y, Enter).

4. Reinicie o serviço SSH para aplicar as mudanças:

sudo systemctl restart ssh

Passo 2: Atualizar as regras da Firewall

  1. Verifique se o UFW está instalado
sudo apt list --installed | grep ufw

Se não aparecer nada, significa que o UFW não está instalado.

2. Instalar o UFW (caso não esteja instalado):

sudo apt update && sudo apt install ufw -y

3. Permitir a porta 5555 e ativar o UFW (se não estiver ativo):

sudo ufw allow 5555/tcp
sudo ufw enable

4. Verifique as regras da Firewall:

sudo ufw status

5. Criar uma Chave SSH para Acesso Sem Senha

Passo 1: Gerar a chave SSH

No PC pessoal, gere um par de chaves SSH:

ssh-keygen -t rsa -b 4096
  • Quando pedir um local para guardar a chave, pressiona Enter para usar o padrão (~/.ssh/id_rsa).
  • Se perguntar por uma passphrase, podes deixar em branco.

Passo 2: Copiar a chave para o servidor

Utilize o ssh-copy-id para copiar a chave para o servidor:

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 5555 utilizador@IP_VM

Passo 3: Testar a Conexão Sem Senha

Agora, tente conectar-se ao servidor sem precisar de senha:

ssh utilizador@IP_VM -p 5555

6. Configuração do Fail2Ban

Passo 1: Instalar o Fail2Ban

Caso ainda não estiver instalado, faça a instalação:

sudo apt install fail2ban

Passo 2: Configurar o Fail2Ban

Edite o ficheiro da configuração:

sudo nano /etc/fail2ban/jail.local

Adicione a seguinte configuração para proteger o SSH:

[sshd]
enabled = true
port = 5555
maxretry = 3 # Permitir apenas 3 tentativas de autenticação
bantime = 600
ignoreip = 127.0.0.1 192.168.1.100 # Ignore 2 IPs ou redes à escolha

# Permitir apenas autenticação de dois IPs específicos
filter = sshd
findtime = 600
action = iptables[name=SSH, port=5555, protocol=tcp]

Passo 3: Reiniciar o Fail2Ban

Reinicie o Fail2Ban para aplicar as configurações:

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

Conclusão

Neste tutorial, configurámos o acesso SSH seguro, desabilitámos o login como root, utilizámos as chaves SSH e configurámos o Firewall e o Fail2Ban, cujo objetivo é a proteção do servidor. Assim, o servidor está mais seguro contra ataques de brute-force e de acessos indesejados.

--

--

Afonso Antunes
Afonso Antunes

Written by Afonso Antunes

Degree in Computer Engineering, Master in Cybersecurity

No responses yet