RH236GlusterFS-数据传输加密(理论)

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: RH236GlusterFS-数据传输加密(理论)

RH236GlusterFS-数据传输加密(理论)

RHCSA专栏:戏说 RHCSA 认证

RHCE专栏:戏说 RHCE 认证

此文章(第十五章 GlusterFS-数据传输加密(理论))收录在RHCA专栏:RHCA 回忆录


在数据传输过程中,将数据进行加密,防止非授权用户的访问

通过TLS/SSL来实现

在gluster中,主要有两个地方需要加密:

  1. I/O加密,客户端---->server

  2. 管理加密,在一个信任的存储池内,各个节点gusterd进程之间也要连接,所以也要加密


TLS/SSL加密

CA中心

1.server创建自己的密钥对(公钥+私钥),并且使用自己的私钥生成证书申请文件,生成证书申请的时候,还会把自己的公钥也放进去

2.将生成的证书申请文件,发送到CA中心进行签名

3.CA中心,有自己的密钥对和自签名证书,自签名证书里包含了CA中心的公钥,使用自己的私钥,对收到的证书申请进行签名,并回传给server


验证过程

1.客户端发送访问请求到server

2.server将经过CA中心签过名的证书发送给客户端

3.客户端收到这个证书,首先要对这个证书进行验证,因为这个证书是用CA中心的私钥创建的,所以需要用CA中心的公钥进行验证,而CA中心的公钥就在CA中心的自签名证书里,也就是说客户端需要有CA中心的自签名证书

4.如果验证成功,也就说明server是受信任的

5.同理,server端也可以验证客户端


加密过程

加密分对称加密和非对称加密

非对称加密:更加安全,相对于对称加密来说,加解密过程非常慢

对称加密:密码容易泄漏,但加解密速度快

所以,我们可以先通过非对称加密来传输对称加密的密码,然后使用对称加密来进行数据的加解密。

1.客户端生成一个随机密码,使用server的公钥加密,并传递给server

2.server使用自己的私钥解密,得到这个密码

3.随后,双方就使用这个密码进行对称加解密


创建CA中心

让自己成为CA中心,这个配置大概在172行

# vim /etc/pki/tls/openssl.cnf 
basicConstraints=CA:TRUE
# /etc/pki/tls/misc/CA -newca 

配置一个新的CA中心,命令执行后会有一个交互,交互过程中输入国家(C)、省名(ST)、城市名、组织名(O)、团队名(OU)、common name(一般为域名,CN)、邮箱(emailAddress),文件名直接回车就好,保护私钥密码可不输,直接回车。交互后的信息可以在/etc/pki/CA/index.txt中查看,此信息可以用在申请证书申请文件上,使填写的信息除了common name之外,与CA证书的自签名信息一致,防止中途填错信息导致证书申请文件生成错误。

生成的CA根证书
# ls /etc/pki/CA/cacert.pem 
生成的CA私钥
# ls /etc/pki/CA/private/cakey.pem 

证书和密钥

在所有节点和客户端(此处以node1为例)

生成node1的RSA私钥
# openssl genrsa -out /etc/ssl/glusterfs.key 2048 
#注意,密钥文件名字必须叫glusterfs.key

创建证书申请文件
# openssl req -new -sha256 -key /etc/ssl/glusterfs.key \ 
-out /etc/ssl/node1.csr \ 
-subj '/C=CN/ST=GD/O=togogo/OU=rhca/CN=client/emailAddress=admin@togogo.com'

将申请文件传到CA中心:
# scp /etc/ssl/node1.csr root@desktop:/root 

到CA中心

将申请文件传到CA中心,生成被CA签名过的证书:
# openssl ca -keyfile /etc/pki/CA/private/cakey.pem \ 
-cert /etc/pki/CA/cacert.pem \ 
-in /root/node1.csr \ 
-out /root/pem/node1.pem 
注意,如果想为某一个主机重新生成证书,COMMON NAME一样,默认是不允许的,除非:
# vim /etc/pki/tls/openssl.cnf 
unique_subject = no 
或是在此文件删除对应条目:
# vim /etc/pki/CA/index.txt 

否则会出现如下报错

Sign the certificate? [y/n]:y
failed to update database
TXT_DB error number 2
unable to write 'random state'
造成原因如下:
This thing happens when certificates share common data. You cannot have two 
certificates that look otherwise the same.

1. 修改demoCA下 index.txt.attr
将
unique_subject = yes
改完
unique_subject = no

2. 删除index.txt,然后重新创建一个同名空白文件
# rm index.txt
# touch index.txt 
将签过名的证书传给server和client
# scp /etc/pki/CA/newcerts/[签过名的私钥证书].pem root@node1:/etc/ssl/glusterfs.pem 
(这个其实是 -out 制定路径的证书)
目录下应该有两个.pem文件,一个是刚生成的证书,一个CA自签名的证书,可以cat看一下内容确认,(OpenSSL Generated Certificate)自签名证书需要进行下面的操作:

注意:证书名称必须叫glusterfs.pem


将CA中心的自签名证书传给server和client,一般为/etc/pki/CA/index.txt的第一条:
# scp /etc/pki/CA/newcerts/[CA中心的自签名证书].pem root@node1:/etc/ssl/glusterfs.ca 
(其实就是一开始时,CA中心生成在 /etc/pki/CA/cacert.pem 的证书)

注意:证书名称必须叫glusterfs.ca

注:需要为所有节点创建证书,包括客户端,因为服务端也要验证客户端


配置加密

配置加密分为配置管理加密和配置I/O加密:

配置管理加密

在所有节点
# touch /var/lib/glusterd/secure-access 
创建这个文件,表示启用服务器之间,及客户端和服务器之间使用加密,需要在所有节点和客户端都有
# systemctl restart glusterd 
注意,以上步骤要在所有节点完成

配置I/O加密

先停止volume
# gluster volume stop vol1 
设置vol1这个volume允许其它server和客户端,通过ssl验证
# gluster volume set vol1 auth.ssl-allow 'node1,node2,node3,node4,desktop' 
注意,后面要写证书里面的common name
设置存储卷开启加密
# gluster volume set vol1 client.ssl on 
# gluster volume set vol1 server.ssl on 

启动卷:
# gluster volume start vol1 
配置使用DH算法,实现对称密钥的交换
# openssl dhparam -out /etc/ssl/dhparam.pem 2048 
在所有server节点执行,文档没这步,如果不做,后面客户端可能挂载不上,如果挂载不上,可查看日志:tail /var/log/glusterfs/mnt-vol1.log

配置客户端

设置开启管理加密:
# touch /var/lib/glusterd/secure-access 
拷贝CA证书及加密私有证书到客户端:
# scp /etc/pki/CA/newcerts/***.pem root@desktop:/etc/ssl/glusterfs.ca 
# scp /etc/pki/CA/newcerts/***.pem root@desktop:/etc/ssl/glusterfs.pem 
配置DH算法:
# openssl dhparam -out /etc/ssl/dhparam.pem 2048 
挂在卷测试:
# mount -t glusterfs node1:/vol1 /mnt/vol1

总结

以上就是【金鱼哥】对Gluster数据传输加密的分享 。希望能对看到此文章的小伙伴有所帮助。

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
1月前
|
安全 中间件 网络安全
中间件数据传输加密模式
中间件数据传输加密模式包括SSL/TLS用于网络通信安全,消息级加密(如AES、RSA)确保消息内容安全,端到端加密保证全程加密,数字签名验证数据完整性和真实来源,以及身份验证和授权控制访问。使用安全中间件,正确配置及管理安全设置也是关键。选择加密技术需依据应用场景、安全需求和性能考虑。
40 4
|
1月前
|
算法 安全 中间件
中间件数据传输加密算法选择
选择中间件数据传输的加密算法需考虑安全性、性能、兼容性和成本。常用算法包括:对称加密的AES和DES,非对称的RSA和ECC,以及哈希算法SHA-256和MD5。AES和ECC提供高效安全的加密,RSA适合密钥交换,SHA-256用于数据完整性验证。DES和MD5安全性较低,应谨慎使用。综合考虑各种因素,并结合其他安全措施构建全面的安全体系。
49 3
|
3天前
|
存储 安全 算法
Java中的加密与解密:实现安全的数据传输
Java中的加密与解密:实现安全的数据传输
|
1月前
|
监控 算法 安全
中间件数据传输数据加密
中间件数据传输加密涉及对称与非对称算法、混合加密、流与块加密模式、密钥管理、SSL/TLS协议、端到端加密、加密级别、合规性及监控审计。确保数据机密性与安全性需综合考虑多方面因素,并遵循相关法规标准。
30 1
|
10月前
|
算法 数据安全/隐私保护
国家专用加密数据传输之rsa,3des加密方法
国家专用加密数据传输之rsa,3des加密方法
88 0
|
1月前
|
SQL 分布式计算 监控
在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
【2月更文挑战第32天】在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
27 6
|
1月前
|
存储 SQL NoSQL
数据传输DTS同步问题之同步失败如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
1月前
|
Cloud Native NoSQL 关系型数据库
数据传输DTS校验问题之校验报错如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
1月前
DTS数据传输延迟可能有多种原因
【1月更文挑战第16天】【1月更文挑战第79篇】DTS数据传输延迟可能有多种原因
86 2
|
1月前
|
NoSQL Redis 数据库
数据传输DTS中金融云跨账号同步Redis,增量校验报错了
【1月更文挑战第16天】【1月更文挑战第80篇】数据传输DTS中金融云跨账号同步Redis,增量校验报错了
75 1

热门文章

最新文章