Появилась проблема с блокировкой писем amavis. Общий вид проблемы в логе:
amavis[12706]: (12706-13) Blocked BANNED (.txt,mail.ru!mydomain.com!1520812800!1520899200.xml) {NoBounceInternal,Quarantined}
Поиски причин сводились все к бану по прикреплённому файлу. Эта тема описана тут — https://forum.iredmail.org/topic12311-iredmail-support-amavisd-blocked-banned.html.
Суть. В файле конфигурации /etc/amavis/conf.d/50-user (Debian; на других ОС смотреть тут) есть переменная $banned_namepath_re. Надо убрать в ней расширение файлов, на которые происходит реакция amavis на бан. Читал так же, что кто-то полностью удалял этот блок, но не думаю, что это верное решение.
Вариант разрешить пропускать забаненные письма:
$final_banned_destiny = D_PASS;
Вариант отправлять забаненные письма на почту:
$banned_admin = "root\@$mydomain";
Отправка письма в карантин на почту:
$final_banned_destiny = D_BOUNCE;
$banned_quarantine_to = "banned\@$mydomain";
В последней строчке можно указать сразу готовый адрес, например:
$banned_quarantine_to = 'banned@unix-garage.tk';
*обращая внимание на кавычки; если amavis ругается на конфиг, то попробовать варианты с разными кавычками или без них.
Вариант добавления белого списка в конфиг:
map { $whitelist_sender{lc($_)}=1 } (qw( nobody@cert.org owner-alert@iss.net slashdot@slashdot.org));
Описание параметров обработки писем.
D_DISCARD — блокировать, никаких уведомлений не отсылать.
D_BOUNCE — блокировать, отправить уведомление отправителю письма.
D_PASS — пропустить письмо.
А так же в дальнейшем столкнулся с ошибками такого же вида, только тип файла был указан немного по другому. Я воспроизвёл проблему и получил сообщения следующего вида:
Blocked BANNED (.txt,testxml.xml) {NoBounceOpenRelay}
Blocked BANNED (.dat,docfoblock.docx)
На практике оказалось, что как таковые файлы в бан не попадают. Т.е. если я пришлю эти файлы в чистом виде, то они пройдут через фильтр. Но если их запаковать в формат zip, то они попадают в блокировку. Логика мне не ясна, т.к. упаковав оба файла в архив формата 7z фильтр не сработал и файлы были получены.
В файле конфигурации /etc/amavis/conf.d/50-user есть строчка, где присутствует формат zip:
[qr'T=(zip|rar|arc|arj|zoo|gz|bz2)(,|\t)'xmi => 'DISCARD'], # Compressed file types
Его надо убрать и перезагрузить сервис:
# service amavis restart
#Белый лист email для Amavis
Создать файл /etc/amavisd/whitelist, где будет список адрес или доменных имён, бан которых не нужен:
user1@example.com
user2@example.org
example.net
example.eu
В конфигурацию amavis дописать:
# This policy will perform virus checks only. read_hash(\%whitelist_sender, '/etc/amavisd/whitelist'); @whitelist_sender_maps = (\%whitelist_sender); $interface_policy{'10026'} = 'VIRUSONLY'; $policy_bank{'VIRUSONLY'} = { # mail from the pickup daemon bypass_spam_checks_maps => ['@whitelist_sender_maps'], # don't spam-check this mail bypass_banned_checks_maps => ['@whitelist_sender_maps'], # don't banned-check this mail bypass_header_checks_maps => ['@whitelist_sender_maps'], # don't header-check this mail };
У меня данный вариант для iRedMail сработал.
#Использованный материал