适用版本
mysql Ver 14.12 Distrib 5.0.51b/8.0.21
- 安全加固指导
- 安全计算环境
- 身份鉴别
- 检查是否存在空密码
- 检查是否存在匿名账户
- 访问控制
- 检查是否按用户分配账号
- 检查是否禁止mysql以管理员账号权限运行
- 检查是否禁止mysql对本地文件存取
- 检查是否更改默认mysql管理员账号
- 根据机器性能和业务需求,设置最大连接数
- 身份鉴别
- 安全计算环境
|
加固要求 |
应不存在空密码账户 |
|
加固方法 |
以下操作需DBA权限 修改帐户弱密码 如要修改密码,执行如下命令: 将密码为root的用户密码修改为test!p3 mysql> update user set password=password('test!p3') where user='root'; 刷新mysql的系统权限相关表 mysql> flush privileges; |
|
检查方法 |
使用命令: select Password from user 8.0.22版本使用命令: select authentication_string from user 5.7版本使用命令: select Password from user 结果中不存在密码为空的用户为符合。 MySQL5.6
MySQL5.7.31
MySQL8.0.22
|
|
加固情况 | |
|
备注 |
|
加固要求 |
应禁用匿名账户 |
|
加固方法 |
以下操作需DBA权限 mysql>use mysql; mysql>delete from user where User = ''; 刷新mysql的系统权限相关表 mysql> flush privileges |
|
检查方法 |
使用命令: select user from user 结果中不存在匿名用户为符合。 MySQL5.6
MySQL5.7.31
MySQL8.0.22
|
|
加固情况 | |
|
备注 |
|
加固要求 |
应按用户分配账号权限 |
|
加固方法 |
以下操作需DBA权限 eg:创建账号test,密码为nsfocus mysql>insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("localhost","test",password("nsfocus"),'','',''); |
|
检查方法 |
使用命令: select user from user 结果中不存在多余、过期账号为符合。 MySQL5.6
MySQL5.7.31
MySQL8.0.22
|
|
加固情况 | |
|
备注 |
|
加固要求 |
应配置用户不能重复使用最近5次内已使用过的密码 |
|
加固方法 |
创建mysql用户并在my.ini中配置user=mysql |
|
检查方法 |
进入mysql安装目录的根目录,找到my.ini文件,查看文件内容 结果中包含user=mysql语句为符合。 |
|
加固情况 | |
|
备注 |
|
加固要求 |
应禁止mysql对本地文件进行存取操作 |
|
加固方法 |
在my.ini的mysqld字段下加入local-infile=0 重启mysql后生效 假如需要获取本地文件,需要打开此功能,但出于安全考虑建议关闭 重新开启local-infile=1。 |
|
检查方法 |
进入mysql安装目录的根目录,找到my.ini文件,查看文件内容。 结果中包含local-infile=0语句为符合。 |
|
加固情况 | |
|
备注 |
|
加固要求 |
应更改默认MySQL管理员账号口令 |
|
加固方法 |
以下操作需DBA权限 mysql> update user set user="newname" where user="root"; 刷新mysql的系统权限相关表 mysql> flush privileges; newname为管理员账号的新名称,改成不易被猜测的用户名。 |
|
检查方法 |
使用命令: select user from user 结果中不包含root用户为符合。 MySQL5.6
MySQL5.7.31
MySQL8.0.22
|
|
加固情况 | |
|
备注 |
|
加固要求 |
应根据机器性能和业务需求,设置最大连接数 |
|
加固方法 |
在mysql的安装目录下,在my.ini中在[mysqld]配置段添加: max_connections = 1000,重启mysql服务。 |
|
检查方法 |
进入mysql安装目录的根目录,找到my.ini文件,查看文件内容。 结果中包含max_connections = 1000语句为符合。 |
|
加固情况 | |
|
备注 |
-
-
- 入侵防范
- 检查是否删除测试安装的test库
- 日志审计
- 检查是否配置日志功能
- 入侵防范
-
|
加固要求 |
应删除mysql测试库test库 |
|
加固方法 |
以下操作需DBA权限 显示所有数据库 mysql> show databases; 删除命名为test的数据库 mysql> drop database test; 刷新mysql的系统权限相关表 mysql> flush privileges; |
|
检查方法 |
使用命令: show databases 结果中不包含test库为符合。 MySQL5.6
MySQL5.7.31
MySQL8.0.22
|
|
加固情况 | |
|
备注 |
|
加固要求 |
应开启通用日志,日志应至少保存6个月以上 |
|
加固方法 |
检查是否配置错误日志: 在mysql的安装目录下,在my.ini中配置log_error的目录,并重启mysql服务。 检查是否配置 慢查询日志: 在mysql的安装目录下,在my.ini中配置log_slow_queries的目录,并重启mysql服务。 检查是否配置二进制日志: 在mysql的安装目录下,在my.ini中配置log_bin的目录,并重启mysql服务。 检测是否配置更新日志: 在mysql的安装目录下,在my.ini中配置log_slave_updates=1,并重启mysql服务。 检查是否配置查询日志: 在mysql的安装目录下,在my.ini中配置log的目录,并重启mysql服务。 |
|
检查方法 |
进入mysql安装目录的根目录,找到my.ini文件,查看文件内容 结果中配置了log文件的目录为符合。 |
|
加固情况 | |
|
备注 |
博客给出了适用的MySQL版本,包括5.0.51b/8.0.21。重点介绍了MySQL安全加固指导,涵盖安全计算环境的身份鉴别、访问控制、入侵防范和日志审计等方面,如检查空密码、匿名账户,设置最大连接数,删除测试库,配置日志功能等。















2250

被折叠的 条评论
为什么被折叠?



