Hardening e Blindagem Defensiva no Debian 13
Um servidor recém-instalado possui serviços e portas expostas que não devem permanecer em sua configuração padrão. Este guia aplica as melhores práticas mundiais (CIS Benchmarks, ANSSI e DISA STIG) para elevar drasticamente o nível de segurança do seu servidor Debian 13.
O SSH é a principal porta de entrada administrativa e, portanto, o alvo número um de ataques automatizados de força bruta e exploração de credenciais. No Debian 13, utilize o diretório modular /etc/ssh/sshd_config.d/ para criar políticas customizadas sem alterar o arquivo principal.
# Criar arquivo de configuração de hardening para o SSH sudo tee /etc/ssh/sshd_config.d/99-hardening.conf << 'EOF' # 1. Porta alternativa para mitigar varreduras automáticas Port 2222 # 2. Proibir login direto como superusuário root PermitRootLogin no # 3. Proibir senhas convencionais; exigir chaves criptográficas (Ed25519 / RSA) PasswordAuthentication no PubkeyAuthentication yes # 4. Proibir senhas em branco e autenticação interativa de teclado PermitEmptyPasswords no KbdInteractiveAuthentication no # 5. Limitar tentativas de autenticação e sessões simultâneas MaxAuthTries 3 MaxSessions 2 # 6. Desconexão automática por inatividade (5 minutos) ClientAliveInterval 300 ClientAliveCountMax 2 # 7. Desativar encaminhamentos desnecessários em servidores X11Forwarding no AllowTcpForwarding no AllowAgentForwarding no # 8. Restringir acesso exclusivamente aos usuários autorizados AllowUsers nathaniel EOF # Testar a sintaxe antes de reiniciar o serviço (essencial para evitar lockout!) sudo sshd -t # Reiniciar o serviço SSH sudo systemctl restart ssh
ssh -p 2222 nathaniel@IP_DO_SERVIDOR). Nunca encerre a sessão atual antes de validar o login com sucesso!
No Debian 13, o nftables é o subsistema padrão e canônico de filtragem de pacotes do kernel Linux. Para administração simplificada em servidores de borda, o UFW (Uncomplicated Firewall) atua como um excelente frontend.
# 1. Instalar o UFW sudo apt update && sudo apt install -y ufw # 2. Política restritiva padrão: Bloquear qualquer entrada, permitir saídas sudo ufw default deny incoming sudo ufw default allow outgoing # 3. Liberar explicitamente apenas as portas dos serviços essenciais sudo ufw allow 2222/tcp comment 'Porta SSH Segura' sudo ufw allow 80/tcp comment 'HTTP Web' sudo ufw allow 443/tcp comment 'HTTPS Web SSL' # 4. Habilitar o firewall na inicialização do sistema sudo ufw enable # 5. Conferir status detalhado das regras ativas sudo ufw status verbose
O Fail2ban monitora continuamente os arquivos de log do sistema (como /var/log/auth.log ou via systemd journal) e cria regras dinâmicas de firewall para banir temporária ou permanentemente endereços IP que apresentem comportamentos suspeitos ou falhas sucessivas de autenticação.
# 1. Instalar o Fail2ban sudo apt install -y fail2ban # 2. Configurar a cadeia de proteção em jail.local sudo tee /etc/fail2ban/jail.local << 'EOF' [DEFAULT] # Tempo de banimento: 1 dia (24 horas) bantime = 1d # Janela de análise: 10 minutos findtime = 10m # Limite de tentativas com erro: 3 maxretry = 3 # Integrar bloqueio diretamente via regras UFW banaction = ufw [sshd] enabled = true port = 2222 backend = systemd EOF # 3. Reiniciar e habilitar o serviço sudo systemctl restart fail2ban sudo systemctl enable fail2ban # 4. Verificar IPs bloqueados na cadeia do SSH sudo fail2ban-client status sshd
O kernel Linux permite ajustar em tempo de execução diversos comportamentos de proteção contra ataques de negação de serviço (DoS/DDoS), falsificação de pacotes (IP Spoofing) e vazamento de ponteiros de memória. Crie o arquivo /etc/sysctl.d/99-security-hardening.conf:
sudo tee /etc/sysctl.d/99-security-hardening.conf << 'EOF' # 1. Proteção contra ataques SYN Flood net.ipv4.tcp_syncookies = 1 # 2. Proteção contra IP Spoofing (Reverse Path Filtering estrito) net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # 3. Ignorar pacotes ICMP broadcast (evita ataques Smurf) net.ipv4.icmp_echo_ignore_broadcasts = 1 # 4. Recusar e desativar ICMP redirects (previne ataques MITM na LAN) net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 # 5. Desativar roteamento IP de pacotes net.ipv4.ip_forward = 0 net.ipv6.conf.all.forwarding = 0 # 6. Registrar em log pacotes com rotas forjadas ou inválidas (Martians) net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 # 7. Proteção de memória e segurança do Kernel kernel.kptr_restrict = 2 kernel.dmesg_restrict = 1 kernel.randomize_va_space = 2 kernel.sysrq = 0 EOF # Aplicar todos os parâmetros imediatamente sem reiniciar sudo sysctl --system
Vulnerabilidades de dia zero e falhas críticas em bibliotecas (como OpenSSL ou GnuTLS) devem ser corrigidas assim que a equipe de segurança do Debian publica os patches. O pacote unattended-upgrades automatiza o download e a aplicação exclusiva de patches de segurança sem intervenção humana.
# 1. Instalar o serviço e o detector de serviços que exigem reinício sudo apt update && sudo apt install -y unattended-upgrades needrestart # 2. Habilitar o serviço interativamente (escolha "Sim" na caixa de diálogo) sudo dpkg-reconfigure -plow unattended-upgrades # 3. Testar a execução em modo simulação (Dry-Run) sudo unattended-upgrade --dry-run --debug
O Lynis é a ferramenta de auditoria de segurança open-source mais consagrada para ambientes Linux e Unix. Ele analisa centenas de verificações individuais (contas, permissões, kernel, firewall, criptografia, logs e software instalado) e atribui um Hardening Index (Índice de Blindagem):
# 1. Instalar o Lynis sudo apt update && sudo apt install -y lynis # 2. Executar a auditoria completa do sistema operacional sudo lynis audit system --quick # 3. Consultar as sugestões e avisos específicos gerados pela auditoria sudo grep -E 'WARNING|SUGGESTION' /var/log/lynis.log