[exim-conf] доработки серых списков

Victor Ustugov victor на corvax.kiev.ua
Пн Авг 24 22:18:56 EEST 2015


приветствую

осуществлены доработки серых списков:


- реализована возможность применения "серых списков" не только
к IP адресу хоста отправителя, но и к сети хоста отправителя с
произвольной маской, а также возможность применения "серых списков" не
только применительно к адресам отправителей, но и к любой модификации
адреса (например, к домену отправителя).

использование сети хоста отправителя вместо непосредственно адреса хоста
отправителя указывается в переменной confGREYLIST_SENDER_HOST_ADDRESS_KEY.

пример:

define(`confGREYLIST_SENDER_HOST_ADDRESS_KEY',
`${mask:$sender_host_address/24}')

значение по умолчанию:

define(`confGREYLIST_SENDER_HOST_ADDRESS_KEY', `$sender_host_address')


использование домена отправителя вместо адреса отправителя указывается в
переменной confGREYLIST_SENDER_ADDRESS_KEY.

пример:

define(`confGREYLIST_SENDER_ADDRESS_KEY', `${lc:$sender_address_domain}')

значение по умолчанию:

define(`confGREYLIST_SENDER_ADDRESS_KEY', `${lc:$sender_address}')


произведена соответствующая адаптация механизма внесения в исключения
"серых списков" записей при отсылке писем из рилеемых сетей или от
аутентифицированных отправителей (см. confGREYLIST_ADDR_PRELOAD). при
использовании в confGREYLIST_SENDER_ADDRESS_KEY домена отправителя
вместо адреса отправителя нужно соответственно указать в переменной
confGREYLIST_ADDR_PRELOAD_SENDER_ADDRESS_KEY домен вместо адреса.

пример:

define(`confGREYLIST_ADDR_PRELOAD_SENDER_ADDRESS_KEY', `${lc:$domain}')

значение по умолчанию:

define(`confGREYLIST_ADDR_PRELOAD_SENDER_ADDRESS_KEY',
`${lc:$local_part@$domain}')


- реализовано хранение данных "серых списков" в memcached и redis

для confGREYLIST_BACKEND можно использовать два новых значения -
MEMCACHED и REDIS.

в случае использования redis необходимо в переменной confREDIS указать
параметры подключения к redis в формате, описанном в документации к exim
применительно к параметру redis_servers.

зачистка устаревших данных кеша "серых списков" в случае использования
memcsached производится автоматически.

в случае использования redis она производится штатным скриптом
periodic/awl_del_expired.sh

в contrib/greylist размещены скрипты просмотра кеша "серых списков"
greylist_memcached_show.sh, greylist_redis_show.sh и
greylist_relays_redis_show.sh, а также скрипты ручного удаления записей
из кеша - greylist_memcached_del_by_key.sh и greylist_redis_del_by_key.sh


нюансом является то, что при записи данных в redis пришлось заменить
пробелы на пайпы, а при чтении записей производить обратную замену. обе
операции производятся в именованных acl acl_redis_set и acl_redis_get.

странно то, что в случае использования redis-cli из командной строки
никаких проблем с записями, содержащими пробелы, нет. нужно просто взять
запись в двойные кавычки. проблема, на сколько я понимаю, именно в
обработке exim'ом параметров лукапа к redis.


-- 
Best wishes Victor Ustugov  mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:       http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614          JID: corvax_at_nb на jabber.corvax.kiev.ua
nic-handle: CRV-UANIC



Подробная информация о списке рассылки exim-conf