Wietse Venema:
> Ronald F. Guilmette:
> > >In the case of a Postfix-only solution, whitelist updates could be
> > >generated by mis-using smtp_generic_maps, relocated_maps, etc. (add
> > >an address if it isn't already "known")
> > 
> > Could you be induced to elaborate on the above comment, hopefully at
> > length?
> 
> With a socketmap daemon:
> 
> /etc/postfix/main.cf:
>     relocated_maps = socketmap:inet:host:port:name
>     relocated_maps = socketmap:unix:pathname:name
> 
> This queries relocated_maps for every envelope recipient before
> email delivery.
> 
> You provide a server that runs on the specified TCP host and port
> (or UNIX-domain socket) that speaks the socketmap protocol, and
> that answers all queries with "not found".  The socketmap protocol
> is described in the socketmap_table(5) manpage. There is a Python
> socketmap implementation.
> 
> This server maintains a persistent database, adding an (address,
> suitable Postfix access map reply, see below) entry if the database
> entry does not already exist.  The database could be MySQL, LMDB,
> but not any version of Berkeley DB > 1.85 because that does not
> work with Postfix locks.

This suitable reply can be a time stamp of the last database update
for that address. Postfix treats an all-numerical field as "OK".
Then, you can do the proactive refresh as described below with any
database type.

        Wietse

> The database is queried with check_sender_access, and returns the
> suitable reply value that was stored by the socketmap server.
> 
> If you use an MySQL database then your server can also maintain a
> "last update" time-stamp field with each address and reply so that
> an inactive address can be recognized as "too old".  When an active
> address entry is mid-way towards expiration, the socketmap server
> updates the time stamp to prevent the address from becoming "too
> old".
> 
> If you use an LMDB database then your server has to implement the
> Postfix external locking protocol as described in lmdb_table(5).
> LMDB built-in locks are not suitable (they require a world-writable
> lockfile, and that would violate the Postfix security model).
> 
>       Wietse
> 

Reply via email to