Victor Ustugov wrote:
> после спора в одной частной беседе о пользе и вреде паранойи при приеме
> писем для всех несуществующих получателей локальных доменов (типа чтобы
> не дать спамеру инфы о том, существует ли такой получатель) появилась у
> меня мысль написать в лист о работе со спамтрапами средствами паровоза.
>> адреса получателей, являющиеся spamtrap'ами, указываются в access-rcpt
> (в site/conf переменная confCHECK_RCPT_ACCESS должна содержать значение,
> отличное от `NO').
>> итак:
>> 1. на этапе RCPT TO ответить 5xx, залистить хост в DNSBL, письмо будет
> доставлено получателям, адреса которых были указаны раньше адреса
> spamtrap'а:
>spamtrap на corvax.kiev.ua : submit_rbl reject : User unknown : Host
> sending message to spamtrap blacklisted
>> 2. на этапе RCPT TO ответить 5xx, залистить хост в DNSBL, письмо не
> будет доставлено остальным получателям, клиенту будет возвращена ошибка
> 5xx в ответ на команду DATA (до получения тела письма):
>spamtrap на corvax.kiev.ua : submit_rbl reject reject_all : User unknown :
> Host sending message to spamtrap blacklisted
>> 3. на этапе RCPT TO ответить 5xx, залистить хост в DNSBL, если до
> указания адреса spamtrap'ы были указаны другие адреса получателей,
> письмо будет доставлено в карантин:
>spamtrap на corvax.kiev.ua : submit_rbl reject quarantine_other : User
> unknown : Host sending message to spamtrap blacklisted
>> 4. после приема письма ответить 5xx, залистить хост в DNSBL, содержимое
> письма отправить на автообучение spamassassin'у:
>spamtrap на corvax.kiev.ua : submit_rbl quarantine reject : User unknown :
> Host sending message to spamtrap blacklisted
>> 5. после приема письма ответить 250, залистить хост в DNSBL, содержимое
> письма отправить на автообучение spamassassin'у:
>spamtrap на corvax.kiev.ua : submit_rbl quarantine : User unknown : Host
> sending message to spamtrap blacklisted
>>> действие submit_rbl доступно пользователям enterprise версии паровоза. в
> двух последних вариантах необязательно использовать submit_rbl.
прошу обратить внимание, что ранее при использовании действия quarantine
в карантин доставлялись письма для остальных получателей данного письма.
обычно quarantine использовалось одновременно с reject
сейчас данное действите переименовано в quarantine_other
при использовании действия quarantine письмо доставляется в катантин.
если при этом было также указано действие reject, то клиенту
возвращается 550 после data.
в случае использования quarantine одновременно с reject также необходимо
устанавливать значение confFAKE_REJECT равным `YES'. я обнаружил, что и
на моих серверах не везде это так. посему, учитывая, что кода в конфиг
добавляется при этом немного, значение по умолчанию для confFAKE_REJECT
изменено с `NO' на `YES'
> для вариантов 4 и 5 необходимо также в site/system_filter_top настроить
> доставку копий писем для автообучения bayes'ового фильтра spamassassin'а
> (либо любого другого статистического фильтра):
вот поправленный вариант:
if $h_X-Quarantine-Rcpt: matches "Host sending message to spamtrap
blacklisted" then
if
not $h_X-Spam-Report: contains "BAYES_99"
and not $h_X-Spam-Status: contains "autolearn=spam"
and not $h_X-Spam-Report: contains "FUZZY_OCR"
then
logwrite "$tod_log $message_id saved for learning; original
recipients: $recipients"
unseen save /var/vmail/localhost/admin/.spam.sa-learn-spam/ 640
endif
endif
кроме исправления недостающий "$h_" в начале названия переменной с
именем поля добавлены проверки на максимальную оценку bayes фильтра
spamassassin'а, флаг автообучения и оценки FuzzyOCR плагина
> после matches должны быть указана подстрока, которая в файле access-rcpt
> указана после сообщения smtp клиенту. это же сообщение будет выведено в
> файл протокола exim'а.
>> доставлять вообщение необходимо в каталог, специфичный для используемого
> вами статистического фильтра.
>> можно доставлять в этот каталоге не копию письма, а оригинал. тогда
> unseen нужно просто заменить на seen.
>> если в каталог для обучения доставляется копия письма, то оригинал будет
> доставлен в каталог, указанный в confSYSTEM_FILTER_QUARANTINE_DIR
> (подкаталог rcpt). это описано в site/system_filter_quarantine_quarantined
далее, я обнаружил, что если при необходимости доставить письмо в
карантин для спамтрапного адреса просто пропустить проверку
существования локального пользователя (в противном случае пришлось бы
все спамтрапные адреса прописывать в списке локальных пользователей), то
часто письмо отвергается по ряду других признаков. поэтому пр
использовании действия quarantine для такого письма accept выполняется
сразу в acl_check_rcpt сразу при проверке, являтеся ли адрес спамтрапом
p. s. в качестве спамтрапа можно использовать и такую запись в access-rcpt:
\N^[\da-f]{8}\.\d{3,7}@\N : submit_rbl reject quarantine : User unknown
: Host sending message to spamtrap blacklisted
видимо, это ошибка в каком-то спамомете. ибо под данный регексп обычно
попают части Message-ID до символа "@". цифирек после точки обычно
бывает 7. видел вариант с 3-мя и 4-мя цифрами.
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 32418694 nic-handle: CRV2-RIPE, CRV-UANIC