mysql如何通过防火墙保护MySQL权限_MySQL网络层安全配置

张开发
2026/4/12 18:30:18 15 分钟阅读

分享文章

mysql如何通过防火墙保护MySQL权限_MySQL网络层安全配置
MySQL 默认监听0.0.0.0:3306必须通过bind-address限制监听地址、系统防火墙ufw/firewalld设置IP白名单、云平台安全组精确放行并与MySQL用户host字段协同配置四层防护缺一不可。MySQL 默认监听所有网卡不设防火墙等于裸奔MySQL 安装后默认绑定 0.0.0.0:3306只要端口开放任何能连上服务器的机器都可能暴力试探 root 密码。权限控制比如 GRANT只管「登录后能做什么」不管「谁可以连上来」——这是网络层的事得靠防火墙兜底。实操建议先确认 MySQL 实际监听地址ss -tlnp | grep :3306 或查 my.cnf 中的 bind-address若为 0.0.0.0 或注释掉说明已暴露全网生产环境必须设为 127.0.0.1仅本地或具体内网 IP如 192.168.10.5再配合防火墙白名单别依赖 skip-networking它会禁用 TCP 连接导致无法远程管理、备份工具如 mysqldump 通过网络调用失效ufw / firewalld 开放指定 IP 访问 3306 端口Linux 主流发行版用 ufwUbuntu或 firewalldCentOS/RHEL核心原则是默认拒绝所有入站只放行可信来源。常见错误现象开了 ufw allow 3306结果整个互联网都能连 —— 因为这等价于放行所有 IP 的 3306 端口。正确做法Ubuntuufwufw allow from 192.168.10.100 to any port 3306仅允许可信应用服务器CentOSfirewalldfirewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.10.100 port port3306 protocoltcp accept之后 firewall-cmd --reload若需多 IP逐条添加别用 /24 网段掩码除非该网段内所有机器都可信检查是否生效ufw status verbose 或 firewall-cmd --list-all云服务器安全组比系统防火墙更优先阿里云、AWS、腾讯云等平台的安全组是第一道网关规则匹配早于系统防火墙。即使你本地 ufw 拒绝了所有连接安全组开着 3306 全放行MySQL 依然裸奔。使用场景数据库与应用部署在不同云主机且走内网通信。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。

更多文章