So I've done a bit of reading on postfix's internal chrooting
capabilities and I thought it would fit exactly what I'm trying to do
perfectly.  Here is the simple desired functionality:

.  I want outbound email name lookups to use a different set of name
servers than what the system normally uses in literal /etc/resolv.conf

To accomplish this, I set the smtp service to chroot in master.cf and
I moved the resolv libraries into /var/spool/postfix/lib and created a
/var/spool/postfix/etc/resolv.conf with the nameservers i wanted to
use.  I'm running Postfix 2.3.3 on CentOS 5.2 (2.6.24) with SELinux.
I added the chroot capability for the smtp binary to my SELinux
policy.  Postfix starts uneventfully, save for the warning about
mismatched resolv.conf files, which is what I expect (in fact, is what
I want).  This is what I'm now seeing when I send mail:

.  smtpd runs, accepts the mail (opens literal /etc/resolv.conf vs.
chroot /etc/resolv.conf and reads that)
.  proxymap runs next, opens literal /etc/resolv.conf
.  trivial-rewrite comes next, same resolv.conf
.  cleanup runs, same resolv.conf
.  smtp runs, establishes environment, opens literal /etc/resolv.conf
- not chroot /etc/resolv.conf, reads contents, *then chroots*, then
performs DNS lookups using the wrong DNS servers

Why does the chroot happen after the name resolution environment is
established?  Wouldn't that mean that having the /etc/resolv.conf in
the chroot is unnecessary? And more importantly, how can I get smtp
outbound to read a different resolv.conf for me?

Many thanks,

b

Reply via email to