等保三级-MySQL 加固

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

asp.net core接入prometheus

安装prometheus和Grafana 参考之前的文章->安装prometheus和Grafana教程 源代码 dotnet源代码 新建.net core7 web项目 修改Program.cs using Prometheus;namespace PrometheusStu01;public class Program {public static void Main(string[] args){var builder We…

airflow2.7.3 + celery + redis + mysql 安装部署测试

集群环境: ​ 3台 centos 7.9 (dp95、dp96、dp97) python3.8 ​ dp96:mysql8.0.36(mysql8.0离线安装) ​ dp95\dp96\dp97:celery 集群(Celery安装测试) 安装目标: airflow2.7.3 mysql celery redis WebserverSchedulerwo…

Java 商品入库系统 案例

测试类 package 练习.商品入库系统;import java.util.ArrayList; import java.util.Scanner; public class Test {public static final int Enrool 1;public static final int Search 2;public static final int Delect 3;public static final int Exit 4;public static…

交换机部分综合实验

实验要求 1.内网IP地址使用172.16.0.0/16 2.sw1和sW2之间互为备份; 3.VRRP/mstp/vlan/eth-trunk均使用; 4.所有pc均通过DHcP获取Ip地址; 5.ISP只配置IP地址; 6.所有电脑可以正常访问IsP路由器环回 实验拓扑 实验思路 1.给交换机创建vlan,并将接口划入vlan 2.在SW1和…

java实现List对象转geojson文本返回前端

1.业务需求 查询带有经纬度数据的list列表,将其转为geojson格式给前端。 2.GeoJson格式说明 GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON)的地理空间信息数据交换格式。GeoJSON对…

3D透视图模型转模型变形?---模大狮模型网

3D建模是数字艺术和设计领域中的重要技术,它可以为我们带来丰富多彩的视觉体验和创意表达。在本文中,我们将探讨一个引人注目的话题:3D透视图中模型转换是否会导致变形?通过深入探讨这个问题,我们希望能够帮助您更好地理解在3D建…

131. 面试中关于架构设计都需要了解哪些内容?

文章目录 一、社区系统架构组件概览1. 系统拆分2. CDN、Nginx静态缓存、JVM本地缓存3. Redis缓存4. MQ5. 分库分表6. 读写分离7. ElasticSearch 二、商城系统-亿级商品如何存储三、对账系统-分布式事务一致性四、统计系统-海量计数六、系统设计 - 微软1、需求收集2、顶层设计3、…

Zoho CRM怎么样?云衔科技为企业提供采购优惠!

企业对于客户关系管理(CRM)系统的需求日益增加,Zoho CRM作为一款备受赞誉的国际CRM服务提供商,凭借其全面的功能、出色的用户体验和卓越的性价比,成为了众多企业数字化转型的得力助手。 Zoho CRM是一款覆盖客户全生命…

【webrtc】m98:Call的创建及Call对音频接收处理

call中多個流共享相同的辅助组件 这几个是与外部共用的 线程传输send控制module 线程任务队列工厂call的辅助组件中各种统计以及接收测的cc是自己创建的 call自己的多个辅助组件是外部传递来的 call 创建多个接收流 这里用一个set 来保存所有指针,并没有要map的意思:

2024年贵州特岗教师招聘报名流程,速速查收哦!

2024年贵州特岗教师招聘报名流程,速速查收哦!

Thingsboard规则链:Alarm Status Filter节点详解

在物联网(IoT)平台的世界里,数据处理与自动化响应是核心功能之一。作为其中的佼佼者,Thingsboard提供了一套强大的规则引擎系统,允许用户基于设备上报的数据构建复杂的自动化逻辑。在这套规则引擎中,Alarm Status Filter节点扮演了…

RedisTemplateAPI:List

文章目录 ⛄介绍⛄List的常见命令有⛄RedisTemplate API❄️❄️添加缓存❄️❄️将List放入缓存❄️❄️设置过期时间(单独设置)❄️❄️获取List缓存全部内容(起始索引,结束索引)❄️❄️从左或从右弹出一个元素❄️❄️根据索引查询元素❄…

AI巨头争相与Reddit合作:为何一个古老的论坛成为AI训练的“宝藏”?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

RDDM论文阅读笔记

CVPR2024的残差去噪模型。把diffusion 模型的加噪过程分解为残差diffusion和noise diffusion,其中残差diffusion模拟从target image到degraded image的过程,而noise diffusion则是原来的diffusion过程,即从图片到高斯噪声的加噪过程。前者可以…

Error:(6, 43) java: 程序包org.springframework.data.redis.core不存在

目录 一、在做SpringBoot整合Redis的项目时,报错: 二、尝试 三、解决办法 一、在做SpringBoot整合Redis的项目时,报错: 二、尝试 给依赖加版本号,并且把版本换了个遍,也不行,也去update过ma…

hls.js实现分片播放视频

前言&#xff1a;hls.js官网&#xff1a;hls.js - npm 一、demo——在HTML中使用 <audio id"audio" controls></audio><script src"https://cdn.jsdelivr.net/npm/hls.jslatest"></script> <script>document.addEventList…

华为鸿蒙认证培训 | 讯方技术成为首批鸿蒙原生应用开发及培训服务商

5月20日&#xff0c;鸿蒙原生应用合作交流推介会-深圳站在深圳中洲万豪酒店隆重举行。讯方技术作为鸿蒙钻石服务商受邀参与此次活动&#xff0c;活动由讯方技术总裁刘国锋、执行副总裁刘铭皓、教学资源部部长张俊豪共同出席。 本次活动由深圳政府指导&#xff0c;鸿蒙生态官方…

AI边缘计算高效赋能,打造智慧社区安防管理解决方案

一、背景需求分析 随着信息技术的飞速发展&#xff0c;智慧社区建设已成为提升社区治理和服务水平的重要方向。通过深度整合大数据、云计算和人工智能等前沿技术&#xff0c;致力于构建信息化、智能化的新型社区治理体系。根据《关于深入推进智慧社区建设的意见》的指引&#…

泰克TBS2204B示波器如何设置存储时间?

示波器是电子测量领域中不可或缺的重要仪器之一。泰克公司生产的TBS2204B数字示波器是一款广受欢迎的中端市场产品&#xff0c;其中存储时间设置是用户需要掌握的关键操作之一。 TBS2204B示波器的存储时间设置涉及以下几个方面&#xff1a; 1. 存储时间基准 存储时间基准决定…