MySQL 服务器加固

信息安全 数据库 配置 硬化 mysql
2021-09-01 04:37:04

紧跟强化主题......

保护 MySQL 的一些最佳实践、建议和必读内容是什么?

2个回答
  • 在服务器上仅运行 MySQL - 如果可能,在服务器上仅运行 MySQL 并删除任何未使用的服务。
  • 防火墙- 通过 IP 地址将访问限制为仅需要访问的服务器/客户端。
  • 用户权限- 创建用户时,始终给予最低数量的权限并根据需要进行扩展。还要尽量避免对主机使用“%”通配符,而是限制在需要访问的主机上。
  • 适当地绑定地址- 如果您只需要远程访问同一网络内的服务器,并且机器同时具有外部 IP 和内部网络地址。将 MySQL 设置为仅侦听内部地址。
  • 启用日志记录- 如果数据库无法处理许多查询,则启用日志记录。
  • mysql_secure_installation - 使用 mysql_secure_installation 实用程序,它可以执行许多操作,包括删除匿名用户帐户、删除测试数据库等。
  • Root 帐户只能在本地访问- 最好将 root 帐户限制为只能直接从计算机访问。mysql_secure_installation 确实允许您轻松删除对 root 帐户的任何远程访问。然后我通常要么通过 ssh 连接到机器并使用 mysql 命令提示符,要么 MySQL Workbench 具有通过 SSH 进行隧道传输的功能。

其他资源

我想通常的操作系统方法(如果需要远程 ssh 管理员,包括 fail2ban),然后阻止对 MySQL 端口的所有外部访问,或者在绝对必要时允许白名单连接。为 mysqladmin 用户设置密码。

之后,mysqladmin 用户应该只被允许从 localhost 进行连接,并且应该是唯一通过“用户”表授予任何权限的用户 - 所有其他用户默认拒绝访问(即在用户表中)但给予个人特定的授权数据库。

请注意,您不应直接在 Internet 上公开 MySQL。如果您必须进行远程数据访问,请使用 VPN(例如带有客户端验证的通道)。