$ linux modulo_4

Firewall, logs e Fail2ban

Fechar as portas que não precisam estar abertas, aprender a ler os logs que contam a história de um incidente, e automatizar o bloqueio de quem insiste em tentar invadir.

O que você vai aprender

1. Firewall com UFW

A regra de ouro de um firewall é negar tudo por padrão e liberar só o necessário. No UFW (Uncomplicated Firewall), isso é direto: defina as políticas padrão, libere as portas dos serviços que você realmente usa, e só então ative.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
ATENÇÃO Libere a porta SSH antes de ativar o firewall. Em uma VPS, mantenha o console do provedor disponível.

2. Logs que explicam o incidente

Quando algo dá errado, os logs são a primeira fonte de verdade. O journalctl permite filtrar por prioridade e por janela de tempo, o que evita vasculhar milhares de linhas irrelevantes.

sudo journalctl -p warning..alert -b
sudo journalctl -u ssh --since "1 hour ago"
sudo tail -f /var/log/auth.log

3. Fail2ban

Mesmo com autenticação por chave, é comum ver um volume enorme de tentativas automatizadas de login contra a porta 22. O Fail2ban monitora os logs e bane temporariamente IPs que ultrapassam um limite de tentativas.

sudo tee /etc/fail2ban/jail.d/sshd.local <<'EOF'
[sshd]
enabled = true
port = ssh
maxretry = 5
findtime = 10m
bantime = 1h
EOF
sudo systemctl enable --now fail2ban

Com maxretry = 5 e findtime = 10m, um IP que errar 5 vezes em 10 minutos leva um ban de 1 hora. Ajuste esses valores conforme o perfil de tráfego do seu servidor.

EXERCÍCIO Configure o UFW liberando apenas as portas 22, 80 e 443, instale o Fail2ban com a jail de SSH acima, e confirme com sudo fail2ban-client status sshd.

Sumário do curso

Precisa de algo assim, sob medida pro seu negócio?

agendar diagnóstico gratuito →