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,且账号、名称不为空的账号则合规,否则不合规。

MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限-LMLPHP

加固参考步骤:

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

MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限-LMLPHP

判定依据: /etc/my.cnf或者(my.ini)文件中存在secure_auth则合规,否则不合规。

加固参考步骤:

方法1(临时设置,不推荐):

临时设置的,只会在当前会话中生效,并不会永久修改 MySQL 的配置文件。当 MySQL 服务器重新启动时,secure_auth 的值会恢复为配置文件中的默认值。

1、以管理员用户登录数据库,执行如下命令:

msyql>set global secure_auth='ON';

MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限-LMLPHP

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

MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限-LMLPHP

1.3 禁止MySql进程管理员权限

检查点:

1、使用以下命令查看mysqld进程的启动用户

ps -ef|grep "mysqld"|grep -v "grep"|grep -v "mysqld_safe"|awk '{print $1}'

或者

ps -ef | grep mysqld

MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限-LMLPHP

判定依据: mysqld进程的启动用户不为root则合规,否则不合规。

加固参考步骤:

1、编辑/etc/my.cnf,在[mysqld]区域添加如下语句:

[mysqld]
user=mysql

2、重启mysql服务

systemctl start mysqld

MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限-LMLPHP


03-02 07:35