数据库
自查脚本:
select version();
select * from mysql.user;
select host,user,authentication_string,plugin from mysql.user;
select * from mysql.plugin;
show plugins;
show variables like 'validate%';
show variables like '%password%';
show variables like '%general%';
show variables like 'general_log%';
show variables like '%control%';
show variables like '%connection_control%';
show variables like '%timeout%';
show variables like '%ssl%';
show variables like '%have_ssl%';
show variables like '%have_openssl%';
show variables like '%validate_password%';
show variables like '%connection_control%';
show global variables like '%default_password_lifetime%';
show global variables like '%timeout%';
show global variables like '%max_connect_errors%';
show binlog events limit 100;
show variables like 'require_secure_transport';
show variables like '%ssl%';
show global variables like '%log%';
show grants;
- 数据库未配置密码复杂度策略
#安装插件 INSTALL PLUGIN validate_password SONAME 'validate_password.so'; #建议配置强制密码复杂度策略,密码长度不少于8位,至少包含数字、大小写字母、特殊字符中的至少3种; #如在数据库中添加“validate_password%“模块,并配置如下参数值: SET GLOBAL validate_password_length=8; SET GLOBAL validate_password_mixed_case_count=1; SET GLOBAL validate_password_number_count=1; SET GLOBAL validate_password_policy=MEDIUM; SET GLOBAL validate_password_special_char_count=1;
- 数据库未配置口令有效期(可选)。
show variables like '%password%'; # 建议配置密码有效期策略,90天强制更改密码,至多不超过120天; # 在数据库中添加“default_password_lifetime”模块,并配置以下参数值: SET GLOBAL default_password_lifetime=90; # SET GLOBAL default_password_lifetime=3650;
- 数据库未配置登录失败锁定策略。
# 查看数据库登录失败锁定策略 show variables like '%connection_control%'; install plugin connection_control soname 'connection_control.so'; install plugin connection_control_failed_login_attempts soname 'connection_control.so'; # 建议配置登录失败处理功能,如在数据库添加“connection_control”,并在此模块下配置如下参数值: SET GLOBAL connection_control_failed_connections_threshold=5; SET GLOBAL connection_control_max_connection_delay=600000; SET GLOBAL connection_control_min_connection_delay=60000;
- 数据库目前登录超时时间为8小时,超时时间过长
# 建议配置登录连接超时自动退出功能,如在数据库“%time%”模块处配置如下参数值:(interactive_timeout=1800) show variables like '%timeout%'; SET GLOBAL interactive_timeout=1800;
- 数据库未做地址限制
建议通过mysql的user表的host字段或者主机防火墙限制远程管理数据库的网络地址范围。select user, host FROM mysql.user; -- 比如Host字段值从 % 改为 192.168.39.%
- 未提供数据库日志
建议开启mysql数据库的general_log日志功能,或者mysql部署MariaDB Audit Plugin审计插件后,提供数据库的审计日志。show variables like 'general_log'; -- 查看日志是否开启 show variables like 'general_log_file'; -- 看看日志文件保存位置 show variables like 'log_output'; -- 看看日志输出类型 table或file set global general_log=on; -- 对全局开启general log show variables like 'log_output'; set global general_log=off;
作者:Jeebiz 创建时间:2024-11-08 09:28
最后编辑:Jeebiz 更新时间:2024-11-14 21:58
最后编辑:Jeebiz 更新时间:2024-11-14 21:58