36. ClustrixDB 使用ClustrixDB加密连接

时间:2022-01-21 03:23:28

 

ClustrixDB使用sha256_password插件支持SSL和身份验证。

一些安全规则要求对存储在数据库中的用户密码进行更强的保护。与默认的mysql_native_password插件相比,sha256_password插件提供了在ClustrixDB中存储用户密码凭证的更安全的方法。当用户帐户配置为使用sha256_password插件时,该用户必须始终使用受SSL保护的连接进行连接。

下面的说明提供了配置ClustrixDB用于SSL加密连接的步骤,还配置ClustrixDB用户帐户使用SHA256密码安全性和SSL加密连接。要使用此功能,请使用下面的说明来生成证书和密钥,将它们复制到所有节点,配置数据库和用户以在适用时使用SSL(需要mysql客户机5.6.38或更高)。

 

 

一、用于SSL加密连接的ClustrixDB配置

配置ClustrixDB使用加密连接:

创建密钥和证书(使用您选择的方法),并将它们作为根用户复制到每个节点:

shell> scp server-cert.pem [email protected]:/data/clustrix
shell> scp server-key.pem [email protected]:/data/clustrix        

在每个节点上,将这些文件的所有权转移给clxd用户:

shell> sudo chown clxd server-*.pem   

证书和密钥必须位于每个节点上的相同位置。

 配置ClustrixDB以使用这些证书、密钥和SSL:

sql> SET GLOBAL ssl_cert = /data/clustrix/server-cert.pem; 
sql> SET GLOBAL ssl_key = /data/clustrix/server-key.pem;
sql> ALTER CLUSTER RELOAD SSL;
sql> SET GLOBAL ssl_enabled = TRUE;

ALTER CLUSTER RELOAD SSL验证证书和密钥的位置。如果这个命令失败,clustrix.log可能包含更多的细节。

 

二、使用加密连接从客户端连接

MySQL客户端版本必须是5.6.38、5.7或更高版本。

 如果你使用的是mysql 5.6.38客户端,你必须指定密码类型:

shell> mysql --ssl-cipher=AES256-SHA -u username -h hostname -p

如果你使用的是mysql 5.7客户端,不需要特殊的选项:

shell> mysql username -h hostname  -p    

s的输出会显示是否启用了TLS:

sql> s

并在输出中显示使用的加密类型:

Cipher in use is AES256-SHA

这个查询将显示所有会话使用的加密类型:

sql> select * from system.sessions;

 

三、设置用户

默认情况下,密码使用mysql_native_password。要更改现有用户的密码以使用sha256加密:

sql> ALTER USER [email protected]% IDENTIFIED WITH sha256_password BY foo;

 

要设置回使用mysql本机密码:

sql> ALTER USER seymour@’%’ IDENTIFIED WITH mysql_native_password by foo;

使用sha256_password身份验证创建新用户:

sql> CREATE USER seymour2@% IDENTIFIED WITH sha256_password BY foo;

使用SHA256加密密码的用户必须使用加密连接连接到ClustrixDB。如果安全连接不可用,用户将遇到错误并无法连接。

 

关于使用SHA2的注意事项

  • 证书和密钥必须存在于所有节点上,并由clxd用户拥有
  • ClustrixDB不支持配置mysql_native_password之外的默认身份验证插件
  • ClustrixDB不支持RSA密码加密
  • 使用加密连接会带来性能开销