首页 » 网站推广 » php操作mppdb技巧_详解GaussDBDWS通信安然的小妙招连接认证机制

php操作mppdb技巧_详解GaussDBDWS通信安然的小妙招连接认证机制

访客 2024-11-13 0

扫一扫用手机浏览

文章目录 [+]

网络是一个开放的环境,仅仅依赖用户名和密码难以应对繁芜的网络环境,针对可能存在的身份假造的欺骗行为,以及监听通信内容的窃听行为,为了确保通信双方身份的真实性和通信内容的私密性,防止造孽用户对GaussDB(DWS)系统、其他用户造成不利影响,GaussDB(DWS)建立了一套完全而严密的防护机制——连接认证机制,可以有效防止造孽用户入侵。

2. 证书校验&&秘钥协商

证书校验和秘钥协商在SSL的握手阶段实现,握手协议如下:

php操作mppdb技巧_详解GaussDBDWS通信安然的小妙招连接认证机制

2.1 准备证书

在华为云CA认证中央申请到做事器、客户真个证书和密钥。
(如:做事器的私钥为server.key,证书为server.crt,客户真个私钥为client.key,证书为client.crt,CA根证书名称为cacert.pem。

php操作mppdb技巧_详解GaussDBDWS通信安然的小妙招连接认证机制
(图片来自网络侵删)

为了安全性,私钥常日采取了密码保护,在此可以通过gs_guc encrypt工具天生私钥的两个密码保护文件(.key.rand、.key.cipher),命令如下:

gs_guc encrypt [-M keymode] -K password -D DATADIR

解释:

-M是加密类型,做事端选择server,客户端选择client。
默认值为server。

-K是用户私钥的密码,密码须要知足哀求:长度(8≤len≤16)、繁芜度(需至少包含小写字母、大写字母、数字、分外字符中的三种)

-D天生的密码保护文件的存放地址

2.2 做事器参数配置

通过调用工具gs_guc实现做事器配置文件postgresql.conf有关参数设置,命令如下:

gs_guc set -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "ssl=on"

解释:

-Z coordinator表示实例类型为coordinator;

-D 数据目录

-c 指定设置postgresql.conf文件

做事器需设置SSL干系参数如下:

参数

描述

取值范围

ssl

表示是否启动SSL功能

on:开启SSL功能off:关闭SSL功能默认值: on

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根证书名称为准默认值: 空,表示不对客户真个合法性进行校验

ssl_crl_file

证书吊销列表

请以实际证书吊销列表名称为准默认值: 空,表示没有吊销列表

ssl_ciphers

SSL通讯利用的加密算法,目前已升级至TLS1.3

TLS1_3_RFC_AES_128_GCM_SHA256TLS1_3_RFC_AES_256_GCM_SHA384TLS1_3_RFC_CHACHA20_POLY1305_SHA256TLS1_3_RFC_AES_128_CCM_SHA256TLS1_3_RFC_AES_128_CCM_8_SHA256默认值: ALL,表示许可对端利用以上所有加密算法,在知足条件的算法中按照安全强度最高的匹配

2.3 客户端参数配置

客户端设置SSL连接参数,按照模式分为:单向认证和双向认证。

单向认证,仅客户端验证做事器证书的合法性,设置参数:PGSSLMODE、PGSSLROOTCERT;双向认证,客户端验证做事器证书的合法性,同时客户端向做事器发送证书,由做事器验证客户端证书的合法性,设置参数:PGSSLCERT、PGSSLKEY、PGSSLMODE、PGSSLROOTCERT;

客户端需设置SSL干系参数如下:

环境变量

描述

取值范围

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’

备注:假设证书,私钥和根证书都放在“/home/omm”目录。

3. 用户名和密码验证

用户名和密码的验证在做事器侧进行,其逻辑如下:

如果某主机须要远程连接到GaussDB(DWS),必须在GaussDB(DWS)系统的配置文件中增加此主机的信息,并且进行客户端接入认证。
配置文件(pg_hba.conf)存放在数据目录里。
hba(host-based authentication)表示是基于主机的认证。

通过调用工具gs_guc实现做事器配置文件pg_hba.conf有关参数设置,每次向配置文件中增加一条连接认证规则,命令如下:

gs_guc set -Z coordinator -N all -I all -h "host all jack 10.10.0.30/32 sha256"

解释:

-Z coordinator表示实例类型为coordinator;

-N all 表示集群的所有主机

-I all表示主机的所有实例

-h 表示指定须要在“pg_hba.conf”增加的语句

all 表示许可客户端连接到任意的数据库

jack表示许可连接数据库的用户

10.10.0.30/32表示只许可IP地址为10.10.0.30的主机连接

sha256表示连接时jack用户的密码利用sha256算法加密

配置文件pg_hba.conf中的每条记录可以是以下四种格式之一:

local DATABASE USER METHOD [OPTIONS]host DATABASE USER ADDRESS METHOD [OPTIONS]hostssl DATABASE USER ADDRESS METHOD [OPTIONS]hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]

解释:

local:只接管通过Unix域套接字进行的连接。

host:既接管一个普通的TCP/IP套接字连接,也接管一个SSL加密的TCP/IP套接字连接。

hostssl:只接管一个经由SSL加密的TCP/IP套接字连接。

hostnossl:只接管一个普通的TCP/IP套接字连接。

DATABASE:声明记录所匹配且许可访问的数据库:a) all:表示该记录匹配所有数据库;b) sameuser:表示如果要求访问的数据库和要求的用户同名,则匹配;c) samerole/ samegroup:表示要求的用户必须是与数据库同名角色中的成员;d) 一个包含数据库名的文件或者文件中的数据库列表:文件可以通过在文件名前面加前缀@来声明;e) 特定的数据库名称或者用逗号分隔的数据库列表;

USER:声明记录所匹配且许可访问的数据库用户。
a) all:表明该记录匹配所有用户;b) 用户角色:表示匹配任何直接或者间接属于这个角色的成员;c) 一个包含用户名的文件或者文件中的用户列表:文件可以通过在文件名前面加前缀@来声明;d) 特定的数据库用户名或者用逗号分隔的用户列表;

ADDRESS:指定与记录匹配且许可访问的IP地址范围,支持IPv4和IPv6,可以利用如下两种形式来表示:a) IP地址/掩码长度。
例如:10.10.0.0/24;b) IP地址子网掩码。
例如:10.10.0.0 255.255.255.0

METHOD:声明连接时利用的认证方法。
a) trust:只完备信赖从做事器本机利用gsql且不指定-U参数的连接,此时不须要口令;b) reject:无条件地谢绝连接。
常用于过滤某些主机;c) md5:哀求客户端供应一个md5加密的口令进行认证(不推举利用);d) sha256:哀求客户端供应一个sha256算法加密的口令进行认证;e) cert:客户端证书认证模式,必须是SSL连接且客户端须供应有效的SSL证书,用户名必须与证书所有者同名;f) gss:利用基于gssapi的kerberos认证;g) ldap:ldap认证;

4. 非常处理

问题征象

办理方法

用户名或密码缺点FATAL: invalid username/password,login denied

解释用户名或者密码缺点,请检讨输入是否有误

连接的数据库不存在FATAL: database “TESTDB” does not exist

解释考试测验连接的数据库不存在,请检讨连接的数据库名输入是否有误

未找到客户端匹配记录FATAL: no pg_hba.conf entry for host “10.10.0.60”, user “ANDYM”, database “TESTDB”

解释已经连接了做事器,但做事器谢绝了连接要求,由于没有在pg_hba.conf配置文件里找到匹配的记录。
请联系管理员在pg_hba.conf配置文件加入用户的信息

证书校验失落败SSL error: certificate verify failed

解释客户端CA校验做事器证书失落败,请检讨客户端CA证书配置是否有误

无效CASSL error: tlsv1 alert unknown ca

解释客户端发送的证书,做事器侧CA校验失落败,请检讨客户端证书配置是否有误

做事器不支持SSL,但客户端哀求SSL连接server does not support SSL, but SSL was required

解释做事器关闭SSL建连,而客户端逼迫哀求建连SSL连接,请联系管理员开启SSL连接(或客户端采取非SSL连接)

做事器逼迫哀求SSL连接,客户端不支持FATAL: SSL connection is required by the database system

解释客户端不支持SSL建连,请检讨客户端SSL建连干系参数配置是否有误

做事端认证模式选择证书认证,校验失落败FATAL: certificate authentication failed for user “user01”

解释做事端认证模式选择证书认证,而客户端登任命户user01与证书不匹配,请检讨客户端证书配置是否有误

校验做事端证书失落败server common name “server” does not match host name

解释客户端认证模式选择verify-full,而校验的做事器主机名与做事器证书中名称不一致,请检讨“/etc/hosts”中配置的做事器主机名是否有误

缺点的版本SSL error: wrong version number

解释做事器无法读取到做事器证书,请联系管理员检讨做事器证书配置是否有误

5. 总结

连接认证机制便是GaussDB(DWS)数据安全的一套有效防护机制,连接认证机制可以防止造孽用户入侵GaussDB(DWS)系统内部。
GaussDB(DWS)是基于客户端/做事器(C/S)架构的系统,通信过程是基于TPC/IP协议,为了确保用户访问的可信,建立了连接认证机制:通过安全套接字层(SSL)实现通信双方的证书校验和秘钥协商从而保护网络连接,通过做事真个认证模块确保用户名和密码合法。

关于SSL,SSL(及其继任者TLS)是在运用程序级实现的,位于运用层协议(HTTP、FTP)和传输层协议(TCP)之间。
如果精确地配置了SSL,则第三方不雅观察者最多只能得到连接参数、传输频率和大概数据量,但是无法读取或变动这些信息。
基于SSL的证书校验可以确保通信双方(客户端和做事端)身份的真实性、秘钥协商可以确保数据的完全性和私密性。
SSL/TLS在Internet协议栈中的位置如图所示:

关于认证模块,在建立的TCP/IP通道(SSL)的根本上,根据做事器配置文件pg_hba.conf中限定的合法用户名、数据库名、IP地址以及认证办法等信息,GaussDB(DWS)认证模块对用户名和密码进行校验,确保合法用户能正常连接到GaussDB(DWS)。

关注#华为云开拓者同盟# 点击下方,第一韶光理解华为云新鲜技能~

华为云博客_大数据博客_AI博客_云打算博客_开拓者中央-华为云

标签:

相关文章

php转码进度技巧_Axure教程进度条的实现

1.须要把稳的地方(1)进度条如何实现?(2)进度百分比如何实现?2.元件准备从元件库中拖动一个矩形作为背景槽,命名为“backg...

网站推广 2024-12-13 阅读0 评论0