等保三级-MySQL 加固

news2025/4/27 8:11:17

1、身份鉴别

要求:建议身份密码登录,身份标识具有唯一性,身份鉴别信息具有复杂度要求,密码长度最少为8位,密码由数字、字母大小写、特殊符号组成、并设置定期更换,更换时间最长位90天
(1)查看所有用户:

select user,host from mysql.user;

在这里插入图片描述
(2)查看密码复杂度插件

select * from mysql.plugin;

在这里插入图片描述
发现mysql8.0 并没有校验插件,然后查看插件包,发现有这个插件,则对该插件进行安装。

install plugin validate_password soname 'validate_password.so';

在这里插入图片描述
(3)卸载默认密码复杂度插件

uninstall plugin auth_socket.so;

在这里插入图片描述
(4)密码复杂度插件配置

show variables like 'validate%';

在这里插入图片描述
validate_password_check_user_name,ON为打开
validate_password_dictionary_file用于配置密码的字典文件,当validate_password_policy设置为STRONG时可以配置密码字典文件,字典文件中存在的密码不得使用
validate_password_length用来设置密码的最小长度,默认值是8最小是0
validate_password_mixed_case_count当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少同时拥有的小写和大写字母的数量,默认是1最小是0;默认是至少拥有一个小写和一个大写字母。
validate_password_number_count当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的数字的个数,默认1最小是0
validate_password_special_char_count当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的特殊字符的个数,默认1最小是0

(5)密码有效期配置

show global variables like 'default_password_lifetime';
修改命令
set global default_password_lifetime = 90;

在这里插入图片描述
查看修改结果
在这里插入图片描述
当password_lifetime 为null时,则代表该用户当前口令的有效期是使用的全局变量,而default_password_lifetime 为0代表有效期永远。

(6)查看密码有效期状态

select user,host,password_lifetime,password_last_changed from mysql.user;

在这里插入图片描述

2、测评内容

(1)查看失败锁定策略

show variables like "%connection_control%";

在这里插入图片描述
空表表示未安装插件,插件安装语句

install plugin connection_control soname "connection_control.so";
install plugin connection_control_failed_login_attempts soname 'connection_control.so';

查看插件状态

select plugin_name,plugin_status from INFORMATION_SCHEMA.PLUGINS where PLUGIN_NAME LIKE 'connection%';

在这里插入图片描述
对策略进行查询

show variables like "%connection_control%";

在这里插入图片描述
加固修改命令

set global connection_control_failed_connections_threshold = 5;
set global connection_control_max_connection_delay = 1800000;
set global connection_control_min_connection_delay = 1800000;

connection_control_failed_connections_threshold:在服务器增加后续连接尝试的延迟之前,允许客户端进行的连续失败连接尝试的次数。
connection_control_min_connection_delay:对于超出阈值的每个连续连接失败,要添加的延迟量。
connection_control_max_connection_delay:要添加的最大延迟。

(2)查看连接超时退出策略

show global variables like '%timeout'; 

在这里插入图片描述
这三个参数
wait_timeout
interactive_timeout
connect_timeout
加固修改命令如下

set global wait_timeout=1800;
set global interactive_timeout=1800;
set global connect_timeout=10;

在这里插入图片描述

3、远程管理测评内容

要求:建议远程管理数据库时建议使用堡垒机+ssh防止鉴别信息在网络传输过程中被窃听
(1)查询ssl是否开启 yes是开启了ssl,disable则表示没有

show variables like "%ssl%";

在这里插入图片描述

(2)开启ssl加密传输

set global have_openssl=yes;
set global have_ssl=yes;

(3)查询是否使用ssl

status

在这里插入图片描述
(4)生成ssl证书

退出数据库,我用的是Linux,所以到Linux命令行界面进行操作
查版本

mysql_ssl_rsa_setup
或
mysqld_ssl_rsa_setup

数据库安装位置

find ./ -name "mysql_ssl_rsa_setup"
find ./ -name "mysqld_ssl_rsa_setup"

在这里插入图片描述
数据库是默认有证书文件,所以执行时没有返回值
在这里插入图片描述
找证书位置

find ./ -name "*.pem"

在这里插入图片描述
在这里插入图片描述
(5)配置ssl证书
修改mysql配置文件,找到my.cnf

[mysqld]
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/server-cert.pem
ssl-key=/var/lib/mysql/server-key.pem

[mysql]
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/client-cert.pem
ssl-key=/var/lib/mysql/client-key.pem

在这里插入图片描述
重启数据库,然后再登录数据库查看

4、用户测评内容

(1)创建两个测试用户
一个测试用户为密码登录,一个为密码+ssl证书登录

create user 'test'@'%' identified by 'Test@123456';
create user 'testssl'@'%' identified by 'Test@123456' require ssl;

在这里插入图片描述
(2)分别用两个测试用户进行登录
在这里插入图片描述
服务器登录ssl账户进行测试是可以输密码直接进入的,所以我们用远程工具进行连接
在这里插入图片描述
客户端加入秘钥
在这里插入图片描述

5、访问控制测评

应对登录的用户分配账户和权限;
应重命名或删除默认账户,修改默认账户的默认口令
应及时删除或停用多余的、过期的账户,避免共享账户的存在;
应授予管理用户所需的最小权限,实现管理用户的权限分离;
要求:建议建立、操作员、审计员、安全管理员等角色,安全管理为制定安全策略人员、操作员为日常操作用户、审计员只需具有审计日志查看权限;实现用户所需权限最小化,和管理用户权限分离。
(1)创建3个角色
操作员:负责业务层面开发,对应我们开发人员。
审计员:只需对日志具有审查权限
管理员:拥有所有的权限,制定安全策略。

create role 'System','Security','guanliyuan';

(2)分配权限

grant all privileges on *.* to 'System'@'%' with grant option;
grant reload,process,Alter,Create User,Create View,select,show databases,show view,update,file on *.* to 'Security'
@'%';
grant reload,process,insert,select,show,create view,alter,insert,show database,show view, on *.* to 'guanliyuan'@'%';

(3)创建管理员用户

create user 'System'@'%' identified by 'System@123345';
create user 'Security'@'%' identified by 'Security@123345';
create user 'guanliyuan'@'%' identified by 'guanliyuan@123345';

(4)用户加入到角色中

grant 'System' to 'System'@'%';
grant 'Security' to 'Security'@'%';
grant 'guanliyuan' to 'guanliyuan'@'%';

激活各个角色

set global activate_all_roles_on_login=on;

6、安全审计

应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
要求:建议数据库开启安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
(1)查看审计开启情况

show global variables like 'log_timestamps';
show global variables like '%general%';
show global variables like '%log_bin%';
show global variables like '%log_error%';
show global variables like '%slow_query_log%';

在这里插入图片描述
log_timestamps表示记录审计日志的时间是从哪里获取。UTC是全球时间,system是系统当前时间,一般我们用当前时间
general_log表示审计功能是否开启
general_log_file表示审计信息的日志文件
log_bin表示二进制日志
log_bin_basename二进制日志的日志文件
log_error表示错误日志
slow_query_log表示慢日志
slow_query_log_file表示慢日志的日志文件

(2)开启审计功能

set global log_timestamps = SYSTEM;
set global general_log = ON;
set global general_log_file = /var/lib/mysql/general.log;
set global slow_query_log = ON;
set global slow_query_log_file = /var/lib/mysql/slow_query.log;

(3)查看审计文件

cat /var/lib/mysql/general.log
cat /var/lib/mysql/binlog
cat /var/lib/mysql/error.log
cat /var/lib/mysql/slow_query.log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1710179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

php反序列化学习(1)

1、php面向对象基本概念 类的定义: 类是定义了一件事物的抽象特征,它将数据的形式以及这些数据上的操作封装住在一起。(对象是具有类类型的变量,是对类的实例) 构成: 成员变量(属性&#xf…

《QT实用小工具·六十七》QTabWidget实现的炫酷标签工具栏

1、概述 源码放在文章末尾 该项目基于QTabWidget和QTabBar实现了灵活的标签工具栏,主要包含如下功能: 1、标签栏可以收起,可以展开 2、可以在标签栏中添加新的标签界面 3、可以从标签工具栏中把界面拖出来,也可以拖回去 4、关闭拖…

详解Java ThreadLocal

个人博客 详解Java ThreadLocal | iwts’s blog Java ThreadLocal ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应的值。 TreadLocal存储模型 ThreadLocal的静态…

vue3通过ElementPlus的tooltip组件实现自定义指令文字提示

vue3自定义指令实现tooltip文字提示,通过ElementPlus的tooltip组件 简介步骤1:定义指令tooltip步骤2:createTooltip函数步骤3:autoShowToolTip步骤4:注册指令步骤5:测试 简介 之前的项目中,有些…

基于springboot实现华府便利店信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现华府便利店信息管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本华府便利店信息管理系统就是在这样的大环境下诞生&#xff…

NXP i.MX8系列平台开发讲解 - 3.13 Linux 之Audio子系统(二)

专栏文章目录传送门:返回专栏目录 目录 1. Linux ALSA 内核框架 2. Linux ALSA 代码分析 2.1 声卡驱动初始化 2.2 声卡创建注册 2.3 PCM设备创建 3. ALSA ASoC 3.1 Machine 3.2 Platform 3.3 Codec 上一章节,对于Linux Audio子系统有了大概的了解…

做视频号小店遇到差评怎么处理?如何规避差

大家好,我是喷火龙。 大家在做店的时候应该都会遇到品退、中差评这些问题,这对我们的店铺影响还是非常大的,差评过多就会影响店铺的体验分,从而影响店铺的流量,还会间接的影响商品的转化率,如果太低的话&a…

@RequestBody注解

文章目录 RequestBody注解基本概念在postman里如何发送接收端带有RequestBody的请求? RequestBody注解 基本概念 扩展: http报文会包含四部分,第一部分是请求行,第二部分是请求头,第三部分是空行,第四部分…

示教编程操作QA

示教器的连接问题 Q1:示教器显示连接断开,该如何解决? A1:原因:示教器与控制器之间断开连接,需要调整控制器来解决该问题。解决方法1:重启控制器;解决方法2:将控制器与P…

Python: 使用pyotp实现OTP一次性密码验证

使用pyotp实现OTP一次性密码验证 OTP的基本原理 生成一个共享秘钥作为随机数的种子服务端通过种子计算出当前的密码客户端也通过相同的种子计算出当前的密码验证客户端生成的密码和服务端生成的密码是否匹配 服务端和客户端计算的方式一样 共享密钥 时间因子 算法 > 密…

XDebug配置几件教程,phpstorm实现http请求断点调试

写这篇的文章的初衷:网络上配置XDebug的文章有很多,XDebug也有官方的文档, PhpStorm也有官方的文档,为什么还要写那? 相信不少人,都有一种感觉,虽然教程很多,但是按教程走一遍,自己的确不能正常调试。 问题出在下面几个方面: 1. 对调试过程中,没有一定的认识,因此…

100个 Unity小游戏系列五 -Unity 抽奖游戏专题三老虎机游戏

一、演示效果 二、知识点讲解 2.1 布局 public void CreateItems(SlotsData[] slotsData){isInited false;slotsPrizeList new List<SlotsData>();for (int i 0; i < slotsData.Length; i){var item slotsData[i];slotsPrizeList.Add(item);}float bottomY -it…

探索Python的包与模块:构建项目的基石

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、模块与包的基础认知 1. 模块的定义与创建 2. 包的组织与管理 二、模块与包的进阶使用…

【分支控制(if-else判断)】单分支-双分支-多分支-嵌套分支

程序流程控制 在程序中, 程序运行的流程控制决定程序是如何执行的, 是我们必须掌握的, 主要有三大流程控制语句. 顺序控制 (简单)分支控制 (判断)循环控制 (循环) 一. 顺序控制 顺序控制介绍 程序从上到下逐行地执行, 中间没有任何判断和跳转. 顺序控制举例和注意事项 Java中…

AUS GLOBAL 与 UNICEF 联合国儿童基金会共同帮助叙利亚和土耳其地震受灾居民

2023年2月6日,土耳其东南部和叙利亚发生两次强烈地震和数十次余震,数以千计的儿童和家庭面临危机。 成千上万的房屋被毁,许多家庭被迫流离失所,而在一年中的这个时候,气温经常低于冰点,雪和冻雨很常见。许多学校、医院以及其他医疗和教育设施被地震破坏或摧毁,这对儿童造成了巨…

马斯克开启军备竞赛,xAI筹集60亿美元

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调重新阅读。而最新科技&#xff08;Mamba&#xff0c;xLSTM,KAN&#xff09;则提供了大模…

蓝桥杯—SysTick中断精准定时实现闪烁灯

在嵌入式系统中&#xff0c;SysTick_Handler 是一个中断服务例程&#xff08;Interrupt Service Routine, ISR&#xff09;&#xff0c;用于处理 SysTick 定时器的中断。SysTick 定时器通常用于提供一个周期性的定时中断&#xff0c;可以用来实现延时或者周期性任务。 SysTick…

AWS联网和内容分发之Transit Gateway

将Amazon VPC、AWS账户和本地网络连接到一个网关中。AWS Transit Gateway通过中央枢纽连接Amazon虚拟私有云&#xff08;VPC&#xff09;和本地网络。此连接简化了您的网络&#xff0c;并且结束了复杂的对等关系。Transit Gateway充当高度可扩展的云路由器&#xff0c;每个新的…

HLS入门(Xilinx Vivado 2019.2)——点亮LED仿真

HLS入门——点亮LED仿真 一、HLS简介&#xff08;一&#xff09;什么是HLS&#xff1f;&#xff08;二&#xff09;HLS能做什么&#xff1f;&#xff08;三&#xff09;HLS的使用&#xff08;四&#xff09;HLS的优势&#xff08;五&#xff09;HLS与VHDL/Verilog编程技术的关系…

【机器学习】【深度学习】正则化(Regularization)

概念 正则化&#xff08;Regularization&#xff09;是在机器学习模型中避免过拟合的一种技术。它通过引入一个惩罚项&#xff08;即正则项&#xff09;来限制模型的复杂度&#xff0c;以此来提防模型过度依赖训练数据&#xff0c;捕获数据中的噪音信息而导致过拟合现象。简单…