Re: [Exim] Using nis/ldap in a reliable fashion (i.e. withou…

Top Page
Delete this message
Reply to this message
Author: Marc MERLIN
Date:  
To: Nico Erfurth
CC: exim-users
Subject: Re: [Exim] Using nis/ldap in a reliable fashion (i.e. without losing mail)
On Tue, Sep 17, 2002 at 09:42:13PM +0200, Nico Erfurth wrote:
> Exim has nis-support built in (if you enable it).


Ok, so do you have to rewrite

localuser:
driver = accept
check_local_user
transport = local_delivery

and replace check_local_user with a condition string that does an explicit
NIS lookup?

Something like:
condition = nis;passwd

> >if the ldap server was unreachable or the query otherwise failed with
> >anything else than "query suceeded, no results" ?
>
> Yes it is, without tweaking exim would send a temp-reject if the
> connection or the query to the LDAP-server fails, in the case of no
> return-value it will do what you want ;)


Cool.
I'll have to look at the example config files, but I take it you also need
to replace check_local_user and write an ldap query instead.

But if you do that, what about all my routers that do this:
userforward:
driver = redirect
allow_filter
check_ancestor
check_local_user
file = $home/.forward
file_transport = address_file

($home gets defined by check_local_user)

Do I need to do a separate ldap query and reconstruct home myself?

> Partly this would be possible, the only problem i would see, is that you
> can't set the home_directory reliable for filters (i had this problem
> some months ago)


Ah, ok, so we're on the same page then :-)
I suppose I could do a nis query on the auto.home map

> >What happens if the ldap server(s) is/are down? Will exim think that the
> >query returned no results, or will it detect the failure and return a
> >temporary failure or defer the Email if the email has already been
> >accepted?
>
> it will detect the error and send a temp-reject


Great.

> >Does exim cache ldap queries like postfix does?
>
> <quote>
> Exim caches the most recent lookup result on a per-file basis for


Yeah, I knew this one

> For query-style lookups, a single data cache per lookup type is kept.
> The files are closed and the caches flushed at strategic points during
> delivery - for example, after all routing is complete.


Ah, I forgot about that one, thanks. I wonder if it caches the individual
atoms of an ldap query (probably) or the whole query, and I'm not sure I
understand how long the result is cached.
If the queries happen in the child exim process, that would unfortunately
mean that there would be little caching for a user query and that the user
would be looked up for every single mail that comes in.

Thanks for your input.
Marc
--
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems & security ....
                                      .... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/   |   Finger marc_f@??? for PGP key