Firewall e Controle de Rede
O Debian 12 utiliza o nftables como sucessor oficial do iptables. Ele oferece uma estrutura unificada e maior performance através de atualizações atômicas de regras.
Estrutura do nftables
O nftables organiza as regras em tabelas e cadeias que não existem por padrão. Para um servidor de produção, utilizaremos a família "inet” que processa tanto IPv4 quanto IPv6 em um único conjunto de regras.
Configuração prática
Edite o arquivo:
sudo nano /etc/nftables.conf
Implementar uma política de “Default Deny” (negação padrão).
Snippet de código:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Permitir interface de loopback (serviços internos)
# Muitas aplicações locais (como bancos de dados ou serviços em containers)
# Bloquear isso causaria falhas em serviços internos que não expõem portas externamente.
iif "lo" accept
# Permitir tráfego estabelecido (essencial para apt-get, etc.)
# Esta é a regra de "estado".
# Sem isso, o servidor fica isolado de iniciar qualquer comunicação externa.
ct state established,related accept
# Descartar pacotes inválidos
# Uma medida de segurança essencial.
# Descarta pacotes que não seguem a conformidade do protocolo TCP/IP ou que não pertencem a nenhuma sessão conhecida.
# Isso ajuda a mitigar ataques de escaneamento furtivo e manipulação de pacotes.
ct state invalid drop
# Permitir ICMP (ping) - opcional para monitoramento
# Além do ping, o ICMP é vital para o MTU Path Discovery e para mensagens de erro de rede.
ip protocol icmp accept
# No IPv6, o ICMPv6 é obrigatório para funções básicas como a descoberta de vizinhos
ip6 nexthdr icmpv6 accept
# Permitir SSH na porta customizada
tcp dport 2222 accept
# Rate Limiting contra SSH brute force
# parâmetro: ct state new: Aplica-se apenas a novas tentativas de conexão.
# parâmetro: limit rate 3/minute: Permite uma média de 3 novas conexões por minuto.
# burst 3: Permite um "fôlego" inicial de 3 conexões rápidas antes de começar a aplicar o limite restrito.
# Se um atacante tentar um brute force, ele será bloqueado pela cota de tempo.
tcp dport 2222 ct state new limit rate 3/minute burst 3 packets accept
# Aceita HTTP/HTTPS se for um servidor web
# Deve ser ativada apenas se o servidor estiver rodando um serviço como Nginx ou Apache.
# tcp dport { 80, 443 } accept
# Log de pacotes descartados (opcional)
# Esta regra é excelente para depuração.
# Se colocada ao final de uma chain de entrada (input), ela registrará no dmesg ou /var/log/syslog
# todos os pacotes que não foram aceitos por nenhuma regra anterior antes de descartá-los.
# log prefix "NFT_DROP: " drop
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
Ative e persista as regras:
sudo systemctl enable nftables sudo nft -f /etc/nftables.conf
Servidor de E-mail para Disparar Alertas
Para que seu servidor Debian possa enviar e-mails de alerta, precisamos de um Mail Transfer Agent (MTA) configurado. Vamos usar o Postfix, que é poderoso e relativamente fácil de configurar para o envio de e-mails.
Atualizar o Sistema:
sudo apt update
sudo apt upgrade -y
Instalar o Postfix:
sudo apt install postfix mailutils -y
Durante a instalação do Postfix, o configurador interativo aparecerá:
- General type of mail configuration: Escolha Internet Site.
- System mail name: Insira o nome de domínio do seu servidor (ex: meuservidor.exemplo.com). Isso será usado como o nome de host nos e-mails. Se não tiver um domínio, use o hostname do servidor.
- Root and postmaster mail recipient: Deixe em branco ou coloque root. Você configurará um alias depois.
- Other destinations to accept mail for: Deixe o padrão (seu hostname e localhost.localdomain, localhost).
- Force synchronous updates on mail queue?: Escolha No.
- Local networks: Deixe o padrão.
- Mailbox size limit (bytes): 0 (sem limite).
- Local address extension character: +.
- Internet protocols to use: all.
Após a instalação, o serviço Postfix deve iniciar automaticamente:
sudo systemctl status postfix
Para a autenticação SASL (Simple Authentication and Security Layer) com o servidor SMTP remoto é necessário instalar o pacote libsasl2-modules:
sudo apt install libsasl2-modules -y
O arquivo de credenciais armazenará o usuário e senha do seu serviço SMTP externo. Proteja-o bem.
sudo nano /etc/postfix/sasl_passwd
Adicione a seguinte linha (substitua pelos seus dados):
[smtp.gmail.com]:587 [email protected]:sua_senha_de_aplicativo_gmail
Substituia:
- [email protected]: Seu endereço de e-mail do Gmail.
- sua_senha_de_aplicativo_gmail: Importante: Para o Gmail, você não pode usar sua senha normal. Você deve gerar uma Senha de Aplicativo (App Password) nas configurações de segurança da sua conta Google.
- Vá para sua Conta Google -> Segurança -> Como fazer login no Google -> Verificação em duas etapas -> Senhas de app. Se você tiver verificação em duas etapas ativada, poderá gerar uma senha de 16 dígitos.
Este arquivo contém credenciais sensíveis e deve ser legível apenas pelo root.
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
Configurar o main.cf (arquivo de configuração principal) do Postfix:
sudo nano /etc/postfix/main.cf
Adicione ou modifique as seguintes linhas no final do arquivo:
Configuração para retransmissão via SMTP externo
# Especifica o servidor SMTP de retransmissão e a porta (587 é a porta TLS padrão para submissão).
relayhost = [smtp.gmail.com]:587
# Habilita a autenticação SASL para o cliente SMTP (Postfix).
smtp_sasl_auth_enable = yes
# Aponta para o arquivo de credenciais que criamos.
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
# Impede a autenticação anônima.
smtp_sasl_security_options = noanonymous
# Força o uso de TLS para criptografia da conexão.
smtp_tls_security_level = encrypt
# Garante que o Postfix confie nos certificados das autoridades de certificação.
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Reinicie o Postfix para que as novas configurações sejam aplicadas:
sudo systemctl restart postfix
Teste o Envio de E-mail:
echo "Este e-mail é um teste de alerta do seu servidor Debian." | mail -s "Alerta de Teste do Servidor Debian" [email protected]
O log principal do Postfix é /var/log/mail.log (ou /var/log/syslog em algumas configurações). Procure por mensagens de erro após tentar enviar um e-mail:
sudo tail -f /var/log/mail.log
Ilustrações
SVG REPO
Disponível em: https://www.svgrepo.com/svg/354912/debian
Acesso em: 04 abr. 2026.
Referências
CUBEPATH.COM – Linux Server Hardening: Complete Guide
Disponível em: https://cubepath.com/docs/server-security/linux-server-hardening-complete-guide
Acesso em: 04 abr. 2026.