MySQL数据库基线核查:
1、查看安装插件:
select PLUGIN_NAME,PLUGIN_STATUS from INFORMATION_SCHEMA.PLUGINS;
show plugins;
2、查看登录失败处理参数:
show variables like '%connection_control%';
3、查看用户、密码等参数:
select Host,User,password_expired,password_lifetime,account_locked,password_last_changed from user;
4、查看日志审计:
show variables like '%audit%';
show variables like 'log_%';
5、查看超时退出:
show variables like '%timeout%';
6、查看登录失败次数:
show variables like '%max_connect_errors%';
7、查看是否采用加密通信:
show variables like "%have_ssl%";
8、查看密码复杂度策略:
show variables like 'validate%';
9、查看密码最大使用周期:
show variables like 'default_password_lifetime';
MySQL数据库基线加固:
1、创建用户: sql>create user 'dog'@'localhost' IDENTIFIED BY '123456';
2、授权: sql>GRANT privileges ON databasename.tablename TO 'username'@'host';
sql>GRANT select,insert ON *.* TO 'dog'@'localhost';
3、密码复杂度策略:sql>INSTALL PLUGIN validate_password SONAME 'validate_password.so'; //安装插件
sql>show variables like 'validate%';//查看密码复杂度设置参数
sql>
set
global validate_password_policy=
0
; //设置密码复杂度策略
sql>
set
global validate_password_length=
1
; //设置密码长度
sql>
select
@@validate_password_policy; //查看密码复杂度策略
sql>
select @@validate_password_length; //查看密码长度
4、设置密码使用周期:sql>set global default_password_lifetime=90;
5、开启登录失败处理:sql>install plugin CONNECTION_CONTROL soname 'connection_control.so';
sql>install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';
6、开启日志审计:sql> INSTALL PLUGIN server_audit SONAME 'libaudit_plugin.so';
sql>SET GLOBAL audit_json_file=ON;
7、超时退出参数:
#
在/etc/my.cnf加上配置,并重启mysql
[mysqld]
plugin-load=validate_password.so
validate_password_policy=0
validate-password=FORCE_PLUS_PERMANENT
1、validate_password_policy 代表的密码策略,可配置的值有以下:默认是MEDIUM
0 or LOW 仅需需符合密码长度(由参数validate_password_length指定)
1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符
2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionary file)中
2、validate_password_dictionary_file
# 用于配置密码的字典文件,当validate_password_policy设置为STRONG时可以配置密码字典文件,字典文件中存在的密码不得使用。
3、validate_password_length # 用来设置密码的最小长度,默认值是8最小是0
4、 validate_password_mixed_case_count
# 当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少同时拥有的小写和大写字母的数量,默认是1最小是0;默认是至少拥有一个小写和一个大写字母。
5、validate_password_number_count
# 当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的数字的个数,默认1最小是0
6、validate_password_special_char_count
# 当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的特殊字符的个数,默认1最小是0
参考文章:
1、登录失败处理:MySQL数据库限制多次登录失败重试时间_从入门到放弃-CSDN博客_mysql数据库登录失败处理
2、密码复杂度策略:Mysql密码策略_背锅浩的博客-CSDN博客_数据库密码策略
3、密码强度规则设置:mysql 密码强度规则设置_朱智文的专栏-CSDN博客_mysql 密码强度
4、日志审计:MySQL审计工具Audit插件使用 – 运维那点事 http://www.luyixian.cn/news_show_11612.aspx