Firewall-cmd 为 MariaDB 数据库防火墙进行配置

当你完成安装数据库后,通常会迫不及待的进行访问和连接。但是防火墙会给你很大的麻烦,如果你不进行正确的配置的话。不管使用什么工具,可能就是一直连不上。

本文主要帮助你解决这个小问题。

下面的配置需要在 MariaDB 数据库服务器上进行配置。

我们的场景是,假设我们有一个 Web 服务器是部署在 IP 地址 192.168.0.1 上面。我们需要这个 Web 服务器能访问我们的数据库。数据库使用的端口是 3306。

在正常安装情况下,如果你的 firewalld 启动的话,Web 服务器是没有办法进行访问的,因为你的端口和 IP 地址已经被禁止了。

解决办法

可以按照下面的办法进行配置。

在配置之前,我们的流程是配置一个 zone,然后为zone 里面添加 IP 地址和端口,然后重新启动防火墙。

添加 Zone

假设我们需要为我们的 MariaDB 数据库添加一个叫 mariadb_access 的 zone

依次执行下面的命令:

# firewall-cmd --new-zone=mariadb_access --permanent
# firewall-cmd --reload
# firewall-cmd --get-zones

上面的命令执行的是,添加一个叫 mariadb_access 的 zone,将防火墙的配置重新载入,使配置生效,然后检查添加的 zone 是否成功。

firewalld-zone-01

如果一切顺利的话,你应该能够看到上面的内容,表示你添加的 zone 成功了。

添加 IP 地址和端口

需要依次执行下面的命令:

firewall-cmd --zone=mariadb_access --add-source=192.168.0.1 --permanent
firewall-cmd --zone=mariadb_access --add-port=3306/tcp  --permanent
firewall-cmd --reload

上面命令执行的是,将 IP 地址添加到信任的 zone 中,将端口也添加到信任的 zone 中。

重新载入防火墙,使配置生效。

查看 zone 的配置

使用下面的命令来查看 zone 的配置,确保你的配置生效

firewall-cmd --zone=mariadb_access --list-all

在上面的命令中,你应该可以看到添加的 IP 地址和端口。

firewalld-zone-02

使用一条命令

上面的操作步骤是按照添加 Zone 然后添加其他参数的方法来执行的。

你需要分步执行几条命令。

如果你想通过一条命令来完成上面的操作,你可以使用下面的示例:

firewall-cmd --permanent –zone=mariadb_access --add-rich-rule='rule family="ipv4" source address="192.168.0.1" port protocol="tcp" port="3306" accept'

请注意,你需要将你实际 Web 服务器的 IP 地址来进行替换。