如何在mysql中配置防火墙访问控制

25次阅读

通过系统 防火墙 mysql 配置和账户权限实现多层防护,限制特定 IP 访问 3306端口 。1. 使用 firewalld 或 iptables 限制 IP 访问;2. 修改 bind-address 限制监听地址;3. 配置 MySQL 用户权限控制来源 IP;4. 云服务 器使用安全组策略。综合措施可有效降低被攻击风险。

如何在 mysql 中配置防火墙访问控制

MySQL 本身不提供 防火墙 功能,访问控制需要依赖 操作系统 层面的防火墙或网络层安全策略来实现。要配置 MySQL 的防火墙访问控制,核心是限制哪些 IP 可以连接到 MySQL 服务 端口(默认为 3306)。以下是具体操作方法。

1. 使用系统防火墙限制访问

大多数 linux 系统使用 iptablesfirewalld 管理防火墙规则。可以通过这些 工具 只允许特定 IP 访问 MySQL 端口。

● 使用 firewalld(centos/RHEL 7+):

确保 firewalld 正在运行,并添加允许规则:

  • 开放 3306 端口给特定 IP:
    firewall-cmd –permanent –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.100″ port protocol=”tcp” port=”3306″ accept’
  • 重新加载配置:
    firewall-cmd –reload
  • 禁止所有其他 IP 访问 3306,只需不放行即可,默认拒绝更安全。

● 使用 iptables:

直接添加规则限制访问:

  • 允许某个 IP 连接:
    iptables -A input -p tcp -s 192.168.1.100 –dport 3306 -j ACCEPT
  • 拒绝其他所有 IP 访问 MySQL:
    iptables -A INPUT -p tcp –dport 3306 -j DROP
  • 保存规则(CentOS):
    service iptables save

2. 绑定 MySQL 监听地址

修改 MySQL 配置文件 ,限制其只监听内网或特定 接口,减少暴露风险。

如何在 mysql 中配置防火墙访问控制

冬瓜配音

AI 在线配音生成器

如何在 mysql 中配置防火墙访问控制 66

查看详情 如何在 mysql 中配置防火墙访问控制

  • 编辑 MySQL 配置文件(通常为 /etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf
  • 设置 bind-address:
    bind-address = 192.168.1.10(改为本机内网 IP)
  • 若只想本地访问,可设为:
    bind-address = 127.0.0.1
  • 重启 MySQL 生效:
    systemctl restart mysql

3. 配合 MySQL 用户权限做双重控制

即使防火墙放行,也应通过 MySQL 账户权限进一步限制。

  • 创建用户时指定来源 IP:
    CREATE USER ‘admin’@’192.168.1.100’ IDENTIFIED BY ‘password‘;
  • 禁止远程登录的用户使用 % 或任意主机:
    避免使用 ‘user’@’%’,除非必要
  • 删除匿名用户、限制 root 远程登录

4. 使用 云服务 器安全组(如 阿里云、AWS)

如果 MySQL 部署在 云服务器 上,推荐使用安全组策略代替或补充本地防火墙。

  • 进入云平台控制台,找到对应实例的安全组
  • 添加入站规则:仅允许指定 IP 段访问 3306 端口
  • 优先级高于本地防火墙,建议与本地策略保持一致

基本上就这些。关键是结合系统防火墙、MySQL 配置和账户权限,形成多层防护。只要不让 3306 端口对公网开放,就能大幅降低被攻击风险。

站长
版权声明:本站原创文章,由 站长 2025-11-10发表,共计1333字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources