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 主流发行版用 ufw(Ubuntu)或 firewalld(CentOS/RHEL),核心原则是:默认拒绝所有入站,只放行可信来源。常见错误现象:开了 ufw allow 3306,结果整个互联网都能连 ------ 因为这等价于放行所有 IP 的 3306 端口。正确做法:Ubuntu(ufw):ufw allow from 192.168.10.100 to any port 3306(仅允许可信应用服务器)CentOS(firewalld):firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.100" port port="3306" protocol="tcp" accept',之后 firewall-cmd --reload若需多 IP,逐条添加;别用 /24 网段掩码,除非该网段内所有机器都可信检查是否生效:ufw status verbose 或 firewall-cmd --list-all云服务器安全组比系统防火墙更优先阿里云、AWS、腾讯云等平台的安全组是第一道网关,规则匹配早于系统防火墙。即使你本地 ufw 拒绝了所有连接,安全组开着 3306 全放行,MySQL 依然裸奔。使用场景:数据库与应用部署在不同云主机,且走内网通信。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
试试勇气2 小时前
MySQL--数据库基础
数据库·mysql
2301_803538952 小时前
如何高效批量删除SQL数据_使用脚本分段删除降低压力
jvm·数据库·python
书到用时方恨少!2 小时前
Python 面向对象编程:从“过程清单”到“智能积木”的思维革命
开发语言·python·面向对象
老苏畅谈运维2 小时前
服务器重启后数据库无法打开,记一次ORA-00600 [2252]故障修复记
数据库·oracle
2401_897190552 小时前
MySQL升级导致排序规则变化怎么处理_更新Collation配置
jvm·数据库·python
zhangchaoxies2 小时前
uni-app怎么动态生成二维码 uni-app利用插件生成分享码方法【技巧】
jvm·数据库·python
2402_854808372 小时前
如何在可视化编辑器中回滚错误的结构修改_通过事务或备份快速恢复元数据
jvm·数据库·python
Metaphor6922 小时前
使用 Python 压缩 PDF 文件的大小
python·pdf
zhangzeyuaaa2 小时前
深入 Python 模块与包:从自定义到标准库,再到第三方库的完全指南
开发语言·python