我正在尝试在客户端计算机上设置 Postfix。所有计算机都应使用中央 ldap 目录来存放常用的 Postfix(例如别名等)。但由于 Postfix 在 chroot 中运行,因此 Postfix 无法解析 ldap 服务器的主机名。
Postfix mail.log 行:
Apr 30 13:37:22 host postfix/cleanup[30160]: dict_ldap_debug: ldap_connect_to_host: TCP ldapmaster.domain.com:389
Apr 30 13:37:22 host postfix/cleanup[30160]: dict_ldap_debug: ldap_connect_to_host: getaddrinfo failed: Name or service not known
Apr 30 13:37:22 host postfix/cleanup[30160]: dict_ldap_debug: ldap_err2string
Apr 30 13:37:22 host postfix/cleanup[30160]: warning: dict_ldap_lookup: Search error -1: Can't contact LDAP server
Apr 30 13:37:22 host postfix/cleanup[30160]: warning: AF28B226A2: sender_canonical_maps map lookup problem for [email protected]
当我手动执行 ldapsearch 时,它工作正常。我还尝试进入 postfix ( /var/spool/postfix
) 的 chroot 环境,但尝试时ping ldapmaster.domain.com
出现 -error unknown host
。
这个问题已经报告给 Ubuntu Launchpad作为natty 升级后,chroot 中 DNS 主机名查找失败。
关于如何允许 postfix 解析 DNS 名称,有什么想法吗?
答案1
我发现 libnss 库似乎是在 chroot 之后加载的。因此,chroot jail 中需要它们。将它们链接到那里:
cp -vl /lib/i386-linux-gnu/libnss_* /var/spool/postfix/lib/i386-linux-gnu/
答案2
不明白为什么 postfix 不能解析 DNS 名称,但只需将 LDAP 提供商的 DNS 添加到 即可/etc/hosts
。因此,您无需依赖任何 DNS 查找,也不会在 DNS 服务器发生故障时陷入困境:
1.2.3.4 thehostname