【MySql】应用系统等保测评MySQL服务器相关策略设置以及最终验证,MySQL安全策略设置以及最终验证

文章目录

    • 一、概要
    • 二、环境及实现
    • 三、前期准备
    • 四、操作步骤
      • 1、所有的数据库需要设置三权账户:系统管理员、网络管理员和安全管理员
        • 创建系统管理员账户:
        • 创建网络管理员账户:
        • 创建安全管理员账户:
      • 2、所有数据库密码的负责度策略需要启用,如:密码为8位以上,由大小写字母、数字和特殊字符组成;90天定期更换
        • 方式1:修改配置文件(推荐)
        • 方式2:通过MySQL脚本实现
      • 3、所有数据库登录失败处理需要启用,如:登录失败5次,锁定10分钟,登录超时10分钟,自动退出
        • 方式1:修改配置文件(推荐)
        • 方式2:通过MySQL脚本实现
      • 4、所有数据库需要关闭远程登录管理,需要通过服务器进入
      • 5、所有数据库的配置数据,必须要进行定期本地备份
        • 备份命令
        • 给脚本添加执行权限
        • 设置定时任务
    • 五、最终验证
      • 1、验证三权账号
      • 2、验证密码度策略
      • 3、验证登录失败处理
      • 4、验证数据库关闭远程登录
      • 5、验证数据库定期本地备份
    • 六、小结

一、概要

各应用系统上线后基本都需要做等保测评,接下来将针对MySQL数据库所要求的各安全策略进行设置,如:

  • 所有的数据库需要设置三权账户:系统管理员、网络管理员和安全管理员
  • 所有数据库密码的负责度策略需要启用,如:密码为8位以上,由大小写字母、数字和特殊字符组成;90天定期更换
  • 所有数据库登录失败处理需要启用,如:登录失败5次,锁定10分钟,登录超时10分钟,自动退出
  • 所有数据库需要关闭远程登录管理,需要通过服务器进入
  • 所有数据库的配置数据,必须要进行定期本地备份

二、环境及实现

  • 系统:Linux
  • 软件:MySQL
  • 实现:my.cnf配置文件、MySQL脚本等

三、前期准备

  • 登录系统
    如果登录时不是root账号,需要切换到root账号,输入命令 su - root,回车后输入密码即可
  • 进入MySQL
    执行命令 mysql -uroot -p,回车后输入密码即可
    在这里插入图片描述

四、操作步骤

1、所有的数据库需要设置三权账户:系统管理员、网络管理员和安全管理员

创建系统管理员账户:
mysql -u root -pCREATE USER 'sys_admin'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'sys_admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
创建网络管理员账户:
mysql -u root -p
CREATE USER 'net_admin'@'localhost' IDENTIFIED BY '123456';
GRANT SELECT, SHOW DATABASES, PROCESS ON *.* TO 'net_admin'@'localhost';
FLUSH PRIVILEGES;
创建安全管理员账户:
mysql -u root -p
CREATE USER 'sec_admin'@'localhost' IDENTIFIED BY '123456';
GRANT SELECT, SHOW DATABASES, FILE ON *.* TO 'sec_admin'@'localhost';
FLUSH PRIVILEGES;

如果提示如下错误信息,按照如下命令执行即可

ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement

在这里插入图片描述

SHOW VARIABLES LIKE 'read_only';
SET GLOBAL super_read_only = OFF;
-- 执行完成后,再修改为ON即可
SET GLOBAL super_read_only = ON;

2、所有数据库密码的负责度策略需要启用,如:密码为8位以上,由大小写字母、数字和特殊字符组成;90天定期更换

方式1:修改配置文件(推荐)

将以下配置添加到/etc/my.cnf/etc/mysql/my.cnf[mysqld]部分

[mysqld]
plugin-load-add = validate_password.so
validate-password-policy=2
validate-password-length=8
validate-password-mixed-case-count=1
validate-password-number-count=1
validate-password-special-char-count=1
# 设置密码过期时间为 90 天
default_password_lifetime = 90

然后重启MySQL服务
systemctl restart mysqld

方式2:通过MySQL脚本实现

启用validate_password插件

mysql -u root -pINSTALL PLUGIN validate_password SONAME 'validate_password.so';

配置密码策略

SET GLOBAL validate_password.policy = 2; -- 0=Low, 1=Medium, 2=High
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.special_char_count = 1; -- 至少包含一个特殊字符
-- 设置密码过期时间为 90 天
SET GLOBAL default_password_lifetime = 90;

3、所有数据库登录失败处理需要启用,如:登录失败5次,锁定10分钟,登录超时10分钟,自动退出

方式1:修改配置文件(推荐)

将以下配置添加到/etc/my.cnf/etc/mysql/my.cnf[mysqld]部分

[mysqld]
max_connect_errors = 5
interactive_timeout = 600
wait_timeout = 600

然后重启MySQL服务
systemctl restart mysqld

方式2:通过MySQL脚本实现
mysql -u root -p
-- 设置最大连接错误次数
SET GLOBAL max_connect_errors = 5;-- 设置超时
SET GLOBAL interactive_timeout = 600;  -- 10分钟后自动断开
SET GLOBAL wait_timeout = 600;  -- 设置客户端连接超时

4、所有数据库需要关闭远程登录管理,需要通过服务器进入

编辑MySQL的配置文件/etc/my.cnf/etc/mysql/my.cnf,在[mysqld]部分添加以下内容:

[mysqld]
bind-address = 127.0.0.1

重启MySQL服务

sudo systemctl restart mysqld

配置后,MySQL将仅允许来自本地机器的连接

5、所有数据库的配置数据,必须要进行定期本地备份

备份命令

使用mysqldump进行数据库备份,可以创建一个定期备份的脚本
创建一个备份脚本/usr/local/bin/mysql_backup.sh

#
DB_HOST="192.168.0.1"
DB_USER="root"
DB_PASS="123456"
DB_NAME="myblog"# 备份文件保存位置
BACKUP_DIR="/disk/backup"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_backup_$DATE.sql"# 日志文件
LOG_FILE="$BACKUP_DIR/backup.log"# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR# 进行数据库备份
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE# 检查备份是否成功
if [ $? -eq 0 ]; thenecho "[$(date +"%Y-%m-%d %H:%M:%S")] 备份成功: $BACKUP_FILE" >> $LOG_FILE
elseecho "[$(date +"%Y-%m-%d %H:%M:%S")] 备份失败" >> $LOG_FILE
fi# 删除超过7天的备份文件
find $BACKUP_DIR -type f -name "*.sql" -mtime +3 -exec rm {} \;# 打印日志文件
cat $LOG_FILE
给脚本添加执行权限

chmod +x /usr/local/bin/mysql_backup.sh

设置定时任务

使用cron设置定期备份任务,执行命令 crontab -e
然后添加以下行,如每天凌晨2点进行备份
0 2 * * * /usr/local/bin/mysql_backup.sh

通过命令crontab -l 查看是否生效
在这里插入图片描述

五、最终验证

1、验证三权账号

mysql -u root -p-- 查看系统管理员账户权限
SHOW GRANTS FOR 'sys_admin'@'localhost';-- 查看网络管理员账户权限
SHOW GRANTS FOR 'net_admin'@'localhost';-- 查看安全管理员账户权限
SHOW GRANTS FOR 'sec_admin'@'localhost';

在这里插入图片描述

2、验证密码度策略

-- 查看密码策略设置 
SHOW VARIABLES LIKE 'validate_password%';
-- 检查密码过期策略
SHOW VARIABLES LIKE 'default_password_lifetime';

在这里插入图片描述

3、验证登录失败处理

-- 查看`max_connect_errors`配置SHOW VARIABLES LIKE 'max_connect_errors';-- 查看`interactive_timeout`和`wait_timeout`配置SHOW VARIABLES LIKE 'interactive_timeout';SHOW VARIABLES LIKE 'wait_timeout';

在这里插入图片描述

4、验证数据库关闭远程登录

mysql -u root -pSHOW VARIABLES LIKE 'bind_address';

在这里插入图片描述

5、验证数据库定期本地备份

crontab -l
在这里插入图片描述

六、小结

至此,有关MySQL的等保测评所需要的策略就设置完成了,如有错漏请指出,下次再见

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bootplus管理系统 file/download 任意文件下载漏洞

bootplus管理系统 file/download 任意文件下载漏洞 漏洞描述 bootplus是基于SpringBoot + Shiro + MyBatisPlus的,拥有接口管理,权限管理,监控组件等功能的一体化权限管理框架。该项目中的file/download接口存在任意文件下载漏洞, 攻击者可以通过该漏洞下载查看目标系统的…

《open3d qt 网格采样成点云》

open3d qt 网格采样成点云 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionMeshUniformSample_triggered();//均匀采样 void MainWindow::

部署 DeepSeek R1各个版本所需硬件配置清单

DeepSeek-R1 通过其卓越的推理性能和灵活的训练机制,在 2025 年的春节期间受到了广泛关注。 DeepSeek-R1 是一款高性能的 AI 推理模型,主要通过强化学习技术来增强模型在复杂任务场景下的推理能力。 在本地部署 DeepSeek-R1 时,尤其是完整的…

hive高频写入小数据,导致hdfs小文件过多,出现查询效率很低的情况

问题描述 hive高频写入小数据,导致hdfs小文件过多,出现查询效率很低的情况分析过程 先复现现象 select count() from ads.ads_sdd_flow_managemlt_to_ids_mm;–15分钟,小文件10983 select max(mm) from ads.ads_sdd_flow_managemlt_to_ids…

git用法(简易版)

介绍 git是一个版本管理工具 使用方法 建立仓库 第一步 git init:初始化仓库 第二步 git add .:将代码添加到暂存区 第三步 git commit -m "first":为修改添加备注 第四步 git remote add origin 你的url 第五步 git pus…

顺序表SeqList(c语言)(动态顺序表)

前言: 顺序表是一种数据结构,是内存中存储数据的一种方式,他的内存连续性使得它有较高的缓存利用率,它在内存中广泛使用,比如数组,就是典型的顺序表。 实现思路: 一般是建立三个文件&#xf…

DeepSeek介绍本地部署保姆级教程

2025年春节前后,DeepSeek 如滚烫油锅中溅入的一碗水,瞬间激起千层浪,在网络世界里掀起了一场热议风暴,迅速火遍大江南北。无论是互联网行业的前沿先锋,还是传统行业的资深从业者;无论是专注于开发、测试、运…

Bash 中的运算方式

目录 概述: 1. (()) 运算符 2. let 命令 3. expr 命令 4. $[] 直接运算 5. bc(计算器,支持浮点数) 6. awk(强大的文本处理工具,也可计算) 概述: Bash 本身只支持整数运算&am…

主动视觉可能就是你所需要的:在双臂机器人操作中探索主动视觉

AV-ALOHA 系统使用用于 AV 的 VR 耳机实现直观的数据收集,并且 用于作的 VR 控制器或引线臂。这有助于捕捉全身和头部 远程作我们的真实和模拟系统的运动,记录来自 6 个的视频 不同的摄像头,并为我们的 AV 仿制学习策略提供训练数据。 加州大…

centos7 nexus3.77 搭建

1.确保安装了JDK sudo yum install -y java-17-openjdk java-17-openjdk-devel java -version 2.下载Nexus最新版 官网地址:Sonatype Nexus Repository Manager Community Edition | Download csdn下载:https://download.csdn.net/download/supercrsky/90384049 上传到nex…

html 点击弹出视频弹窗

一、效果: 点击视频按钮后,弹出弹窗 播放视频 二、代码 <div class="index_change_video" data-video-src="</

10. Hbase Compaction命令

一. 什么是Compaction 在 HBase 中&#xff0c;频繁进行数据插入、更新和删除操作会生成许多小的 HFile&#xff0c;当 HFile 数量增多时&#xff0c;会影响HBase的读写性能。此外&#xff0c;垃圾数据的存在也会增加存储需求。因此&#xff0c;定期进行 Compact操作&#xff…

DeepSeek R1打造本地化RAG知识库

本文将详细介绍如何使用Ollama、Deepseek R1大语音模型、Nomic-Embed-Text向量模型和AnythingLLM共同搭建一个本地的私有RAG知识库。 一. 准备工作 什么是RAG&#xff1f; RAG是一种结合了信息检索和大模型&#xff08;LLM&#xff09;的技术&#xff0c;在对抗大模型幻觉、…

Kafka分区管理大师指南:扩容、均衡、迁移与限流全解析

#作者&#xff1a;孙德新 文章目录 分区分配操作(kafka-reassign-partitions.sh)1.1 分区扩容、数据均衡、迁移(kafka-reassign-partitions.sh)1.2、修改topic分区partition的副本数&#xff08;扩缩容副本&#xff09;1.3、Partition Reassign场景限流1.4、节点内副本移动到不…

使用右侧值现象来处理一个word导入登记表的需求

需求也简单&#xff0c;导word文件用户登记表&#xff0c;有各部门的十几个版本&#xff08;为什么这么多&#xff1f;不知道&#xff09;。这里说下谈下我的一些代码做法&#xff1a; 需求分析&#xff1a; 如果能解决java字段和各项填的值怎么配对的问题&#xff0c;那么就…

【C语言 】C语言 桌游开发数字竞拍(源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【C语言 】C语言 桌游开发数字竞拍&#xff08;源码…

数据结构——红黑树的实现

目录 1 红黑树的概念 1.1 红黑树的规则 1.2 红黑树是如何确保最长路径不超过最短路径的2倍的&#xff1f; 1.3 红黑树的效率 2 红黑树的实现 2.1 红黑树的结构 2.2 红黑树的插入 2.2.1 红黑树插入节点的大概过程 2.2.2 情况1&#xff1a;只变色&#xff0c;不旋转 2.2.3 情况…

Spring Boot中使用Flyway进行数据库迁移

文章目录 概要Spring Boot 集成 FlywayFlyway 其他用法bug错误Flyway版本不兼容数据库存在表了Flyway 的校验和&#xff08;Checksum&#xff09;不匹配 概要 在 Spring Boot 项目开发中&#xff0c;数据库的变更不可避免。手动执行 SQL 脚本不仅容易出错&#xff0c;也难以维…

多态、虚函数、动态绑定、虚指针加虚表是同一件事情。

编译会自动加红色代码 左边拥有右边。由内而外构造、由外到内进行析构。 虚指针跟虚表。当一个类有虚函数的时候&#xff0c;对象里面就会多一个指针。从内存角度思考继承。 静态绑定。现在如果通过指针去调用虚函数&#xff0c;编译器就不会进行静态绑定&#xff0c;而做动态绑…

深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)

深入了解Text2SQL开源项目&#xff08;Chat2DB、SQL Chat 、Wren AI 、Vanna&#xff09; 前言1.Chat2DB2.SQL Chat3.Wren AI4.Vanna 前言 在数据驱动决策的时代&#xff0c;将自然语言查询转化为结构化查询语言&#xff08;SQL&#xff09;的能力变得日益重要。无论是小型创业…