如今,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 。