Guia de Configuração de Firewall Linux Moderno
No mundo da segurança Linux, o firewall é sua primeira linha de defesa. Por décadas, o iptables foi o rei indiscutível da filtragem de pacotes. No entanto, o kernel do Linux evoluiu e, com ele, as ferramentas que usamos para gerenciar o tráfego de rede. Hoje, o nftables substituiu o iptables como o backend preferido, e ferramentas de nível superior como o firewalld tornaram as configurações complexas mais acessíveis.
Este guia o levará pelo cenário moderno dos firewalls Linux, ajudando você na transição dos comandos legados para conjuntos de regras modernos e de alta performance.
1. A Evolução: De Iptables a Nftables
Embora o iptables ainda seja amplamente utilizado, ele possui várias limitações estruturais, incluindo um design monolítico que o torna lento para atualizar grandes conjuntos de regras e difícil de estender.
Gerador de Regras Nftables
O nftables foi projetado para resolver esses problemas. Ele usa uma sintaxe muito mais limpa e um único framework para IPv4 e IPv6. Um gerador de regras nftables é uma ótima maneira de construir regras de alta performance sem precisar memorizar a nova sintaxe.
Principais vantagens do nftables:
- Performance: Atualizações atômicas e um mecanismo de correspondência mais rápido.
- Regras Combinadas: Não há necessidade de usar comandos
iptableseip6tablesseparados. - Sets e Maps: Gerencie com eficiência milhares de endereços IP em uma única regra.
Exemplo de uma regra nftables para permitir SSH:
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
tcp dport 22 accept
}
}
2. Gerenciamento Dinâmico de Firewall: Firewalld
Para muitas distribuições (como RHEL, Fedora e CentOS), o firewalld é a ferramenta de gerenciamento padrão. Ele fornece uma abordagem dinâmica e baseada em zonas para o firewall.
Gerador de Regras Firewalld
Ao contrário dos firewalls tradicionais que exigem um recarregamento completo para aplicar as alterações (derrubando as conexões existentes), o firewalld permite atualizações dinâmicas. Um gerador de regras firewalld ajuda você a gerenciar:
- Zonas: Atribua interfaces a diferentes níveis de confiança (ex:
public,internal,dmz). - Serviços: Ative serviços pré-definidos como
http,httpsoussh. - Regras Ricas (Rich Rules): Crie regras mais complexas, como limitação de taxa ou log de tráfego específico.
Comandos comuns do firewalld:
firewall-cmd --get-active-zonesfirewall-cmd --zone=public --add-service=https --permanentfirewall-cmd --reload
3. Melhores Práticas para Firewalls Modernos
Independentemente da ferramenta escolhida, certos princípios de segurança são universais:
- Bloqueio por Padrão (Default Deny): Comece sempre com uma política que descarta todo o tráfego de entrada e apenas permita explicitamente o que for necessário.
- Menor Privilégio: Limite o acesso a serviços específicos por endereço IP sempre que possível (ex: permita SSH apenas do VPN do seu escritório).
- Inspeção de Estado (Stateful Inspection): Garanta que seu firewall rastreie o estado das conexões (ex: permitindo tráfego "relacionado" e "estabelecido").
- Logs e Auditoria: Registre pacotes descartados para ajudar a diagnosticar ataques e erros de configuração.
- Preparado para IPv6: Garanta que suas regras de firewall cubram as pilhas IPv4 e IPv6.
4. Resumo: Escolhendo a Ferramenta Certa
- Use Nftables se precisar de performance máxima, estiver construindo um roteador/gateway ou preferir uma sintaxe limpa e programável.
- Use Firewalld se estiver em um sistema baseado em Red Hat e desejar uma interface de gerenciamento amigável baseada em zonas que suporte atualizações dinâmicas.
- Use UFW (Uncomplicated Firewall) se estiver no Ubuntu ou Debian e precisar da maneira mais simples possível de gerenciar algumas portas abertas.
Ao utilizar os modernos geradores de regras nftables e firewalld, você pode se afastar de scripts legados frágeis e construir uma postura de segurança robusta e escalável para sua infraestrutura Linux.