在 chroot postfix 中使用 DNS 查找

在 chroot postfix 中使用 DNS 查找

我正在尝试在客户端计算机上设置 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

相关内容