数据库

自查脚本

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