总结记录 MySQL 如何进行安全加固
概念讲解
- My 是 MySQL 的联合创始人 Monty Widenius 的女儿的名字。MySQL 是 My 和 SQL 的组合,这就是 MySQL 命名的由来。
- MySQL 的官方网址: http://www.mysql.com/ ,MySQL 的社区版本下载地址为: http://dev.mysql.com/downloads/mysql/
- MySQL 是一个数据库管理系统,也是一个关系数据库。它是由 Oracle 支持的开源软件。这意味着任何一个人都可以使用 MySQL 而不用支付一毛钱。 另外,如果需要,还可以更改其源代码或进行二次开发以满足您的需要。
- MySQL 可以在各种平台上运行 UNIX,Linux,Windows 等。可以将其安装在服务器甚至桌面系统上。 此外,MySQL 是可靠,可扩展和快速的。
使用教程
安全配置
帐号安全
禁止 Mysql 以管理员帐号权限运行以普通帐户安全运行 mysqld,禁止以管理员帐号权限运行 MySQL 服务。在 /etc/my.cnf 配置文件中进行以下设置。
|
|
避免不同用户间共享帐号
参考以下步骤。创建用户。
|
|
执行以上命令可以创建一个 phplamp 用户。使用该用户登录 MySQL 服务。
|
|
DROP USER 语句可用于删除一个或多个 MySQL 账户。使用 DROP USER 命令时,必须确保当前账号拥有 MySQL 数据库的全局 CREATE USER 权限或 DELETE 权限。账户名称的用户和主机部分分别与用户表记录的 User 和 Host 列值相对应。执行DROP USER user;语句,您可以取消一个账户和其权限,并删除来自所有授权表的帐户权限记录。
口令
检查账户默认密码和弱密码。口令长度需要至少八位,并包括数字、小写字母、大写字母和特殊符号四类中的至少两种类型,且五次以内不得设置相同的口令。密码应至少每 90 天进行一次更换。您可以通过执行以下命令修改密码。
|
|
授权
在数据库权限配置能力范围内,根据用户的业务需要,配置其所需的最小权限。查看数据库授权情况。
|
|
通过 revoke 命令回收不必要的或危险的授权。
|
|
开启日志审计功能
数据库应配置日志功能,便于记录运行状况和操作行为。MySQL服务有以下几种日志类型:错误日志: -log-err查询日志: -log (可选)慢查询日志: -log-slow-queries (可选)更新日志: -log-update二进制日志: -log-bin找到 MySQL 的安装目录,在 my.ini 配置文件中增加上述所需的日志类型参数,保存配置文件后,重启 MySQL 服务即可启用日志功能。例如,
|
|
该参数中启用错误日志。如果您需要启用其他的日志,只需把对应参数前面的 “#” 删除即可。日志查询操作说明执行show variables like ‘log_%’;命令可查看所有的 log。执行show variables like ‘log_bin’;命令可查看具体的 log。安装最新补丁确保系统安装了最新的安全补丁。注意: 在保证业务及网络安全的前提下,并经过兼容性测试后,安装更新补丁。如果不需要,应禁止远程访问
禁止网络连接,防止猜解密码攻击、溢出攻击、和嗅探攻击。
注意: 仅限于应用和数据库在同一台主机的情况。如果数据库不需要远程访问,可以禁止远程 TCP/IP 连接,通过在 MySQL 服务器的启动参数中添加–skip-networking参数使 MySQL 服务不监听任何 TCP/IP 连接,增加安全性。您可以使用 安全组 进行内外网访问控制,建议不要将数据库高危服务对互联网开放。
设置可信 IP 访问控制
通过数据库所在操作系统的防火墙限制,实现只有信任的 IP 才能通过监听器访问数据库。
|
|