【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 -p

CREATE 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 -p

INSTALL 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 ]; then
  echo "[$(date +"%Y-%m-%d %H:%M:%S")] 备份成功: $BACKUP_FILE" >> $LOG_FILE
else
  echo "[$(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 -p

SHOW VARIABLES LIKE 'bind_address';

在这里插入图片描述

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

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

六、小结

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

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

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

相关文章

【吾爱出品】针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版

针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版 链接:https://pan.xunlei.com/s/VOJ8PZd4avMubnDzHQAeZDxWA1?pwdnjwm# 直接复制到游戏安装目录,保持与游戏主程序同目录下。

28 在可以控制 postgres 服务器, 不知道任何用户名的情况下怎 进入 postgres 服务器

前言 最近有这样的一个需求, 有一个 postgres 服务器 但是 不知道 他的任何的用户名密码, 但是我想要查询这台 postgres 服务器 然后 基于这个需求, 我们看一下 怎么来处理 pg_hba.conf 认证方式修改为 trust 首先将 postgres 服务器的认证方式修改为 trust 这时候 …

Mac ARM 架构的命令行(终端)中,删除整行的快捷键是:Ctrl + U

在 Mac ARM 架构的命令行(终端)中,删除整行的快捷键是: Ctrl U这个快捷键会删除光标所在位置到行首之间的所有内容。如果你想删除光标后面的所有内容,可以使用: Ctrl K这两个快捷键可以帮助你快速清除当…

编程题-最大子数组和(中等-重点【贪心、动态规划、分治思想的应用】)

题目: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 解法一(枚举法-时间复杂度超限): …

aws(学习笔记第二十八课) aws eks使用练习(hands on)

aws(学习笔记第二十八课) 使用aws eks 学习内容: 什么是aws eksaws eks的hands onaws eks的创建applicationeks和kubernetes简介 1. 使用aws eks 什么是aws eks aws eks的概念 aws eks是kubernetes在aws上包装出来 的新的方式,旨在更加方便结合aws&…

解读 Flink Source 接口重构后的 KafkaSource

前言 Apache Kafka 和 Apache Flink 的结合,为构建实时流处理应用提供了一套强大的解决方案[1]。Kafka 作为高吞吐量、低延迟的分布式消息队列,负责数据的采集、缓冲和分发;而 Flink 则是功能强大的流处理引擎,负责对数据进行实时…

deepseek多列数据对比,联想到excel的高级筛选功能

目录 1 业务背景 ​2 deepseek提示词输入 ​3 联想分析 4 EXCEL高级搜索 1 业务背景 系统上线的时候经常会遇到一个问题,系统导入的数据和线下的EXCEL数据是否一致,如果不一致,如何快速找到差异值,原来脑海第一反应就是使用公…

ubuntu20.04声音设置

step1:打开pavucontrol,设置Configuration和Output Devices, 注意需要有HDMI / DisplayPort (plugged in)这个图标。如果没有,就先选择Configuration -> Digital Stereo (HDMI 7) Output (unplugged) (unvailable),…

uniapp可视化-活动报名表单系统-代码生成器

活动报名表单系统小程序旨在为各类活动组织者提供一个便捷、高效的线上报名管理平台,同时为参与者提供简单易用的报名途径。 主要功能 活动发布:活动组织者可以发布活动的详细信息,包括活动名称、时间、地点、活动内容等。用户可以在小程序中…

DeepSeek 助力 Vue 开发:打造丝滑的无限滚动(Infinite Scroll)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

SpringBoot+shardingsphere实现按月分表功能

SpringBootshardingsphere实现按月分表功能 文章目录 前言 ShardingSphere 是一套开源的分布式数据库中间件解决方案,旨在简化数据库分片、读写分离、分布式事务等复杂场景的管理。它由 Apache 软件基金会支持,广泛应用于需要处理大规模数据的系统中 一…

大模型训练为什么依赖GPU

近年来,随着人工智能技术的飞速发展,特别是深度学习领域的进步,大模型的训练逐渐成为研究和工业界的热点。作为大模型训练中的核心硬件,GPU(图形处理单元)扮演了至关重要的角色。那么,为什么大模…

SQL布尔盲注+时间盲注

1.布尔盲注 双重for循环 import requestsurl http://127.0.0.1/sqli-labs-master/Less-8/index.phpdef database_name():datebasename for i in range(1, 9): # 假设数据库名称最多8个字符for j in range(32, 128): # ascii 可见字符范围从32到127payload f"?id1 A…

收银系统源码开发指南:PHP + Flutter + Uniapp 全栈方案

收银系统一般涵盖了收银POS端、线上商城端和管理端,技术栈涉及PHP、Flutter和Uniapp。为了确保系统的稳定运行和持续发展,在开发和运营过程中需要重点关注以下几个方面: 一、系统架构与性能优化 模块化设计: 将系统拆分为独立的模块&#xf…

springCloud-2021.0.9 之 GateWay 示例

文章目录 前言springCloud-2021.0.9 之 GateWay 示例1. GateWay 官网2. GateWay 三个关键名称3. GateWay 工作原理的高级概述4. 示例4.1. POM4.2. 启动类4.3. 过滤器4.4. 配置 5. 启动/测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收…

Vue.js 在低代码开发平台中的应用与优化

Vue.js 在低代码开发平台中的应用与优化 在数字化转型的进程中,低代码开发平台成为了企业快速构建应用的得力助手。而 Vue.js 作为一款广受欢迎的前端框架,在低代码开发平台中发挥着举足轻重的作用。它不仅提升了开发效率,还优化了应用的用户…

大模型Deepseek的使用_基于阿里云百炼和Chatbox

目录 前言1. 云服务商2. ChatBox参考 前言 上篇博文中探索了(本地)部署大语言模型,适合微调、数据高隐私性等场景。随着Deepseek-R1的发布,大语言模型的可及性得到极大提升,应用场景不断增加,对高可用的方…

Android设备 网络安全检测

八、网络与安全机制 6.1 网络框架对比 volley: 功能 基于HttpUrlConnection;封装了UIL图片加载框架,支持图片加载;网络请求的排序、优先级处理缓存;多级别取消请求;Activity和生命周期的联动(Activity结束生命周期同时取消所有网络请求 …

[免费]SpringBoot公益众筹爱心捐赠系统【论文+源码+SQL脚本】

大家好,我是老师,看到一个不错的SpringBoot公益众筹爱心捐赠系统,分享下哈。 项目介绍 公益捐助平台的发展背景可以追溯到几十年前,当时人们已经开始通过各种渠道进行公益捐助。随着互联网的普及,本文旨在探讨公益事业…

zyNo.23

SQL注入漏洞 1.SQL语句基础知识 一个数据库由多个表空间组成,sql注入关系到关系型数据库,常见的关系型数据库有MySQL,Postgres,SQLServer,Oracle等 以Mysql为例,输入 mysql-u用户名-p密码 即可登录到MySQL交互式命令行界面。 既然是…