MySQL系列之远程管理(安全)

导览

  • 前言
  • Q:如何保障远程登录安全
  • 一、远程登录的主要方式
    • 1. 用户名/口令
    • 2. SSH
    • 3. SSL/TLS
  • 二、使用TLS协议加密连接
    • 1. 服务端
    • 2. 客户端
  • 结语
  • 精彩回放

前言

在我们的学习或工作过程中,作为开发、测试或运维人员,经常会通过各类客户端软件,远程登录MySQL数据库。作为DBA可能需要考虑这里容易出现的“纰漏”。比如在上篇文章(快捷入口)中,如果我们未设置保持登录的有效期,那么黑客可能会利用这个漏洞,进行数据窃听。

在这里插入图片描述

当然我们能想到的,在MySQL自身迭代的过程中,自然也会涉及。今天博主开始讲讲MySQL是如何做远程登录安全吧。

Q:如何保障远程登录安全

提示:本文示例均已MySQL5.7为例。

一、远程登录的主要方式

首先来看看MySQL支持哪些登录类型:

1. 用户名/口令

这是远程登录最常用的方式,只要提供主机、用户、密码即可,如下图所示:
在这里插入图片描述

提示:使用简单,但不安全。

2. SSH

通过SSH协议(Secure Shell)建立一个安全的加密通道,以Shell命令的方式访问远程数据库。此时数据库服务需要开通相关权限。
在这里插入图片描述

3. SSL/TLS

通过SSL协议登录数据库,实现安全访问。
在这里插入图片描述

二、使用TLS协议加密连接

本文主要介绍通过TLS协议加密远程连接。各位先试想一下,如未实现传输加密,结果会怎么样?

MySQL支持使用TLS(传输层安全)协议在客户端和服务器之间进行加密。TLS使用加密算法来确保通过公共网络接收到的数据是可信的。因此为实现加密,我们通常需要围绕以下几方面完成相关配置。

1. 服务端

在服务端,--ssl选项指定服务器允许但不需要加密连接。默认情况下启用此选项,因此不需要显式指定。如果需要客户端使用加密连接,必须在服务端启用变量:require_secure_transport
my.cnf文件中,进行如下定义:

[mysqld]
require_secure_transport=ON

在此基础上,指定以下配套变量:

[mysqld]
ssl_ca=CA证书公钥文件
ssl_cert=MySQL服务证书公钥文件
ssl_key=MySQL服务证书私钥文件

2. 客户端

默认情况下,如果服务器支持加密连接,MySQL客户端程序会尝试建立加密连接,并通过--ssl不同的模式加以控制:

  • –ssl mode=PREFERRED
    在没有–ssl模式选项的情况下,客户端会尝试使用加密进行连接,如果无法建立加密连接,则会退回到未加密的连接。这也是显式–ssl mode=PREFERRED选项的行为。
  • –ssl mode=REQUIRED
    客户端需要加密连接,如果无法建立连接,则会失败。
  • –ssl mode=DISABLED
    客户端使用未加密的连接。
  • –ssl mode=VERIFY_CA或VERIFY_IDENTITY
    客户端需要加密连接,还需要对服务器CA证书进行验证,并(使用VERIFY_IENTITY)对其证书中的服务器主机名进行验证。

提示
如果选择默认设置–ssl mode为PREFERRED时,将生成加密连接。但是,客户端验证服务器的身份非常重要,因此设置–ssl mode为VERIFY_CAVERIFY_IDENTITY是比默认选项更好的选择,它可以帮助防止复杂的中间人攻击。VERIFY_CA使客户端检查服务器的证书是否有效。VERIFY_IDENTITY使客户端检查服务器的证书是否有效,并使客户端检查客户端使用的主机名是否与服务器证书匹配。如满足该安全要求,你必须先确保服务器的CA证书对当前环境中使用它的所有客户端都是可靠的,否则将导致可用性问题。

客户端的以下选项(或连接参数)标识了客户端在与服务器建立加密连接时使用的证书和密钥文件。它们类似于服务器端使用的ssl_ca、ssl_cert和ssl_key系统变量,但–ssl-cert和–ssl-key标识客户端公钥和私钥:

--ssl-ca:CA证书公钥文件,必须与服务端CA证书一致
--ssl-cert:客户端证书公钥文件
--ssl-key:客户端证书私钥文件

为了提高安全性,客户端可以提供与服务端CA证书的相同CA证书,并启用主机名身份验证。通过这种方式,服务器和客户端将信任放在同一个CA证书上。客户端验证其连接的主机是否是预期的主机:
要指定CA证书,请使用–ssl-CA(或–ssl-capath),并指定–ssl-mode=VERIFY_CA。
要同时启用主机名身份验证,请使用–ssl mode=VERIFY_identity,而不是–ssl mode=VERIFY_CA。

如果要确定与服务器的当前连接是否使用加密,请检查ssl_cipher状态变量值:

SHOW SESSION STATUS LIKE 'ssl_cipher';

在这里插入图片描述
如果该值为空,则连接未加密。否则,连接将被加密,该值表示加密密码。

结语

本文参考MySQL官方文章介绍了MySQL如何实现远程连接的安全性,包括一般配置建议。如对安全有更改的要求,可参考本文加以实践,欢迎关注。

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~


精彩回放


MySQL系列之身份鉴别(安全)
MySQL系列之数据授权(privilege)
MySQL系列之如何在Linux只安装客户端
MySQL系列之如何正确的使用窗口函数(基于8.0版本)
MySQL系列之数据导入导出
MySQL系列之索引入门(上)
MySQL系列之索引入门(下)


在这里插入图片描述

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

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

相关文章

扫振牙刷设计思路以及技术解析

市面上目前常见的就两种:扫振牙刷和超声波牙刷 为了防水,表面还涂上了一层防水漆 一开始的电池管理芯片,可以让充电更加均衡。 如TP4056 第一阶段以恒流充电;当电压达到预定值时转入第二阶段进行恒压充电,此时电流逐…

Hot100 - 除自身以外数组的乘积

Hot100 - 除自身以外数组的乘积 最佳思路: 此问题的关键在于通过两次遍历,分别计算从左侧和右侧开始的累积乘积,以此避免使用额外的除法操作。 时间复杂度: 该算法的时间复杂度为 O(n),因为我们只需要遍历数组两次。…

一个vue项目如何运行在docker

将 Vue.js 应用程序通过 Docker 发布是一个非常常见的做法,它可以帮助你轻松地部署应用到不同的环境中。下面是一个简单的指南,介绍如何为 Vue.js 项目创建 Dockerfile 并进行构建和运行。 第一步:安装 Docker 确保你的开发机器上已经安装了…

【公益接口】不定时新增接口,仅供学习

文章日期:2024.11.24 使用工具:Python 文章类型:公益接口 文章全程已做去敏处理!!! 【需要做的可联系我】 AES解密处理(直接解密即可)(crypto-js.js 标准算法&#xff…

使用phpStudy小皮面板模拟后端服务器,搭建H5网站运行生产环境

一.下载安装小皮 小皮面板官网下载网址:小皮面板(phpstudy) - 让天下没有难配的服务器环境! 安装说明(特别注意) 1. 安装路径不能包含“中文”或者“空格”,否则会报错(例如错误提示:Cant cha…

DolphinDB 登陆伦敦!携手中英人工智能协会共话 AI 未来

11 月 9 日,DolphinDB 联合中英人工智能协会(CBAIA)在全球人工智能中心、今年三位诺贝尔奖得主的诞生地——伦敦盖茨比计算神经科学中心举办 AI 技术交流会。来自人工智能、量化投资等领域的 150 多位全球专家齐聚一堂,共同探讨人…

爬虫与反爬-Ja3指纹风控(Just a moment...)处理方案及参数说明

概述:本文将针对 Ja3 指纹检测风控进行处理,举例了一个案例并使用两种不同的破解方案进行突破,同时深入了解指纹间不同字符所代表的含义 指纹检测背景: 1、每一个设备、软件都有独属于自己的设备信息、版本号、加密算法、椭圆算…

数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!

文章目录 前言一、交换排序1.1 冒泡排序1.2 快速排序1.2.1 hoare版本 快排1.2.2 挖坑法 快排1.2.3 lomuto前后指针 快排 二、归并排序总结 前言 继上篇学习了排序的前面两个部分:直接插入排序和选择排序 今天我们来学习排序中常用的交换排序以及非常稳定的归并排序 快排可是有多…

华为云云连接+squid进行正向代理上网冲浪

1 概述 ‌Squid‌是一个高性能的代理缓存服务器,主要用于缓冲Internet数据。它支持多种协议,包括FTP、gopher、HTTPS和HTTP。Squid通过一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求,这使得它在处理请求时具有较高的效率‌。…

杰发科技AC7803——不同晶振频率时钟的配置

计算公式 PLL_POSDIV [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62] PLL_PREDIV_1 1 2 4 USE_XTAL 24M SYSCLK_FREQ 64M SYSCLK_DIVIDER 1 VCO USE_XTAL*…

攸信技术:运动文化激发企业活力,赋能体育行业新未来

在攸信技术,运动文化如同春日暖阳,温暖着每一位员工的心。这份文化,源自盈趣科技的深厚底蕴,橙色不仅传递着3POS文化中的激情与活力,更成为了攸信人共同的精神标识。公司的每一个角落,都洋溢着对运动的热爱…

【ubuntu24.04】GTX4700 配置安装cuda

筛选显卡驱动显卡驱动 NVIDIA-Linux-x86_64-550.135.run 而后重启:最新的是12.6 用于ubuntu24.04 ,但是我的4700的显卡驱动要求12.4 cuda

LightRAG - 更快更便宜的GraphRAG

检索增强生成(Retrieval-Augmented Generation, RAG)已经成为提升大型语言模型(LLMs)能力的重要方法之一,通过整合外部知识,显著改善了生成内容的质量和相关性。 RAG 的局限性 传统的 RAG 系统虽然表现优…

TCP/IP协议攻击与防范

一、TCP/IP协议攻击介绍 1.1 Internet的结构​ LAN:局域网 WAN:广域网 WLAN:无线局域网 私有IP地址与公有IP地址? 私有地址:A类:10.0.0.0~10.255.255.255 B类:172.16.0.0~172.31.255.255…

机器学习模型——线性回归

文章目录 前言1.基础概念2.代价函数3.单变量线性回归3.1加载数据3.2初始化超参数3.3梯度下降算法3.3.1初次梯度下降3.3.2 多次梯度下降3.3.3结果可视化 前言 随着互联网数据不断累积,硬件不断升级迭代,在这个信息爆炸的时代,机器学习已被应用…

Flink CDC 使用实践以及遇到的问题

背景 最近公司在做一些业务上的架构调整,有一部分是数据从mysql采集到Starrocks,之前的一套方法是走 debezium 到 puslar 到 starrocks,这一套下来比较需要配置很多东西,而且出现问题以后,需要修改很多配置,而且现阶段…

Pgsql:json字段查询与更新

1.查询json字段的值 SELECT attribute_data->>设施类别 mycol, * FROM gis_coord_data WHERE attribute_data->>设施类别阀门井 查询结果如下: 2.更新json字段中的某个属性值 UPDATE gis_coord_data SET attribute_data(attribute_data::jsonb ||{&quo…

DAMODEL丹摩 | 关于我部署与使用FLUX.1+ComfyUI生成了一位三只手的jk美少女这回事

DAMODEL丹摩 | 关于我部署与使用FLUX.1ComfyUI生成了一位三只手的jk美少女这回事 最终效果图FLUX.1简介部署流程1. 创建资源2. 登录实例3. 部署ComfyUI4. 部署FLUX.1 使用流程1. 运行FLUX.1 导入工作流 声明:非广告,为用户使用体验分享 最终效果图 FLUX.…

d3-contour 生成等高线图

D3.js 是一个强大的 JavaScript 库,用于创建动态、交互式数据可视化。d3-contour 是 D3.js 的一个扩展模块,用于生成等高线图(contour plots)。 属性和方法 属性 x: 一个函数,用于从数据点中提取 x 坐标。y: 一个函…

微信小程序 城市点击后跳转 并首页显示被点击城市

在微信小程序中,渲染出城市列表后,如何点击城市,就跳转回到首页,并在首页显示所点击的城市呢? 目录 一、定义点击城市的事件 二、首页的处理 首页:点击成都市会跳转到城市列表 城市列表:点击…