Menor Privilégio Defesa em Profundidade Debian 13 (Trixie) Produção & Auditoria

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.

1 Hardening do Daemon OpenSSH (/etc/ssh/sshd_config.d/)

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.

terminal — /etc/ssh/sshd_config.d/99-hardening.conf
# 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
Aviso Crítico de Bloqueio (Lockout): Antes de fechar sua sessão atual do terminal, abra uma nova janela de terminal e teste a conexão via chave SSH na porta 2222 (ssh -p 2222 nathaniel@IP_DO_SERVIDOR). Nunca encerre a sessão atual antes de validar o login com sucesso!
2 Firewall de Rede com nftables & UFW

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.

terminal — root@deb13-srv01
# 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
3 Proteção Ativa contra Ataques de Força Bruta (Fail2ban)

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.

terminal — /etc/fail2ban/jail.local
# 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
4 Hardening de Kernel e Pilha TCP/IP (/etc/sysctl.d/)

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:

terminal — /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
5 Atualizações Automáticas de Segurança (unattended-upgrades)

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.

terminal — root@deb13-srv01
# 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
6 Auditoria e Varredura de Conformidade com Lynis

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):

terminal — root@deb13-srv01
# 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
Resultado Esperado: Após aplicar as etapas deste guia, o índice de blindagem do servidor deverá atingir uma pontuação superior a 80/100 no Lynis, qualificando o ambiente como altamente resistente a ameaças externas e em total conformidade com os padrões de segurança defensiva.