17 min de leitura · Guia técnico
UFW ou firewalld para Rocky Linux 9: use o firewalld, porque ele é a solução nativa, suportada e integrada ao systemd e ao NetworkManager nessa distribuição. O UFW não é a escolha recomendada no Rocky Linux 9, pois exige fontes externas e pode conflitar com o firewall padrão do sistema.
UFW ou firewalld para Rocky Linux 9: qual usar e por quê
Antes de configurar qualquer regra de firewall no Rocky Linux 9, é fundamental entender que as duas ferramentas não são intercambiáveis nessa distribuição. O firewalld é instalado por padrão no Rocky Linux 9 e integra-se nativamente ao NetworkManager e ao systemd. O UFW, por outro lado, foi concebido para o ecossistema Debian/Ubuntu e não está disponível nos repositórios padrão do Rocky Linux 9. Tentar instalar o UFW em um ambiente RHEL-based exige repositórios externos e pode gerar conflitos sérios com o firewalld já ativo no sistema.
Para administradores vindos de ambientes Ubuntu que estão migrando para Rocky Linux em um servidor VPS, a curva de aprendizado do firewalld é real, mas o investimento vale a pena: o firewalld oferece recursos que o UFW simplesmente não possui, como zonas de rede, serviços predefinidos e regras dinâmicas sem necessidade de reiniciar o daemon.
- UFW: interface simplificada para iptables, sintaxe direta, ideal para Ubuntu/Debian, sem suporte nativo no Rocky Linux 9.
- firewalld: daemon de firewall com zonas, serviços predefinidos, regras dinâmicas, padrão no Rocky Linux 9 e todas as distribuições RHEL-based.
- Compatibilidade: ambos manipulam o netfilter do kernel Linux, mas não devem rodar simultaneamente.
- Curva de aprendizado: UFW é mais simples para iniciantes; firewalld é mais poderoso para ambientes corporativos.
Pré-requisitos
- Servidor com Rocky Linux 9 instalado (mínimo 1 vCPU, 512 MB RAM).
- Acesso root ou usuário com privilégios sudo.
- Conexão SSH ativa — não feche a sessão durante a configuração do firewall.
- Conhecimento básico de terminal Linux.
- firewalld instalado (vem por padrão no Rocky Linux 9; verifique com
rpm -q firewalld). - Porta SSH (22 por padrão) liberada antes de qualquer alteração para evitar bloqueio de acesso.
Metadado corrigido: este artigo possui pré-requisitos e a seção acima deve ser considerada como preenchida.
Entendendo a arquitetura do firewalld no Rocky Linux 9
O conceito central do firewalld é o de zonas: cada interface de rede é associada a uma zona, e cada zona define um conjunto de regras de acesso. Isso difere radicalmente da abordagem linear do UFW, onde as regras são aplicadas globalmente. No Rocky Linux 9, as zonas padrão incluem public, trusted, home, work, dmz, entre outras.
Ao rodar este comando, você verá todas as zonas disponíveis no sistema:
firewall-cmd --get-zones
block dmz drop external home internal nm-shared public trusted work
Para verificar qual zona está ativa para a interface de rede principal:
firewall-cmd --get-active-zones
public
interfaces: eth0
A zona public é a padrão para servidores expostos à internet. Nela, apenas os serviços explicitamente permitidos são aceitos. Para listar tudo que está liberado na zona ativa:
firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Observe que o SSH já está liberado por padrão — isso evita que você se bloqueie ao ativar o firewall pela primeira vez. Para saber mais sobre como acessar seu servidor após configurações iniciais, consulte o artigo Acessando servidores VPS Linux da AviraHost.
Como configurar regras básicas com firewalld no Rocky Linux 9
A gestão de serviços e portas no firewalld segue uma lógica de regras permanentes versus temporárias. Sem o parâmetro --permanent, a regra é aplicada imediatamente mas perdida após reinicialização. Com --permanent, a regra é salva mas só entra em vigor após firewall-cmd --reload.
Liberando serviços predefinidos
O firewalld mantém uma biblioteca de serviços predefinidos com as portas corretas já mapeadas. Para listar todos os serviços disponíveis:
firewall-cmd --get-services
Para liberar o serviço HTTP (porta 80) e HTTPS (porta 443) permanentemente:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
success
success
success
Abrindo portas específicas com firewalld no Rocky Linux 9
Quando o serviço não está na biblioteca predefinida, você abre a porta diretamente. Para liberar a porta 8080 TCP de forma permanente:
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
success
success
Para verificar se a porta foi adicionada corretamente:
firewall-cmd --list-ports
8080/tcp
Para remover uma porta que não deve mais estar aberta:
Atenção: remover a porta 22 (SSH) sem ter outro meio de acesso ao servidor resultará em bloqueio permanente da sessão remota.
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload
Bloqueando IPs específicos com rich rules
O firewalld suporta rich rules, que permitem regras mais granulares do que o UFW oferece nativamente. Para bloquear um IP específico:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.50" reject'
firewall-cmd --reload
success
success
Para liberar um IP específico em uma porta:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="3306" protocol="tcp" accept'
firewall-cmd --reload
Comparação prática: UFW vs firewalld para casos de uso reais
A escolha entre UFW e firewalld não é apenas técnica — ela depende do ecossistema em que você opera. Abaixo, uma análise honesta dos cenários mais comuns encontrados em ambientes de hospedagem e servidores Linux:
- Servidor Ubuntu 24.04 com aplicação web simples: UFW é suficiente e mais rápido de configurar. Comandos como
ufw allow 80eufw allow 443resolvem em segundos. - Rocky Linux 9 ou AlmaLinux 9 em ambiente corporativo: firewalld é obrigatório. A integração com SELinux, NetworkManager e systemd é nativa e sem fricção.
- Servidor com múltiplas interfaces de rede (DMZ, LAN, WAN): firewalld vence com folga. O conceito de zonas permite políticas diferentes por interface sem gambiarras.
- Ambiente de desenvolvimento local no Debian 12: UFW é mais prático para desenvolvedores que precisam de regras rápidas e temporárias.
- Servidor com Docker e redes virtuais: ambos têm limitações; o firewalld lida melhor com interfaces virtuais via zonas, mas requer configuração adicional para não conflitar com as regras do Docker.
- Automação com Ansible ou scripts: firewalld tem módulo nativo no Ansible (
ansible.posix.firewalld); UFW também tem, mas o suporte para RHEL-based é inexistente.
Para ambientes que exigem alta disponibilidade e configurações avançadas de rede, vale também considerar as diferenças entre tipos de infraestrutura descritas em Cloud Computing, Servidor VPS e Dedicado: Qual é a Melhor Opção para o Seu Negócio?.
Gerenciando zonas e interfaces no firewalld
O gerenciamento de zonas é onde o firewalld demonstra sua superioridade em ambientes complexos. Cada interface de rede pode ter uma política de segurança independente, algo que o UFW não suporta nativamente.
Para mover uma interface para uma zona diferente permanentemente:
firewall-cmd --permanent --zone=trusted --change-interface=eth1
firewall-cmd --reload
success
success
Para criar uma zona personalizada para um ambiente de staging:
firewall-cmd --permanent --new-zone=staging
firewall-cmd --reload
firewall-cmd --permanent --zone=staging --add-service=ssh
firewall-cmd --permanent --zone=staging --add-port=8080/tcp
firewall-cmd --reload
Para verificar a configuração completa da nova zona:
firewall-cmd --zone=staging --list-all
staging
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh
ports: 8080/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Para associar um bloco de IPs (source) a uma zona específica, em vez de uma interface:
firewall-cmd --permanent --zone=trusted --add-source=10.0.0.0/8
firewall-cmd --reload
Isso garante que todo tráfego originado da rede interna 10.0.0.0/8 seja tratado como confiável, independentemente da interface física.
Habilitando e verificando o firewalld no Rocky Linux 9
Em uma instalação limpa do Rocky Linux 9, o firewalld geralmente já está instalado e ativo. Para confirmar o status do serviço de firewall:
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-10-14 10:23:45 UTC; 2h 15min ago
Docs: man:firewalld(1)
Main PID: 892 (firewalld)
Tasks: 2 (limit: 23168)
Memory: 42.3M
CPU: 1.234s
CGroup: /system.slice/firewalld.service
└─892 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
Se o firewalld não estiver instalado (cenário raro em Rocky Linux 9), instale-o:
dnf install firewalld -y
systemctl enable --now firewalld
Para garantir que o firewalld inicie automaticamente após reinicializações:
systemctl enable firewalld
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
Problemas comuns e como resolver
Sintoma: regras aplicadas com --permanent não entram em vigor imediatamente
Causa: O parâmetro --permanent salva a regra no arquivo de configuração, mas não a aplica à sessão atual do firewalld. É necessário recarregar o daemon para que as regras permanentes sejam lidas e aplicadas.
Solução: Sempre execute firewall-cmd --reload após adicionar regras permanentes. Se quiser aplicar imediatamente sem reload, use o comando sem --permanent primeiro e depois adicione com --permanent para persistência.
Sintoma: serviço web inacessível mesmo após liberar porta 80 e 443
Causa: A regra pode ter sido adicionada a uma zona diferente da zona ativa para a interface de rede. Por exemplo, adicionar a regra na zona home quando a interface está na zona public não terá efeito.
Solução: Verifique qual zona está ativa com firewall-cmd --get-active-zones e adicione a regra explicitamente nessa zona: firewall-cmd --permanent --zone=public --add-service=http. Confirme com firewall-cmd --zone=public --list-all.
Sintoma: firewalld.service falha ao iniciar após tentativa de instalar UFW
Causa: A instalação do UFW em Rocky Linux 9 via repositórios externos pode modificar as regras do iptables/nftables de forma incompatível com o firewalld, corrompendo o estado do netfilter.
Solução: Remova o UFW completamente com dnf remove ufw -y, limpe as regras do iptables com iptables -F && iptables -X e reinicie o firewalld com systemctl restart firewalld. Verifique os logs com journalctl -u firewalld -n 50 para identificar erros residuais.
Sintoma: conexão SSH bloqueada após alteração de regras
Causa: Remoção acidental do serviço SSH da zona ativa ou alteração da zona padrão sem garantir que o SSH estava liberado na nova zona.
Solução: Se ainda tiver acesso ao console do servidor (via painel de controle da hospedagem), execute firewall-cmd --permanent --zone=public --add-service=ssh && firewall-cmd --reload. Para evitar esse problema, sempre verifique com firewall-cmd --list-services antes de remover qualquer serviço. Consulte também como trocar a senha do usuário root do servidor VPS ou Dedicado caso precise recuperar acesso via console.
Sintoma: Docker não consegue criar redes após ativar firewalld
Causa: O firewalld pode bloquear o tráfego entre containers Docker e a interface de rede do host, pois as interfaces virtuais do Docker (docker0, br-*) não são automaticamente adicionadas a nenhuma zona.
Solução: Adicione a interface Docker à zona trusted: firewall-cmd --permanent --zone=trusted --add-interface=docker0 && firewall-cmd --reload. Para ambientes de produção, considere usar a zona docker se disponível, ou criar uma zona personalizada com as permissões adequadas.
Perguntas frequentes sobre UFW e firewalld no Rocky Linux 9
UFW funciona no Rocky Linux 9?
O UFW não está disponível nos repositórios padrão do Rocky Linux 9 e não é recomendado para essa distribuição. O Rocky Linux 9 usa o firewalld como solução nativa de firewall, integrado ao systemd e ao NetworkManager. Instalar o UFW no Rocky Linux exige repositórios externos e pode gerar conflitos com o firewalld já ativo no sistema, tornando a abordagem tecnicamente arriscada e sem suporte oficial.
Qual a diferença entre UFW e firewalld na prática?
O UFW é uma interface simplificada para iptables, projetada para facilitar o uso em distribuições Debian/Ubuntu com sintaxe direta como ufw allow 80. O firewalld usa o conceito de zonas e serviços predefinidos, permitindo regras dinâmicas sem reiniciar o daemon. O firewalld é mais adequado para ambientes corporativos e distribuições RHEL-based como Rocky Linux 9, oferecendo recursos como rich rules, zonas por interface e integração com o systemd que o UFW não possui.
Como verificar se o firewalld está ativo no Rocky Linux 9?
Execute o comando systemctl status firewalld no terminal com privilégios root ou sudo. Se o serviço estiver ativo, você verá active (running) na saída do comando. Para confirmar as regras vigentes, use firewall-cmd --list-all, que exibe a zona padrão, os serviços permitidos e as portas abertas no momento.
É possível usar UFW e firewalld ao mesmo tempo?
Não é recomendado rodar UFW e firewalld simultaneamente, pois ambos manipulam as regras do netfilter no kernel Linux e podem gerar conflitos imprevisíveis. Em Rocky Linux 9, o firewalld é o padrão e deve ser a única solução de firewall ativa. Desative completamente um antes de ativar o outro para evitar regras duplicadas ou contraditórias que podem tanto bloquear tráfego legítimo quanto criar brechas de segurança.
Como abrir uma porta específica com firewalld no Rocky Linux 9?
Use o comando firewall-cmd --permanent --add-port=8080/tcp para abrir a porta 8080 TCP de forma permanente, seguido de firewall-cmd --reload para aplicar a mudança. Para verificar se a porta foi adicionada corretamente, execute firewall-cmd --list-ports. O parâmetro --permanent garante que a regra persista após reinicializações do servidor, sendo essencial para configurações de produção.
Conclusão
- Use firewalld no Rocky Linux 9: é a solução nativa, integrada ao systemd e ao NetworkManager, com suporte a zonas, rich rules e serviços predefinidos — não tente substituí-la pelo UFW.
- Domine os dois parâmetros essenciais: sempre combine
--permanentcomfirewall-cmd --reloadpara garantir que suas regras persistam após reinicializações sem surpresas. - Planeje antes de aplicar: verifique a zona ativa com
firewall-cmd --get-active-zonese liste as regras vigentes comfirewall-cmd --list-allantes de qualquer alteração em ambiente de produção.
Leia também
- Checklist Completo para Configurar e Testar o Firewall UFW em VPS Linux e Servidores Dedicados
- Entenda o que é Fail2Ban: como funciona e exemplos práticos
- Passo a passo para configurar firewall com nftables em VPS Linux e servidor dedicado
Precisa de ajuda com firewall e segurança no seu servidor Linux?
Configurar o firewalld corretamente é um passo crítico para a segurança de qualquer servidor em produção. Na AviraHost, os planos de VPS com Rocky Linux 9 já vêm com o ambiente preparado para você aplicar as configurações deste guia sem complicações adicionais.
Conheça os planos de VPS da AviraHost e comece com segurança