MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限
1.1 检查是否配置不同用户不同账号
检查点:
使用以下命令查看名称不为root,且名称和密码不为空的账号
select user, host from mysql.user;
select count(*) from mysql.user where user !='root' and user !='' and authentication_string !='';
判定依据: 存在>=2个名称不为root,且账号、名称不为空的账号则合规,否则不合规。
加固参考步骤:
1、使用以下命令创建用户并授权
###1、创建zyl用户
create user 'zyl'@'%' identified by 'Zyl##2024';
###2、授权远程登录
#仅授权某一个ip访问
grant all privileges on *.* to 'zyl'@'191.168.181.10' with grant option;
### 允许所有 ip 远程访问(不建议设置)
grant all privileges on *.* to 'zyl'@'%' with grant option;
###3、刷新(刷新后才生效)
FLUSH PRIVILEGES;
1.2 检查是否禁止使用旧密码
secure_auth参数用于控制是否启用安全身份验证握手。当设置为 ON
时,MySQL会强制使用加密握手来验证连接请求,并不允许使用旧的、不安全的身份验证方式
。
这有助于提高数据库的安全性,特别是在处理敏感数据或在公共网络上运行数据库实例时。
检查点:
1、编辑文件/etc/my.cnf文件,在[mysqld]区域是否存在如下内容(windows下为my.ini文件):
secure_auth = ON
判定依据: /etc/my.cnf或者(my.ini)文件中存在secure_auth则合规,否则不合规。
加固参考步骤:
方法1(临时设置,不推荐):
临时设置的,只会在当前会话中生效,并不会永久修改 MySQL 的配置文件。当 MySQL 服务器重新启动时,secure_auth 的值会恢复为配置文件中的默认值。
1、以管理员用户登录数据库,执行如下命令:
msyql>set global secure_auth='ON';
2、重启mysql数据库服务.
systemctl start mysqld
或者
service mysql restart
方法2(推荐):
推荐在MySQL配置文件中进行相应的更改,而不是直接使用SET语句。
1、编辑文件/etc/my.cnf文件,在[mysqld]区域添加如下内容。
secure_auth = ON
2、重启MySQL服务:在修改了MySQL配置文件后,需要重新启动MySQL服务以使更改生效。
systemctl start mysqld
或者
service mysql restart
1.3 禁止MySql进程管理员权限
检查点:
1、使用以下命令查看mysqld进程的启动用户
ps -ef|grep "mysqld"|grep -v "grep"|grep -v "mysqld_safe"|awk '{print $1}'
或者
ps -ef | grep mysqld
判定依据: mysqld进程的启动用户不为root则合规,否则不合规。
加固参考步骤:
1、编辑/etc/my.cnf,在[mysqld]区域添加如下语句:
[mysqld]
user=mysql
2、重启mysql服务
systemctl start mysqld