Народ, как лучше левые отбойки замочить на Exim'e ?Стандартная тема, когда спам с подставным отправителем прорывается и мы спамим отбойками в ответ.
> Народ, как лучше левые отбойки замочить на Exim'e ?Как обычно:
1. проверяем реверс лукап
2. проверяем спф
3. проверяем по локальному блеклисту
4. проверяем по байесу
Если все проверки пройдены и получатель отсутствует - баунсим.
Если хоть одна проверка завалена - скармливаем добычу байесу.
>> Народ, как лучше левые отбойки замочить на Exim'e ?
> Как обычно:Не, я больше не про защиту спрашиваю, а про конкретно отбойки: "Mail delivery failed: returning message to sender"
Интересуют рекомендации для почтовых шлюзов (не конечные почтовые серверы).
Почтовые шлюзы должны иметь мягкие условия на приём писем, соответственно есть некоторая проблема с отбойками.
> Не, я больше не про защиту спрашиваю, а про конкретно отбойки: "Mail
> delivery failed: returning message to sender"А я о чем? Баунсы не может слать хост без птра, баунсы не может слать хост, не включенный в спф (если он есть), баунс не должен содержать контента, распознаваемого байесом, как спам.
> Интересуют рекомендации для почтовых шлюзов (не конечные почтовые серверы).
Нет разницы.
> Почтовые шлюзы должны иметь мягкие условия на приём писем
Не должны. Вышеописанный перечень шлюзы должны отрабатывать так же, как и конечные МТА доменов. Чем раньше будет зарублен спам - тем лучше.
>> Почтовые шлюзы должны иметь мягкие условия на приём писем
> Не должны.Ясно-понятно :)
> Если хоть одна проверка завалена - скармливаем добычу байесу.Жёстко у вас...
> Жёстко у вас...Все перечисленные критерии безусловны.
Не имеет смысла разбираться с сообщениями, которые пришли с адреса, у которого даже ПТР-записи нет. 146% гарантия спама.
Не имеет смысла разбираться с сообщениями, которые пришли с адреса, не указанного в СПФ-записи домена, если она есть. СПФ-запись для того и придумана, чтобы я мог без сомнений и размышлений классифицировать такие письма, как спам.
Не имеет смысла разбираться с сообщениями, которые дают на байесе 95-99% вероятность спамовости.Все это прямиком отправляется в sa-learn, чтобы еще более лучше повысить распознание спама байесом. А кто так не делает - тот и себе и юзерам злобный буратино.
> Все перечисленные критерии безусловны.
> Не имеет смысла разбираться с сообщениями, которые пришли с адреса, у которого
> даже ПТР-записи нет. 146% гарантия спама.Верно.
> Не имеет смысла разбираться с сообщениями, которые пришли с адреса, не указанного
> в СПФ-записи домена, если она есть. СПФ-запись для того и придумана,
> чтобы я мог без сомнений и размышлений классифицировать такие письма, как
> спам.Строго говоря, там на конце ~all пишут как раз для сомнений и размышлений. Косячная настройка SPF мне попадалась не раз и не два. Особенно это касается всяких автоматических уведомляторов. Один известный интернет-магазин этим периодически грешит. Писал им — чинят, а через какое-то время всё по-новой.
> Не имеет смысла разбираться с сообщениями, которые дают на байесе 95-99% вероятность
> спамовости.Баес, хоть и крайне редко, но ошибается. На днях тут у нас он чуть не похерил Очень Важное Письмо™ — выдал 99%. Хорошо, что у нас все критерии условны, и админ избежал начальственной кары.
> Все это прямиком отправляется в sa-learn, чтобы еще более лучше повысить распознание
> спама байесом. А кто так не делает - тот и себе
> и юзерам злобный буратино.Вот я, злобный буратино, так не делаю :-) У нас каждый спамерский признак добавляет сообщению очки, а вывод делается по сумме. Причём спамовость имеет аж четыре градации: не спам — юзеру во «Входящие», возможно спам — юзеру в «Спам», скорее всего спам — в специальную резервацию, точно спам — в отвал. Резервация периодически просматривается, потом скармливается баесу.
Сообщений у нас, правда, не так много — сотни две-три в день. За большие масштабы не скажу, не имел дела.
> Не имеет смысла разбираться с сообщениями, которые пришли с адреса, не указанного
> в СПФ-записи домена, если она есть.Собственно, моя реплика больше относилась к этой части. При таком подходе у вас в качестве спама будет рассматриваться и большая часть списков рассылки. Ну и, попутно, в этой связи как не вспомнить о DMARC.
> спамерский признак добавляет сообщению очки, а вывод делается по сумме
Я придерживаюсь примерно того же подхода учитывая историческую репутацию отправителя.
> Ну и, попутно, в этой связи как не вспомнить о DMARC.А никак не вспомнить. У 4/5 хостов даже спф не настроен, не говоря уж о дким, а дмарк - дело нескорого будущего. Пока что его наличие/полезность в пределах статпогрешности.
>> спамерский признак добавляет сообщению очки, а вывод делается по сумме
> Я придерживаюсь примерно того же подхода учитывая историческую репутацию отправителя.Я игрался с начислением очков в ацлях экзима лет десять тому. Но потом просто подбил статистику по четырем миллионам сессий за год, и понял, что все это очень здорово, но совершенно не нужно. Реверс-лукап, маленький блеклист, байес. Отдельно обращаю внимание - никакого грейлистинга, никаких днсблов.
Моя статистика следующая: 85% спама режется по реверс-лукапу. Вот тупо нет даже динамического провайдерского имени вида 123-234-adls.345.comcast.net. Из оставшихся 15% еще 14.5% (95%) режется по локальному регулярно освежаемому черному списку регекспов/доменов/айпих, составляемому по топ-100 срабатываний байеса.
Вот выхлоп скрипта, который раз в неделю парсит лог СА, подбивает статистику по злостным рассыльщикам спама, и автоматом формирует список регекспов в формате lsearch экзима:
26473 ^.*jafeto.*lsearch ГОРАЗДО быстрее байеса, и этот блеклист можно рассматривать просто как кеширование результатов байеса. Этот список обычно в длину имеет 7-8 тыс строк, и, как я уже говорил, отлавливает не менее 95% спама, который пришел с хостов, имеющих ПТР-запись.
25961 ^.*\d+[-\.]\d+[-\.]\d+.*
23828 ^.*hqitope.*
22817 ^.*zemonik.*
19869 ^.*lcruzer.*
18738 ^.*hiolom.*
16209 ^.*jmtier.*
14013 ^.*fiolon.*
13860 ^.*billingers.*
13642 ^.*jokiolo.*
11173 ^.*gravirai.*
10921 ^.*jizana.*
10334 ^.*partamus.*
9662 ^.*frankryk.*
7528 ^.*bizneroa.*
6931 ^.*forbes.*
6646 ^.*informark.*
6405 ^.*geremans.*
6026 ^.*mclarens.*
5763 ^.*holihik.*
5669 ^.*interboxe.*
5647 ^.*fendirtoon.*
5623 ^.*gomelins.*
5623 ^.*emlone.*
5481 ^.*freewares.*
5317 ^.*timareg.*
.......И вот только оставшихся 0.5% проверяются байесом, которому кривая селективности подкручена так, что результат "BAYES_99" означает, по сути, "BAYES_9999". Чтобы было понятно - у меня база токенов байеса имеет размер 32 мегабайта. Ну, если это о чем-то говорит, конечно.
Спасибо, подход, в общих чертах, понятный.
Неплохо может помочь TXREP из SpamAssassin в качестве исторического критерия для классификации на спам ещё на стадии RCPT.
Насчёт DMARC я наблюдаю что он внедрён на многих популярных сервисах, включая и крупнейшие публичные почтовые, и неплохо работает. Но проблема с листами рассылки налицо.> И вот только оставшихся 0.5% проверяются байесом, которому кривая селективности подкручена
У меня где-то в районе менее 2% до него доходит.
> так, что результат "BAYES_99" означает, по сути, "BAYES_9999".
Я своему правилу BAYES_999 поставил высокий бал так, что получившие его редко попадают в папку "Спам" пользователя, но могут попадать в служебную для возможного разбора полётов.
> Чтобы было понятно - у меня база токенов байеса имеет размер 32 мегабайта. Ну,
> если это о чем-то говорит, конечно.Вообще не много. У меня bayes_token в районе 4 млн. записей при размере менее 500 Mb (InnoDB).
> У 4/5 хостов даже спф не настроенНу не знаю, статистика с моего сервера за последние два года:
851 fail
435 neutral
4496 none
4068 pass
466 permerror
1702 softfail
126 temperror
Цифры - кол-во уникальных доменов с данным результатом проверки SPF. Как можно видеть, none составляет менее половины суммы остальных.А если брать только за последний месяц, то видно что прогресс идёт:
36 fail
34 neutral
287 none
668 pass
35 permerror
122 softfail
1 temperrorКонечно, немалую часть pass составляют спамеры, но ведь они не ради продвижения SPF прописывают его, а потому что вынуждены.
Спасибо! Весьма познавательно.Всё же очень интересно: как вы поступаете с softfail в SPF?
> Я игрался с начислением очков в ацлях экзима лет десять тому. Но
> потом просто подбил статистику по четырем миллионам сессий за год, и
> понял, что все это очень здорово, но совершенно не нужно.Судя по количеству сессий, у вас почтовый трафик на порядок (а то и на полтора) больше, чем у нас. С увеличением выборки вероятностный фильтр становится всё более надёжным, это понятно. У нас же флуктуации, похоже, неизбежны.
В общем, дорастём до вас, поглядим.
> Реверс-лукап, маленький блеклист, байес. Отдельно обращаю внимание - никакого грейлистинга, никаких днсблов.
От серых списков я тоже давно уже отказался — больше помех, чем пользы. DNSBL пока есть, но очков за них даю по минимуму. Наверное, тоже скоро откажусь совсем.
> Моя статистика следующая: 85% спама режется по реверс-лукапу. Вот тупо нет даже
> динамического провайдерского имени вида 123-234-adls.345.comcast.net.Странно, у нас таких не больше 30%. Наверное, местные особенности.
> 23828 ^.*hqitope.*
Разве такое выражение не эквивалентно простому «hqitope»?
> Чтобы было понятно - у меня база токенов байеса имеет размер 32 мегабайта. Ну,
> если это о чем-то говорит, конечно.[Приложил линейку к своей] Говорит :-)
> Народ, как лучше левые отбойки замочить на Exim'e ?
> Стандартная тема, когда спам с подставным отправителем прорывается и мы спамим отбойками
> в ответ.Не принимать письмо если не прошёл sender callout ещё до команды DATA. Например на этапе check_rcpt. В этом случае не придётся отсылать отскок.
Что-то на основе
require verify = sender/callout=10s,defer_ok,random,no_cache
message = $sender_address does not exist
только не для локальных доменов.