openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接

这篇具有很好参考价值的文章主要介绍了openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接

100.1 背景信息

openGauss支持SSL标准协议(TLS 1.2),SSL协议是安全性更高的协议标准,它们加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。

100.2 前提条件

从CA认证中心申请到正式的服务器、客户端的证书和密钥。(假设服务器的私钥为server.key,证书为server.crt,客户端的私钥为client.key,证书为client.crt,CA根证书名称为cacert.pem。)

100.3 注意事项

  • 当用户远程连接到数据库主节点时,需要使用sha256的认证方式。
  • 当内部服务器之间连接时,需要使用trust的认证方式,支持IP白名单认证。

100.4 操作步骤

openGauss在数据库部署完成后,默认已开启SSL认证模式。服务器端证书,私钥以及根证书已经默认配置完成。用户需要配置客户端的相关参数。

配置SSL认证相关的数字证书参数,具体要求请参见表1

  • 配置客户端参数。

    已从CA认证中心申请到客户端默认证书,私钥,根证书以及私钥密码加密文件。假设证书、私钥和根证书都放在“/home/omm”目录。

    双向认证需配置如下参数:

    export PGSSLCERT="/home/omm/client.crt"
    export PGSSLKEY="/home/omm/client.key"
    export PGSSLMODE="verify-ca"
    export PGSSLROOTCERT="/home/omm/cacert.pem"
    

    单向认证需要配置如下参数:

    export PGSSLMODE="verify-ca"
    export PGSSLROOTCERT="/home/omm/cacert.pem"
    
  • 修改客户端密钥的权限。

    客户端根证书,密钥,证书以及密钥密码加密文件的权限,需保证权限为600。如果权限不满足要求,则客户端无法以SSL连接到openGauss。

    chmod 600 client.key
    chmod 600 client.crt
    chmod 600 client.key.cipher
    chmod 600 client.key.rand
    chmod 600 cacert.pem
    

openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接,openGauss学习笔记,openGauss,国产数据库,开源数据库,数据库,RDBMS须知: 从安全性考虑,建议使用双向认证方式。 配置客户端环境变量,必须包含文件的绝对路径。

表 1 认证方式

认证方式 含义 配置客户端环境变量 维护建议
双向认证(推荐) 客户端验证服务器证书的有效性,同时服务器端也要验证客户端证书的有效性,只有认证成功,连接才能建立。 设置如下环境变量:PGSSLCERTPGSSLKEYPGSSLROOTCERTPGSSLMODE 该方式应用于安全性要求较高的场景。使用此方式时,建议设置客户端的PGSSLMODE变量为verify-ca。确保了网络数据的安全性。
单向认证 客户端只验证服务器证书的有效性,而服务器端不验证客户端证书的有效性。服务器加载证书信息并发送给客户端,客户端使用根证书来验证服务器端证书的有效性。 设置如下环境变量:PGSSLROOTCERTPGSSLMODE 为防止基于TCP链接的欺骗,建议使用SSL证书认证功能。除配置客户端根证书外,建议客户端使用PGSSLMODE变量为verify-ca方式连接。

100.5 相关参考

在服务器端的postgresql.conf文件中配置相关参数,详细信息请参见表2

表 2 服务器参数

参数 描述 取值范围
ssl 表示是否启动SSL功能。 on:开启SSL功能。off:关闭SSL功能。**默认值:**off
require_ssl 设置服务器端是否强制要求SSL连接。该参数只有当参数ssl为on时才有效。 on:服务器端强制要求SSL连接。off:服务器端对是否通过SSL连接不作强制要求。**默认值:**off
ssl_cert_file 指定服务器证书文件,包含服务器端的公钥。服务器证书用以表明服务器身份的合法性,公钥将发送给对端用来对数据进行加密。 请以实际的证书名为准,其相对路径是相对于数据目录的。默认值:server.crt
ssl_key_file 指定服务器私钥文件,用以对公钥加密的数据进行解密。 请以实际的服务器私钥名称为准,其相对路径是相对于数据目录的。默认值:server.key
ssl_ca_file CA服务器的根证书。此参数可选择配置,需要验证客户端证书的合法性时才需要配置。 请以实际的CA服务器根证书名称为准。默认值:cacert.pem
ssl_crl_file 证书吊销列表,如果客户端证书在该列表中,则当前客户端证书被视为无效证书。 请以实际的证书吊销列表名称为准。默认值:空,表示没有吊销列表。
ssl_ciphers SSL通讯使用的加密算法。 本产品支持的加密算法的详细信息请参见表4。**默认值:**ALL,表示允许对端使用产品支持的所有加密算法,但不包含ADH、LOW、EXP、MD5算法。
ssl_cert_notify_time SSL服务器证书到期前提醒的天数。 请按照需求配置证书过期前提醒天数。**默认值:**90

在客户端配置SSL认证相关的环境变量,详细信息请参见表3

openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接,openGauss学习笔记,openGauss,国产数据库,开源数据库,数据库,RDBMS说明: 客户端环境变量的路径以“/home/omm”为例,在实际操作中请使用实际路径进行替换。

表 3 客户端参数

环境变量 描述 取值范围
PGSSLCERT 指定客户端证书文件,包含客户端的公钥。客户端证书用以表明客户端身份的合法性,公钥将发送给对端用来对数据进行加密。 必须包含文件的绝对路径,如:export PGSSLCERT='/home/omm/client.crt'默认值:空
PGSSLKEY 指定客户端私钥文件,用以对公钥加密的数据进行解密。 必须包含文件的绝对路径,如:export PGSSLKEY='/home/omm/client.key'默认值:空
PGSSLMODE 设置是否和服务器进行SSL连接协商,以及指定SSL连接的优先级。 **取值及含义:**disable:只尝试非SSL连接。allow:首先尝试非SSL连接,如果连接失败,再尝试SSL连接。prefer:首先尝试SSL连接,如果连接失败,将尝试非SSL连接。require:只尝试SSL连接。如果存在CA文件,则按设置成verify-ca的方式验证。verify-ca:只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书。verify-full:只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致。**默认值:**prefer
PGSSLROOTCERT 指定为客户端颁发证书的根证书文件,根证书用于验证服务器证书的有效性。 必须包含文件的绝对路径,如:export PGSSLROOTCERT='/home\/omm\/certca.pem'**默认值:**空
PGSSLCRL 指定证书吊销列表文件,用于验证服务器证书是否在废弃证书列表中,如果在,则服务器证书将会被视为无效证书。 必须包含文件的绝对路径,如:export PGSSLCRL='/home/omm/sslcrl-file.crl'**默认值:**空

服务器端参数ssl、require_ssl与客户端参数sslmode配置组合结果如下:

ssl(服务器) sslmode(客户端) require_ssl(服务器) 结果
on disable on 由于服务器端要求使用SSL,但客户端针对该连接禁用了SSL,因此无法建立连接。
disable off 连接未加密。
allow on 连接经过加密。
allow off 连接未加密。
prefer on 连接经过加密。
prefer off 连接经过加密。
require on 连接经过加密。
require off 连接经过加密。
verify-ca on 连接经过加密,且验证了服务器证书。
verify-ca off 连接经过加密,且验证了服务器证书。
verify-full on 连接经过加密,且验证了服务器证书和主机名。
verify-full off 连接经过加密,且验证了服务器证书和主机名。
off disable on 连接未加密。
disable off 连接未加密。
allow on 连接未加密。
allow off 连接未加密。
prefer on 连接未加密。
prefer off 连接未加密。
require on 由于客户端要求使用SSL,但服务器端禁用了SSL,因此无法建立连接。
require off 由于客户端要求使用SSL,但服务器端禁用了SSL,因此无法建立连接。
verify-ca on 由于客户端要求使用SSL,但服务器端禁用了SSL,因此无法建立连接。
verify-ca off 由于客户端要求使用SSL,但服务器端禁用了SSL,因此无法建立连接。
verify-full on 由于客户端要求使用SSL,但服务器端禁用了SSL,因此无法建立连接。
verify-full off 由于客户端要求使用SSL,但服务器端禁用了SSL,因此无法建立连接。

SSL传输支持一系列不同强度的加密和认证算法。用户可以通过修改postgresql.conf中的ssl_ciphers参数指定数据库服务器使用的加密算法。目前本产品SSL支持的加密算法如表4所示。

表 4 加密算法套件

OpenSSL套件名 IANA套件名 安全程度
ECDHE-RSA-AES128-GCM-SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 HIGH
ECDHE-RSA-AES256-GCM-SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 HIGH
ECDHE-ECDSA-AES128-GCM-SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 HIGH
ECDHE-ECDSA-AES256-GCM-SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 HIGH
DHE-RSA-AES128-GCM-SHA256 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 HIGH
DHE-RSA-AES256-GCM-SHA384 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 HIGH

openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接,openGauss学习笔记,openGauss,国产数据库,开源数据库,数据库,RDBMS说明:

  • 目前只支持上表中的6种加密算法套件。
  • 配置参数ssl_ciphers的默认值为ALL,表示支持上表中的所有加密算法。为保持前向兼容保留了DHE算法套件,即DHE-RSA-AES128-GCM-SHA256和DHE-RSA-AES256-GCM-SHA384,根据CVE-2002-20001漏洞披露DHE算法存在一定安全风险,非兼容场景不建议使用,可将ssl_ciphers参数配置为仅支持ECDHE类型算法套件。
  • 如需指定以上加密算法套件,可以设置ssl_ciphers为上表中OpenSSL套件名称,加密算法套件之间需要使用分号分割,如在postgresql.conf设置:ssl_ciphers=‘ECDHE-RSA-AES128-GCM-SHA256;ECDHE-ECDSA-AES128-GCM-SHA256’。
  • SSL连接认证不仅增加了登录(创建SSL环境)及退出过程(清理SSL环境)的时间消耗,同时需要消耗额外的时间用于加解密所需传输的内容,因此对性能有一定影响。特别的,对于频繁的登录登出,短时查询等场景有较大的影响。
  • 在证书有效期小于7天的时候,连接登录会在日志中产生告警提醒。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接,openGauss学习笔记,openGauss,国产数据库,开源数据库,数据库,RDBMS文章来源地址https://www.toymoban.com/news/detail-744444.html

到了这里,关于openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户

    使用CREATE USER和ALTER USER可以创建和管理数据库用户。openGauss包含一个或多个已命名数据库。用户和角色在整个openGauss范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里声明的那个数据库。 非 三权分立 下,

    2024年02月08日
    浏览(47)
  • openGauss学习笔记-60 openGauss 数据库管理-逻辑存储结构

    openGauss的数据库节点负责存储数据,其存储介质也是磁盘,本节主要从逻辑视角介绍数据库节点都有哪些对象,以及这些对象之间的关系。数据库逻辑结构如 图1 。 图 1 数据库逻辑结构图 说明: Tablespace,即表空间,是一个目录,可以存在多个,里面存储的是它所包含的数据

    2024年02月09日
    浏览(44)
  • openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制

    数据库对象创建后,进行对象创建的用户就是该对象的所有者。openGauss安装后的默认情况下,未开启 三权分立 ,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过 GRANT 将对象的

    2024年02月07日
    浏览(48)
  • openGauss学习笔记-61 openGauss 数据库管理-常见主备部署方案

    61.1 单中心 图 1 单中心部署图 组网特点: 单AZ部署,可以配置一个同步备一个异步备 优势: 三个node完全等价,故障任意一个node都可以提供服务; 成本低。 劣势: 高可用能力较低,发生AZ级故障只能依赖节点恢复; 适用性: 适用于对高可用性要求较低的业务系统。 61.2 同

    2024年02月09日
    浏览(40)
  • openGauss学习笔记-184 openGauss 数据库运维-升级-升级验证

    本章介绍升级完成后的验证操作。给出验证的用例和详细操作步骤。 184.1 验证项目的检查表 表 1 验证项目的检查表 序号 验证项目 检查标准 检查结果 1 版本查询 查询升级后版本是否正确 - 2 健康检查 使用gs_checkos工具完成操作系统状态检查。 - 3 数据库状态 使用gs_om工具完成

    2024年02月03日
    浏览(42)
  • openGauss学习笔记-55 openGauss 高级特性-全密态数据库

    全密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传输、运算以及存储的各个环节始终都处于密文状态。当数据拥有者在客户端完成数据加密并发送给服务端后,在攻击者借助系统脆弱点窃取用户数据的状态下仍然无法获

    2024年02月10日
    浏览(39)
  • openGauss学习笔记-224 openGauss性能调优-系统调优-数据库系统参数调优-数据库并发队列参数调优

    数据库提供两种手段进行并发队列的控制,全局并发队列和局部并发队列。 224.1 全局并发队列 全局并发队列采用GUC参数max_active_statements控制数据库主节点上运行并发执行的作业数量。采用全局并发队列机制将控制所有普通用户的执行作业,不区分复杂度,即执行语句都将作

    2024年02月22日
    浏览(42)
  • openGauss学习笔记-204 openGauss 数据库运维-常见故障定位案例-重建索引失败

    204.1 重建索引失败 204.1.1 问题现象 当Desc表的索引出现损坏时,无法进行一系列操作,可能的报错信息如下。 204.1.2 原因分析 在实际操作中,索引会由于软件或者硬件问题引起崩溃。例如,当索引分裂完发生磁盘空间不足、出现页面损坏等问题时,会导致索引损坏。 204.1.3 处

    2024年01月24日
    浏览(41)
  • openGauss学习笔记-190 openGauss 数据库运维-常见故障定位案例-服务启动失败

    190.1 服务启动失败 190.1.1 问题现象 服务启动失败。 190.1.2 原因分析 配置参数不合理,数据库因系统资源不足,或者配置参数不满足内部约束,启动失败。 由于部分数据节点状态不正常,导致数据库启动失败。 目录权限不够。例如对/tmp目录、数据库数据目录的权限不足。 配

    2024年01月23日
    浏览(51)
  • openGauss学习笔记-192 openGauss 数据库运维-常见故障定位案例-XFS文件系统问题

    192.1 在XFS文件系统中,使用du命令查询数据文件大小大于文件实际大小 192.1.1 问题现象 在数据库使用过程中,通过如下du命令查询数据文件大小,查询结果大于文件实际的大小。 192.1.2 原因分析 XFS文件系统有预分配机制,预分配的大小由参数allocsize确定。du命令显示的文件大

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包