我正在尝试配置 sendmail 以使用 LDAP 查找作为别名表。
我的配置中有这一行:
Kldapfullname ldap -k"uid=%s" -v"mail" -h"my-ldap-server"
我已经用了很长时间了。它很管用,可以查找别名,电子邮件最终会进入正确的收件箱。
但是,它仍然有效,因为 LDAP 目前允许匿名绑定。由于某些政策变更,现在无法再这样做了。
我得到了这个工作:
Kldapfullname ldap -k"uid=%s" -v"mail" -H"ldaps://my-ldap-server/" -Msimple -d"CN=LDAP_USER" -P /path/to/ldap.secret
这满足了“不再匿名绑定”的要求。
但是仍然存在一些安全问题:LDAP 绑定不是通过安全通道进行的。用户名和密码均以明文形式发送。从长远来看,这与匿名绑定一样有用。
在我搜索时看到的几个例子中,我发现标志-H
允许您指定一个协议,例如ldap://
,或者在我的情况下ldaps://
。
但是当我去验证时,我发现数据仍然通过非安全 LDAP 端口(端口 389)而不是 LDAPS 端口(端口 636)。(我以前snoop
看到过我的主机和 LDAP 服务器之间的流量。)
所以我的问题是:* 为什么ldaps://
被忽略并且被当作只是而被使用ldap://
?* 我必须进行哪些更改才能使其正常工作?
答案1
根据“bat book”第 4 版(第 3.4.56 节),当 sendmail 使用 LDAP 支持编译但没有 SM_CONF_LDAP_INITIALIZE 时,LDAP URL 中的 scheme:// 部分将被省略。