权威解读:如何为MySQL数据库配置防火墙,筑牢数据安全防线,mysql数据库防火墙设置指南

文章导读
第一步:编辑防火墙规则,开放MySQL端口。使用命令 sudo ufw allow 3306/tcp 来允许3306端口的TCP连接,这样MySQL服务就能正常对外访问了。接下来,重载防火墙:sudo ufw reload。检查状态:sudo ufw status,确保规则生效。
📋 目录
  1. 配置MySQL绑定IP
  2. iptables设置
  3. firewalld配置
  4. 阿里云安全组
  5. 用户权限控制
  6. CentOS防火墙
A A

第一步:编辑防火墙规则,开放MySQL端口。使用命令 sudo ufw allow 3306/tcp 来允许3306端口的TCP连接,这样MySQL服务就能正常对外访问了。接下来,重载防火墙:sudo ufw reload。检查状态:sudo ufw status,确保规则生效。

配置MySQL绑定IP

MySQL配置文件通常在/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address = 127.0.0.1这一行,改为bind-address = 你的服务器IP,或者0.0.0.0允许所有IP连接,但不推荐后者,重启MySQL:sudo systemctl restart mysql。

iptables设置

使用iptables -A INPUT -s 允许的IP -p tcp --dport 3306 -j ACCEPT,然后iptables -A INPUT -p tcp --dport 3306 -j DROP,保存规则iptables-save > /etc/iptables.rules。这样只允许指定IP访问MySQL端口。

权威解读:如何为MySQL数据库配置防火墙,筑牢数据安全防线,mysql数据库防火墙设置指南

firewalld配置

firewall-cmd --permanent --add-port=3306/tcp,firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept',然后firewall-cmd --reload。只有特定网段能连。

阿里云安全组

在阿里云控制台,进入ECS实例的安全组,添加入站规则,协议TCP,端口3306,授权对象0.0.0.0/0或指定IP段,立即生效,云上数据库防火墙就这样简单设置好了。

权威解读:如何为MySQL数据库配置防火墙,筑牢数据安全防线,mysql数据库防火墙设置指南

用户权限控制

在MySQL里创建用户时指定host,如CREATE USER 'user'@'允许IP' IDENTIFIED BY '密码'; GRANT ALL ON 数据库.* TO 'user'@'允许IP'; FLUSH PRIVILEGES; 双重防护,防火墙外加权限。

权威解读:如何为MySQL数据库配置防火墙,筑牢数据安全防线,mysql数据库防火墙设置指南

CentOS防火墙

systemctl start firewalld,firewall-cmd --zone=public --add-port=3306/tcp --permanent,firewall-cmd --reload。简单几步,MySQL端口就安全开放了。

FAQ
Q: 防火墙开放3306后MySQL还连不上?
A: 检查MySQL bind-address是否绑定正确IP,重启服务,并确认ufw或firewalld已reload。
Q: 如何只允许本地访问?
A: 将bind-address设为127.0.0.1,不开放3306端口。
Q: 云服务器怎么配?
A: 除了本地防火墙,还要设置安全组规则,放行3306。
Q: iptables规则丢了怎么恢复?
A: 用iptables-restore < /etc/iptables.rules加载。