有效地使用LDAP身份验证机制的PostgreSQL通常需要广博的知识在这两个领域。在试图尽可能完整而简洁,我详细说明如何启用TLS PostgreSQL和OpenLDAP服务器。

具有讽刺意味的是,最复杂的方面与PostgreSQL或OpenLDAP无关,但与创建的步骤和签名私钥和证书。

注意:我已经认真考虑过离开OpenLDAP的命令,但我想它可能受益你如果你像我一样经常因为我不要碰这个。

总结步骤

基本假设是:

  1. PostgreSQL和LDAP主机安装在同一个主机上。
  2. 用户账户,但不是密码,是Postgres服务器上创建的。
  3. 用户账户和密码都在LDAP服务器上配置。
  4. 私钥/公钥,sic证书,被创建。
  5. 自签名证书权威,CA,存在于主机和签署了上述Postgres和LDAP证书。

环境

本文档中描述的概念证明由一个单独的服务器:

  • Linux操作系统,Ubuntu 18.04
  • 主机名:my-ldap
  • PostgreSQL版本14
  • OpenLDAP 2.4.45版本
    • 专有名称:“cn = admin, dc = nodomain”
    • 密码:admin
    • 最高的领域:“dn: dc = pg_user, dc = nodomain”
    • 超级用户、postgres:“dn: cn = postgres, dc = pg_user, dc = nodomain”
    • user1:“dn: cn = user1, dc = pg_user, dc = nodomain”
    • user2:“dn: cn = user2, dc = pg_user, dc = nodomain”
  • 用户帐号:
    • postgres(密码postgres)

安装PostgreSQL

除了标准的安装和配置步骤Postgres远程访问、编辑基于主机的认证文件启用Postgres指LDAP服务进行身份验证。

角色和useraccount用于Postgres应该宣布。记住,不需要分配的密码:

pg_hba。相依的假设:

  • LDAP URL127.0.01,本地主机,或主机名URL(如果需要的话)。
  • IPv4和IPv6都宣布规则。
  • 之间没有启用加密Postgres和LDAP服务。

安装LDAP

运行netstat, (netstat -tlnp),返回以下:

命令行实用工具

你可以控制OpenLDAP的行为通过使用这些命令行实用工具:

  • ldapmodify
  • 用ldapadd
  • ldapdelete
  • ldapmodrdn
  • ldapsearch
  • ldapwhoami

设置管理员密码

据悉,管理LDAP服务器需要设置密码。尽管LDAP的安装包括设置密码,这将是管理,通过执行以下命令,可以重置密码:

配置

下面的bash脚本演示了配置OpenLDAP验证三个Postgres的角色,也就是说,postgres,user1,user2:

测试没有TLS连接

一个简单的登录确认LDAP和PostgreSQL正确工作。即使有一个加密psql和Postgres服务器之间的会话,之间没有加密的会话Postgres和LDAP身份验证执行:

使用TLS加密

安装额外的包

使用SSL证书,这些包应该存在,即。Ubuntu的地理分布:

管理认证中心

认证之间的Postgres和LDAP服务器包括主机进行连接尝试,实际上,合法的。出于这个原因,服务器必须签署的证书,也就是说。,需要认证授权机制。

在这种情况下,CA证书配置为在十年内到期:

内部系统可以使用自签名CA证书,否则,强烈建议由授权CA签署的证书。在这种情况下,证书,一旦签署,被放置在相同的目录中存储CA证书,即/usr/local/share/ca-certificates:

注意:一旦签署,CA证书分别复制到Postgres和LDAP服务器。在这种情况下,他们是在同一个主机上,它位于主机my-ldap。否则,它必须被复制到所有Postgres和LDAP主机。

一旦复制到正确的目录,CA证书更新的列表,添加签名CA证书:

LDAP公钥/私钥生成

从这里开始,重要的是要包括LDAP的完全限定域名证书的主机名,例如,my-ldap

生成一个LDAP服务器私钥:

定义LDAP属性证书:

LDAP使用自签名证书的私钥签署授权证书和私钥:

私钥更新访问权限:

创建并保存LDAP TLS配置文件,certinfo.ldif:

让OpenLDAP使用TLS:

验证测试# 1

验证返回的字符串“匿名”:

验证测试# 2

这个测试证实了先前的行为没有TLS仍然适用:

这个测试前ldapsearch应该返回的输出。失败是由一个短消息表示调用使用开关“zz”。

使用TLS使用PostgreSQL

配置

这是基于主机与TLS配置规则;注意到小编辑<跨度风格="font-weight: 400; color: #ff0000;">红色的<跨度风格="font-weight: 400;">:

验证测试:TLS

后更新pg_hba。配置与新论点,ldaptls = 1执行,服务器重新加载,其次是psql萍:

雷竞技下载官网Percona分布PostgreSQL提供最好的和最重要的开源社区的企业组件,在一个单一的分布,设计和测试一起工作。

今天下载Perco雷竞技下载官网na分布PostgreSQL !