Passar para o conteúdo principal

Gerenciamento Avançado de Firewall em AlmaLinux, Rocky Linux e CentOS Stream

Guia completo para administrar regras com o firewalld

Gustavo Luppi avatar
Escrito por Gustavo Luppi
Atualizado hoje

Os sistemas baseados em RHEL, como AlmaLinux, Rocky Linux e CentOS Stream, utilizam o firewalld como firewall padrão. Ele oferece uma interface moderna e flexível para definir regras de rede, abrir portas, controlar serviços e aplicar políticas de segurança sem interromper conexões existentes.

Este artigo serve como guia atualizado para administrar o firewall nos servidores da Rapid Cloud.

🔥 O que é o firewalld?

O firewalld é um serviço que utiliza o backend nftables/iptables e trabalha com:

Zonas (agrupamento de regras por nível de confiança)

Serviços pré-definidos (http, https, ssh etc.)

Regras dinâmicas que podem ser aplicadas sem reiniciar o serviço

Configurações permanentes ou temporárias

Ele é o firewall padrão nas distribuições:

✔ AlmaLinux

✔ Rocky Linux

✔ CentOS Stream

✔ RHEL 8/9

📌 1. Verificando o status do firewall

sudo systemctl status firewalld

Para iniciar:

sudo systemctl start firewalld

Para habilitar na inicialização:

sudo systemctl enable firewalld

📌 2. Verificando zonas

A zona padrão (normalmente public):

sudo firewall-cmd --get-default-zone

Listar todas as zonas:

sudo firewall-cmd --get-zones

Listar tudo dentro da zona ativa:

sudo firewall-cmd --list-all

📌 3. Abrir portas (temporário)

Essas regras somem após reboot:

sudo firewall-cmd --add-port=8080/tcp
sudo firewall-cmd --add-port=1194/udp

Listar portas abertas:

sudo firewall-cmd --list-ports

📌 4. Abrir portas de forma permanente

Essas regras persistem após reinicialização:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=1194/udp

Recarregue:

sudo firewall-cmd --reload

📌 5. Liberar serviços pré-configurados

O firewalld possui centenas de serviços prontos (http, https, smtp, pop3, cpanel, mysql etc.)

Liberar http e https:

sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https

Versão permanente:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

📌 6. Remover regras

Remover regra temporária:

sudo firewall-cmd --remove-port=8080/tcp

Remover porta permanente:

sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo firewall-cmd --reload

Remover Serviço:

sudo firewall-cmd --permanent --remove-service=http
sudo firewall-cmd --reload

📌 7. Usando zonas específicas (ex.: public)

Adicionar regra para zona específica:

sudo firewall-cmd --zone=public --add-service=ssh

Permanente:

sudo firewall-cmd --zone=public --permanent --add-service=ssh
sudo firewall-cmd --reload

📌 8. Bloquear IPs

A maneira mais segura é usar rich rules:

Bloquear IP:

sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=1.2.3.4 drop"
sudo firewall-cmd --reload

Bloquear uma faixa (CIDR):

sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.0.0/24 drop"
sudo firewall-cmd --reload

📌 9. Ver todas regras aplicadas

sudo firewall-cmd --list-all

Listar serviços liberados:

sudo firewall-cmd --list-services

Listar portas abertas:

sudo firewall-cmd --list-ports

Listar regras ricas:

sudo firewall-cmd --list-rich-rules

📌 10. Diagnóstico de problemas de conexão

Se você abriu a porta mas ela ainda não funciona:

1. Verifique se o serviço está escutando:

ss -tulnp | grep PORTA

2. Confirme que a porta está aberta no firewall

3. Verifique se o provedor/datacenter não bloqueia a porta

4. Verifique se há outro firewall ativo (ex.: CSF, Imunify, CloudLinux CageFS etc.)

5. Teste externamente com:

nc -vz SEU_IP PORTA

✔️ Conclusão

O firewalld, presente em AlmaLinux, Rocky Linux e CentOS Stream, é uma ferramenta poderosa para proteger servidores de forma prática e flexível.

Com este guia, você pode:

• Abrir e fechar portas

• Trabalhar com serviços

• Gerenciar zonas

• Criar regras permanentes

• Bloquear IPs e sub-redes

Respondeu à sua pergunta?