我们有一个 openldap 服务器,不想允许未加密的通信,所以可以接受 tls over 389 ( starttls
) 或 ssl over 636 ( ldaps
)。
当我们使用 slapd.conf 进行配置时,olcSecurity
这不是一个选项。
TLSCipherSuite
似乎是使用 slapd.conf 的方法。但是,当使用该 slapd 时,要么不启动,要么忽略设置(即接受未加密的请求)。
使用时 slapd 无法启动(错误:TLS init def ctx failed:-1):
- TLSCipherSuite ALL
- TLSCipherSuite Default
- TLSCipherSuite ALL:!NULL
- TLSCipherSuite ALL:!aNULL
- TLSCipherSuite AES256-SHA #one of the ciphers offered by openssl
slapd 启动但在使用时接受未加密的请求:
- TLSCipherSuite NORMAL
- TLSCipherSuite NORMAL:!NULL #would be acceptable
- TLSCipherSuite !NULL #would be acceptable
我们测试
ldapsearch -L -x -W -h [SERVER] -D [USER] - b [SEARCHBASE] uid=[USER]
(未加密)
和
ldapsearch -L -x -W -ZZ -h [SERVER] -D [USER] - b [SEARCHBASE] uid=[USER]
(加密)
运行 openldap 的操作系统是 debian 8.7。openldap 版本似乎使用的是 gnutls,而不是 openssl,所以这可能是问题的原因。
但是最后三个TLSCipherSuite
变体似乎是有效的语法,至少 slapd 开始时没有错误。为什么不!NULL
阻止 slapd 接受未加密的请求?最后两个(使用任何可用的密码,但不允许没有密码)是可以接受的。
是否需要额外的设置/参数?
请注意,我们尝试了此处给出的建议(如上所述),但没有奏效。