april 2014
sun mon tue wed thu fri sat
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

« February 2013 | Main | May 2014 »


April 23, 2014
Exim4, greylistd except recipient

When using greylistd with exim4, you may add a line to skip or bypass greylisting for recipients as maintained in local plaintext file using one email address per line. Basically this says greylist the triplet unless recipient is in the list.

Create recipient whitelist, one address per line:
/etc/greylistd/whitelist-recipient

Backup existing conf file if multi-file config:
cp /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt ~/
or
cp /etc/exim4/exim4.conf.template ~/

Edit the acl portion of multi file conf:
vim /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt

Modify:
defer

message        = $sender_host_address is not yet authorized to deliver \
mail from <$sender_address> to <$local_part@$domain>. \
Please try later.
log_message = greylisted.
!senders = :
!hosts = : +relay_from_hosts : \
${if exists {/etc/greylistd/whitelist-hosts}\
{/etc/greylistd/whitelist-hosts}{}} : \
${if exists {/var/lib/greylistd/whitelist-hosts}\
{/var/lib/greylistd/whitelist-hosts}{}}
!authenticated = *
!acl = acl_local_deny_exceptions
domains = +local_domains : +relay_to_domains
verify = recipient
condition = ${readsocket{/var/run/greylistd/socket}\
{--grey \
${mask:$sender_host_address/24} \
$sender_address \
$local_part@$domain}\
{5s}{}{false}}

To:

defer
message = $sender_host_address is not yet authorized to deliver \
mail from <$sender_address> to <$local_part@$domain>. \
Please try later.
log_message = greylisted.
!recipients = /etc/greylistd/whitelist-recipient
!senders = :
!hosts = : +relay_from_hosts : \
${if exists {/etc/greylistd/whitelist-hosts}\
{/etc/greylistd/whitelist-hosts}{}} : \
${if exists {/var/lib/greylistd/whitelist-hosts}\
{/var/lib/greylistd/whitelist-hosts}{}}
!authenticated = *
!acl = acl_local_deny_exceptions
domains = +local_domains : +relay_to_domains
verify = recipient
condition = ${readsocket{/var/run/greylistd/socket}\
{--grey \
${mask:$sender_host_address/24} \
$sender_address \
$local_part@$domain}\
{5s}{}{false}}

Update Exim4 conf file
update-exim4.conf

Restart Exim4
/etc/init.d/exim4 restart

crit?: 0