firewalld¶
O que é¶
firewalld é um gerenciador dinmico de firewall (backend nftables/iptables) orientado a zonas, muito usado em RHEL, Rocky, Alma e Fedora.
Para que serve¶
- Aplicar políticas diferentes por contexto de rede (
public,internal,dmz, etc.) - Alterar regras em runtime sem reiniciar serviço de rede
- Gerenciar serviços, portas, rich rules, forward e NAT de forma declarativa
- Integrar com NetworkManager para associar interfaces a zonas
Quando usar¶
- Servidores com múltiplas interfaces/rede (ex.: WAN + LAN + VPN)
- Ambientes enterprise com necessidade de configuração persistente e auditável
- Operação diária onde time prefere abstração de “serviços” ao invés de regras low-level
Exemplos de uso¶
# Ver zonas ativas e interfaces
firewall-cmd --get-active-zones
# Inspecionar zona public
firewall-cmd --zone=public --list-all
# Liberar HTTPS em runtime e persistir
firewall-cmd --zone=public --add-service=https
firewall-cmd --zone=public --add-service=https --permanent
# Abrir porta customizada
firewall-cmd --zone=public --add-port=8443/tcp --permanent
# Recarregar regras persistentes
firewall-cmd --reload
Exemplos de saída¶
$ firewall-cmd --zone=public --list-all
public (active)
target: default
interfaces: eth0
services: cockpit dhcpv6-client ssh https
ports: 8443/tcp
protocols:
forward: no
masquerade: no
rich rules:
Leitura prática:
- (active) confirma zona em uso por interface.
- services e ports mostram o que está efetivamente permitido.
- masquerade: no indica que não há NAT de saída nessa zona.
Dicas de troubleshooting¶
- Diferencie runtime vs permanente (
--runtime-to-permanent) para não perder regra após reboot. - Se porta foi liberada e ainda falha, valide binding da aplicação (
0.0.0.0vs127.0.0.1). - Confirme zona correta da interface (
firewall-cmd --get-active-zones). - Em troubleshooting profundo, compare com
nft list rulesetpara validar backend.
Flags importantes¶
--zone=<zona>: define contexto da regra--list-all/--list-all-zones: inventário de política--add-service/--add-port: libera serviço/porta--permanent: persiste alteração em disco--reload: reaplica configuração persistente--runtime-to-permanent: salva estado runtime atual
Boas práticas¶
- Defina zona padrão conscientemente (
publicnão deve ser “depósito” de exceções). - Prefira
services(com descrição semntica) antes de abrir portas soltas. - Evite alterações manuais diretas em backend nft/iptables quando firewalld é o orquestrador.
- Versione arquivos de zona e use automação (Ansible, por exemplo) para consistência.
Referências¶
man firewall-cmd- firewalld docs: https://firewalld.org/documentation/
- RHEL Security Guide (firewalld)