Introdução
Configurar corretamente as regras de filtragem de pacotes é a tarefa de segurança primordial em qualquer servidor recém-instalado. Não importa se a sua infraestrutura roda em uma VPS básica, em um robusto servidor dedicado (Bare Metal) ou na nuvem (Cloud); a implementação de um firewall Linux firewalld nftables é o que de fato reduz drasticamente a sua superfície de ataque contra scanners automatizados e invasores.
Muitos administradores de sistemas confiam cegamente em Security Groups externos de provedores de Cloud. Entretanto, não gerenciar o tráfego de rede internamente cria um ponto cego. Implementar o seu próprio firewall Linux firewalld nftables diretamente na máquina oferece um nível granular de controle, permitindo isolar serviços, aplicar rate limiting e bloquear proativamente comportamentos abusivos.
Neste guia prático, você aprenderá do zero como implementar e gerenciar a segurança de rede em ambientes de produção.
Configurar corretamente o firewall é essencial para proteger servidores Linux em produção. Porém, quando regras de rede estão mal configuradas ou excessivamente restritivas, elas também podem gerar problemas difíceis de diagnosticar, como falhas intermitentes de conexão. Nesses casos, é importante aplicar uma abordagem estruturada de investigação, como explicamos no guia sobre como diagnosticar problemas intermitentes capturando evidências no servidor.
O Que é firewalld e nftables?
Para desenhar uma defesa eficiente, precisamos entender os componentes que formam o moderno stack de rede do Linux.
nftables
O nftables é o framework oficial do kernel e o sucessor natural do lendário iptables. Suas principais vantagens incluem:
- Melhor desempenho na filtragem de tráfego de alto volume.
- Sintaxe simplificada que unifica a manipulação de IPv4 e IPv6 no mesmo arquivo de configuração.
- Menor consumo de CPU durante atualizações massivas de regras.
firewalld
O firewalld não substitui o nftables; ele é um serviço daemon de gerenciamento dinâmico. Em resumo, ele simplifica o uso e atua como a interface humana. Suas vantagens são:
- Aplicação de regras dinâmicas em tempo real sem derrubar as sessões ativas (como o iptables costumava fazer ao recarregar).
- Abstração através de Zonas de Segurança.Na prática, o firewalld traduz os seus comandos e orquestra as regras complexas lá no motor do nftables.
Instalando o firewalld no Linux
Grande parte das distribuições empresariais já traz o suporte nativo para este ecossistema.
Instalação no AlmaLinux, Rocky Linux ou RHEL:
Bash
dnf install firewalld
Instalação em sistemas Debian ou Ubuntu:
apt install firewalld
Habilitando e iniciando o serviço:
systemctl enable firewalld systemctl start firewalld
Verificando o status operacional:
systemctl status firewalld
Entendendo o Conceito de Zonas
O verdadeiro poder da administração ágil do firewall Linux firewalld nftables reside no conceito de Zonas. Elas definem o nível de confiança das conexões de rede baseadas na interface em que o pacote trafega.
| Zona | Uso e Comportamento Padrão |
| public | Ideal para redes não confiáveis. Aceita apenas conexões de entrada explicitamente selecionadas. |
| internal | Para redes locais internas restritas, onde confia-se mais nos nós conectados. |
| trusted | Todas as conexões de rede são estritamente aceitas. |
| drop | Qualquer pacote de entrada é descartado silenciosamente sem resposta (ideal para mitigar ataques diretos). |
Para checar em qual zona a sua interface principal de rede está atuando no momento:
firewall-cmd --get-default-zone
Abrindo Portas e Serviços Essenciais
A sintaxe de liberação é bastante direta. Vamos liberar o acesso de administração remota via SSH na nossa zona pública.
firewall-cmd --permanent --add-service=ssh
Se o seu aplicativo rodar em uma porta não padrão (ex: painel customizado no Tomcat ou Node.js):
firewall-cmd --permanent --add-port=8080/tcp
Após qualquer mudança com a flag --permanent, aplique as alterações para que entrem em vigor na memória RAM:
firewall-cmd --reload
Para auditar as regras que acabaram de ser ativadas e garantir que não há exposições acidentais:
firewall-cmd --list-all
Exemplo Prático: Firewall para Servidor Web em Produção
Se você está hospedando sites ou aplicações web (com Apache, Nginx ou LiteSpeed), a configuração deve ser estritamente minimalista. O servidor deve comunicar-se com o mundo externo apenas via SSH e portas web.
firewall-cmd --permanent --add-service=ssh firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https
Otimizando a segurança removendo serviços pré-configurados que você não utiliza (como clientes DHCPv6 soltos):
firewall-cmd --permanent --remove-service=dhcpv6-client firewall-cmd --reload
Esta configuração enxuta garante uma superfície menor de exploração no seu firewall Linux firewalld nftables.
Em alguns cenários, regras de firewall podem bloquear pacotes específicos apenas em determinadas condições, criando sintomas difíceis de reproduzir. Para investigar esse tipo de comportamento é fundamental coletar logs e evidências antes de aplicar mudanças no sistema. Veja também o guia sobre investigação de problemas intermitentes em servidores Linux.
Bloqueando IPs e Redes Maliciosas
O tratamento de abuso de rede é uma rotina constante. As Rich Rules do firewalld são perfeitas para isso.
Para rejeitar um endereço IP específico envolvido em tentativas de força bruta (bruteforce):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" reject'
Para descartar (drop) silenciosamente todo o tráfego de um bloco CIDR de rede problemático (ex: ataques volumétricos ou bots):
Bash
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="45.67.0.0/16" drop' firewall-cmd --reload
Endurecimento do Acesso SSH (Whitelisting)
Deixar a porta 22 exposta para a internet global atrai centenas de bots de força bruta por hora. A melhor prática em SysAdmin é aplicar um modelo de Whitelisting (Lista de permissão).
Primeiro, adicionamos uma regra permitindo conexões SSH exclusivamente originadas do IP fixo do seu escritório ou VPN corporativa:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="SEU_IP_AQUI" service name="ssh" accept'
Feito isso, removemos a liberação global e pública do serviço SSH:
firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload
Configurações Avançadas com o backend nftables
Cenários de rede extremamente complexos, roteamento de borda e manipulação profunda de pacotes podem exigir que você ignore o firewalld e escreva diretamente as regras base.
O arquivo mestre de configuração reside em: /etc/nftables.conf
Exemplo de script purista (standalone) para um servidor web:
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
# Aceita tráfego local de loopback e conexões já estabelecidas
iif "lo" accept
ct state established,related accept
# Portas públicas liberadas
tcp dport 22 accept
tcp dport 80 accept
tcp dport 443 accept
}
}
Boas Práticas de Hardening
Para complementar a sua blindagem de segurança, valide estas diretrizes:
- Política Default Deny: Garanta que a sua política global negue tudo por padrão. Libere exclusivamente o estritamente necessário.
- Segmentação: Utilize as Zonas (Internal e Public) para segregar instâncias, como separar a máquina do Banco de Dados (MariaDB/PostgreSQL) da máquina de Aplicação (PHP/Python).
- Integração com IPS: Um bom firewall Linux firewalld nftables ganha superpoderes quando integrado a Sistemas de Prevenção de Intrusão (IPS) como o Fail2ban ou o moderno CrowdSec.
Conclusão
Ter domínio absoluto sobre a filtragem de pacotes não é mais opcional no cenário de ameaças atual.
Combinando a facilidade das Zonas de gerenciamento de alto nível do firewalld com a robustez silenciosa do motor do nftables, você garante que os dados dos seus clientes, as suas aplicações e o processamento da sua máquina permaneçam resguardados de atores mal-intencionados de forma escalável e performática.
Problemas de rede nem sempre são constantes. Em muitos casos eles aparecem apenas sob determinadas condições de carga ou tráfego. Por isso, antes de alterar configurações críticas do sistema, é fundamental seguir uma metodologia adequada de captura de evidências em problemas intermitentes de servidores.
FAQ
Não. O firewalld é uma ferramenta que gerencia regras do nftables.
A maioria das distribuições modernas usa nftables como backend de firewall.
Sim. Ele permite gerenciamento dinâmico de regras sem reiniciar o firewall.
Sim. Administradores avançados podem configurar regras diretamente no nftables.
Sim. Ele funciona em qualquer servidor Linux, incluindo VPS, servidores dedicados e ambientes cloud.
Veja Mais:
Problemas Intermitentes em Servidores: Como Capturar Evidências Reais
Exemplo real: VPS 4 cores x tráfego WordPress
ZRAM e ZSWAP: impactos reais em produção
Redis vs Memcached: qual cache usar em servidores Linux

