Mysql部署全攻略——等保安全配置

本文详细介绍了MySQL的安全配置,包括修改默认root用户、删除空密码用户、调整超时设置、限制登录、增强密码复杂度、设置密码自动过期、开启General_log日志、启用加密链接、安装审计插件并验证其功能,确保数据库在等保要求下运行,并提供了日志管理策略。
摘要由CSDN通过智能技术生成

目录

修改默认的root用户

检查是否存在空密码用户

检查各类超时或错误次数配置

错误链接次数

等待超时时间,由默认的28800修改为7200

Mysql登录限制

Mysql密码复杂度设置

账号密码自动过期

开启General_log日志

临时开启(无需重启服务即生效,但重启mysql后,配置将失效)

配置文件开启(永久生效)

加密链接

证书及秘钥说明

证书及秘钥确认

文件清单及说明

若无证书及秘钥,可使用mysql_ssl_rsa_setup创建证书及秘钥

ssl链接说明

ssl功能已默认开启

强制某个用户使用ssl

强制某个用户使用X509认证

强制所有用户使用安全链接(非必须)

安全链接的取消

加密主从同步

添加审计功能

说明

mcafee插件下载及安装

插件下载注意事项

准备工具

上传安装包

解压

安装插件依赖gdb

运行脚本,计算获取偏移值

修改mysql配置文件my.cnf

复制审计插件

重启mysql服务,使插件生效

进入mysql命令行,查看插件情况(因my.cnf中已配置加载并启用审计插件,因此无需再次安装)

验证审计插件

创建测试实例、表,并进行DLL操作

查看审计日志内容

审计日志拆分脚本

知识补充

审计插件的卸载

日志文件的管理


修改默认的root用户

  • 修改默认用户名称
#登录
mysql -u root -p
#切换实例
use mysql;
#修改用户名称,如admin
update user set user='admin' where user='root';
#刷新
flush privileges;

  • 查验结果
select user,host from mysql.user;

检查是否存在空密码用户

select user,host from mysql.user where length(authentication_string)=0;

 如存在,需删除

检查各类超时或错误次数配置

错误链接次数

max_connect_errors=100

保持默认的100即可;

等待超时时间,由默认的28800修改为7200

interactive_timeout=7200
wait_timeout=7200

Mysql登录限制

以下操作均在mysql命令窗口下进行

  • 查看现有插件
show plugins;

  • 安装登录限制插件
install plugin connection_control soname "connection_control.so";
install plugin connection_control_failed_login_attempts soname 'connection_control.so';

再次查看插件

  • 完成安装后,在my.cnf配置文件中的“[mysqld]”选项中添加限制配置,重启mysql服务后使其生效
#登录次数及超时限制
connection-control-failed-connections-threshold = 5
connection-control-min-connection-delay = 108000

Mysql密码复杂度设置

以下操作均在mysql命令窗口下进行

  • 查看现有插件
show plugins;

  • 安装密码复杂度插件
install plugin validate_password soname 'validate_password.so';

再次查看插件 

  • 完成安装后,在my.cnf配置文件的“[mysqld]”选项中中添加限制配置,重启mysql服务后使其生效
#密码复杂度
plugin-load=validate_password.so
validate_password_policy=1
validate_password_length=8
validate_password_number_count=3
validate_password_mixed_case_count=1
validate_password_special_char_count=1
validate-password=FORCE_PLUS_PERMANENT

参数解读:

  1. plugin-load=validate_password.so:插件加载;
  2. validate_password_policy:密码策略。默认为MEDIUM。可配置的值如下:
    • 0或LOW:仅需要符合密码长度(由参数validate_password_length指定)
    • 1或MEDIUM:满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊符号
    • 2或STRONG:满足MEDIUM策略,同时密码不能存在字典文件(dictionary file)中
  3. validate_password_length:用来设置密码的最小长度,默认值是8,最小是0
  4. validate_password_number_count:当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的数字的个数,默认是1,最小是0
  5. validate_password_mixed_case_count:当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少同时拥有的小写和大写字母的数量,默认是1,最小是0;默认是至少拥有一个小写和一个大写字母
  6. validate_password_special_char_count:当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的特殊字符的个数,默认是1,最小是0
  7. validate-password=FORCE_PLUS_PERMANENT:服务器在启动时加载插件,并防止在服务器运行时删除插件
  • 查询修改结果
show variables like 'validate%';

账号密码自动过期

  • 全局方式(临时配置)
set GLOBAL default_password_lifetime=90;
  • 配置文件方式(永久配置)

 在[mysqld]配置项下添加

default_password_lifetime=90

开启General_log日志

开启general log将所有到达MySQL Server的SQL记录下来。

一般不会开启该功能,因为log的量会非常庞大。

注:若开启了mysql审计功能,则不再开启此日志。

开启方式分为两种:

临时开启(无需重启服务即生效,但重启mysql后,配置将失效)

  • 查看日志是否开启
show variables like 'general_log';

  • 开启日志功能
set global general_log=on;

  • 设置日志文件存放位置
set global general_log_file='/home/mysql/general.log';

  • 查看日志文件存放位置
show variables like 'general_log_file';

  • 设置输出类型
#设置输出类型为存入数据库
set global log_output='TABLE';
#设置输出类型为存入文件(默认值为FILE)
set global log_output='FILE';
#同时两种日志存储方式
set global log_output='FILE,TABLE';

  • 查看日志输出类型 
show variables like 'log_output';

注:

  • log_output参数是对所有日志输出类型生效,包括慢查询和全日志的日志输出类型。
  • 配置log_output='TABLE'时,日志信息将写入到mysql.slow_log表中。同时记录到表中要比记录到文件中消耗更多的系统资源。对于需要启用慢查询日志,又需要获得更高的系统性能的,那么建议优先记录到文件。

配置文件开启(永久生效)

  • 在my.cnf配置文件中的“[mysqld]”选项中添加限制配置,重启mysql服务后使其生效
general_log = ON
general_log_file=/home/mysql/data/general.log
log_output=file

注:

  • 以上两种配置方法可同时配置,保持配置参数一致即可。将实现无需重启即生效,且重启不失效的效果。
  • log_output参数如果慢查询中已配置,这里就不要配置了,如使用文件输出类型,也可不添加该配置。

加密链接

证书及秘钥说明

注:5.7版本以后,默认源码安装完,在其数据目录,即datadir变量下,就已生成了证书及秘钥文件,且已开启了ssl加密链接功能。

一般升级到5.7版本后,查询have_openssl就已经是默认开启的了,一般检查人员仅确认其为开启就可通过。一般不会深入确认用户使用启用了ssl加密用户或x509用户。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值