O firewall-cmd
é uma ferramenta de interface de linha de comando que fornece uma maneira fácil de gerenciar o firewall firewalld
no Linux. Este artigo se concentrará em como utilizar o firewall-cmd
para adicionar portas de banco de dados, listar as regras atuais e verificar o status do firewall.
Instalação do firewalld
O primeiro passo é garantir que o firewalld
esteja instalado em seu sistema. No CentOS ou RHEL, você pode fazer isso com o seguinte comando:
sudo yum install firewalld
No Ubuntu, use o comando:
sudo apt-get install firewalld
Adicionando Portas do Banco de Dados
Para adicionar uma porta ao firewall, você pode usar o comando firewall-cmd
com a opção --add-port
. Por exemplo, para adicionar a porta 3306 (padrão para o MySQL) à zona pública, você usaria o seguinte comando:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
A opção --permanent
faz com que a regra persista após a reinicialização.
Exemplos Práticos
Vamos ilustrar o uso do firewall-cmd
com exemplos práticos para bancos de dados comuns:
1. MySQL/MariaDB:
O MySQL e MariaDB, por padrão, escutam na porta 3306. Para permitir o tráfego através desta porta, o comando seria:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
2. PostgreSQL:
O PostgreSQL escuta na porta 5432 por padrão. Para permitir o tráfego, o comando seria:
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
sudo firewall-cmd --reload
3. MongoDB:
O MongoDB usa a porta 27017 por padrão. Para abrir esta porta, o comando seria:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
Lembre-se de substituir public
pela zona correta se o seu sistema estiver usando uma zona diferente.
Listando as Regras Atuais
Para listar todas as regras de firewall atuais, incluindo portas abertas, você pode usar o comando firewall-cmd
com a opção --list-all
. Por exemplo:
sudo firewall-cmd --zone=public --list-all
Output:
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client
ports: 3306/tcp 5432/tcp 27017/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Neste exemplo, o output mostra que a zona “public” está ativa na interface “eth0”, com os serviços “ssh” e “dhcpv6-client” permitidos. Além disso, as portas 3306 (MySQL/MariaDB), 5432 (PostgreSQL) e 27017 (MongoDB) estão abertas para tráfego TCP.
Verificando o Status do Firewall
Você pode verificar o status do firewall a qualquer momento com o comando firewall-cmd --state
. Isso retornará “running” se o firewall estiver ativo e “not running” se não estiver.
sudo firewall-cmd --state
Conclusão
Neste artigo, exploramos como usar o firewall-cmd
para gerenciar as portas de um banco de dados em um servidor Linux. Com exemplos práticos para MySQL/MariaDB, PostgreSQL e MongoDB, demonstramos como essa ferramenta pode ser útil para o