使用TLSconfigurationOpenLDAP =必需

如今,OpenLDAP需要使用ldapmodify cn = config进行configuration,如下所述。 但是无处可查我们如何configuration它只接受TLSstream量。 我刚刚确认我们的服务器接受未encryption的stream量(使用ldapsearch和tcpdump)。

通常情况下,我只是closures与IP表的非SSL端口,但使用SSL端口已被弃用,显然,所以我没有这个选项。

所以,使用SSLconfiguration命令,像这样:

dn: cn=config changetype:modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/bla.key - replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/bla.crt - replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/ca.pem 

有没有强制TLS的参数?

编辑:我试过olcTLSCipherSuite,但它不起作用。 debugging输出:

 TLS: could not set cipher list TLSv1+RSA:!NULL. main: TLS init def ctx failed: -1 slapd destroy: freeing system resources. slapd stopped. connections_destroy: nothing to destroy. 

Edit2(几乎修复):我能够通过加载来修复它:

 # cat force-ssl.tx dn: cn=config changetype: modify add: olcSecurity olcSecurity: tls=1 

但是然后命令就像

 ldapmodify -v -Y EXTERNAL -H ldapi:/// -f /etc/ssl/tls-required.ldif 

不要工作了…并将其更改为:

 ldapmodify -v -x -D "cn=admin,dc=domain,dc=com" -H ldap://ldap.bla.tld/ -ZZ -W -f force-ssl.txt 

给我“ldap_bind:无效的凭据(49)”。 显然,即使这个binddn被指定为rootdn,我也不能用它来改变cn=config 。 可以改变吗?

我似乎已经得到它了:

我做到了这一点:

 dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcSecurity olcSecurity: tls=1 

这似乎有预期的效果。 我仍然可以运行如下命令:

 ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config 

但是试图用“ ldapsearch -xLLL -b ... ”绑定没有SSL说:“TLS机密性要求”

这是通过TLSCipherSuite选项实现的。 OpenLDAP Zytrax书籍的LDAP安全章节logging了一个示例。 有了它,你可以告诉OpenLDAP你的服务器将接受的密码套件。 例如,你可以告诉你不需要一个NULL密码套件(即:非encryption的会话)。

请注意,OpenLDAP可以链接到OpenSSL或GnuTLS库。 那些使用不同的密码列表来描述他们的encryption支持。 OpenSSLencryption列表可以通过openssl ciphers -v和GnuTLS列表中的gnutls-cli -l命令获得。

禁用没有encryption连接最简单方法是:

 dn: cn=config changetype: modify replace: olcTLSCipherSuite olcTLSCipherSuite: ALL:!NULL 

使用GnuTLS语法的更具体的限制:

 dn: cn=config changetype: modify replace: olcTLSCipherSuite olcTLSCipherSuite: TLS_RSA_CAMELLIA_128_CBC_SHA1:TLS_RSA_CAMELLIA_256_CBC_SHA1:!NULL 

一个更完整的例子可能是(使用OpenSSL语法 ):

 dn: cn=config changetype: modify replace: olcTLSCipherSuite olcTLSCipherSuite: HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5:!NULL 

有一个OpenLDAP的邮件列表讨论值得一读类似的问题 。

值得一提的是,OpenLDAP cli工具(如ldapsearch在连接到禁止未encryption连接的服务器时会自动切换到使用TLS。 这意味着你不需要在参数列表中添加-Z