Como Configurar e Gerenciar o firewalld em Servidores Oracle Linux, RHEL e CentOS

Manter um servidor Linux seguro exige, entre outras práticas, a correta configuração do firewall. Dentre as ferramentas modernas disponíveis para esse fim, o firewalld se destaca por ser poderosa, flexível e fácil de usar, especialmente em sistemas como Oracle Linux, Red Hat Enterprise Linux (RHEL) e CentOS.

Neste artigo, você aprenderá como utilizar o firewalld para gerenciar regras de firewall de maneira eficiente, utilizando comandos práticos e explicações detalhadas sobre cada função. Essa ferramenta é compatível com sistemas que utilizam o gerenciador de pacotes dnf ou yum, e já vem instalada por padrão nas versões mais recentes dessas distribuições.

O que é o firewalld?

O firewalld é um gerenciador de firewall baseado em zonas que fornece uma maneira dinâmica de gerenciar regras sem a necessidade de reiniciar o serviço. Ele é uma alternativa moderna ao tradicional iptables, oferecendo suporte a configurações permanentes e em tempo de execução (runtime).

Uma das principais vantagens do firewalld é o conceito de zonas — conjuntos predefinidos de regras que podem ser atribuídas a diferentes interfaces de rede, permitindo uma segmentação de segurança mais granular.

Verificando a configuração atual do firewall

Antes de aplicar qualquer alteração, é interessante verificar o estado atual do firewall e suas configurações.

Ver zonas ativas

firewall-cmd --get-active-zones

Este comando retorna uma lista das zonas atualmente em uso, juntamente com as interfaces de rede associadas a elas.

Ver a zona padrão

firewall-cmd --get-default-zone

A zona padrão é aquela atribuída automaticamente às interfaces de rede que não têm zona definida explicitamente.

Gerenciando zonas e interfaces

As zonas do firewalld definem o nível de confiança para conexões de rede e podem ser configuradas conforme o contexto. Por exemplo, uma zona “home” pode permitir mais serviços do que uma zona “public”.

Alterar a interface de rede para uma zona específica

firewall-cmd --zone=home --change-interface=ens192
firewall-cmd --zone=public --change-interface=ens192

Esses comandos movem a interface ens192 para uma zona específica. Lembre-se de substituir ens192 pelo nome da interface do seu servidor.

Listar regras de uma zona

firewall-cmd --list-all --zone=public

Você verá todos os serviços e portas abertas na zona pública, além de informações sobre regras adicionais e interfaces associadas.

Configurando ações e serviços

Definir a ação padrão da zona

firewall-cmd --zone=public --permanent --set-target=DROP

Com essa configuração, todas as conexões que não forem explicitamente permitidas na zona pública serão automaticamente descartadas (DROP), elevando o nível de segurança.

Adicionar ou remover serviços

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

Adicionar ou remover portas

firewall-cmd --zone=public --add-port=8443/tcp
firewall-cmd --zone=public --remove-service=8443/tcp

Utilizando rich rules (regras avançadas)

As rich rules permitem configurações mais detalhadas, como restrições por IP, porta ou protocolo.

Permitir serviço apenas de IPs específicos

firewall-cmd --add-rich-rule='rule family=ipv4 source address="192.168.0.0/24" service name="ssh" accept'

Essa regra libera acesso SSH apenas para IPs da faixa 192.168.0.0/24.

Permitir ICMP para faixa de IPs

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" protocol value="icmp" accept'

Permitir porta TCP 10050 para uma rede

firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address="192.168.0.0/24" port port="10050" protocol="tcp" accept'

Liberar portas específicas para qualquer origem

firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 port port="8443" protocol="tcp" accept'
firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 port port="9443" protocol="tcp" accept'

Salvando e aplicando as configurações

O firewalld permite configurar regras temporárias (runtime) ou permanentes. Para garantir que as alterações se mantenham após reinicializações, salve com:

firewall-cmd --runtime-to-permanent

Recarregar o firewall

firewall-cmd --reload

Esse comando aplica as alterações permanentes e reinicia as regras em tempo de execução.

Gerenciando o serviço firewalld

Para iniciar, parar, habilitar ou desabilitar o serviço firewalld no sistema, utilize os comandos do systemctl:

systemctl start firewalld
systemctl stop firewalld
systemctl enable firewalld
systemctl disable firewalld

Verificar o status do firewall

firewall-cmd --state

Este comando retorna o estado atual do firewall, como running ou not running.

Conclusão

O firewalld é uma ferramenta robusta e flexível que facilita o gerenciamento de regras de firewall em servidores Linux baseados em Oracle Linux, RHEL e CentOS. A adoção de boas práticas, como o uso de zonas, serviços controlados e regras avançadas, ajuda a proteger seu ambiente contra acessos não autorizados, mantendo uma política de segurança clara e eficiente.

Referências

Caso tenha alguma dúvida a respeito deste tópico sinta-se à vontade para entrar em contato

Rolar para cima