kondybas: (Default)
[personal profile] kondybas

В одном из подшефных хозяйств обнаружился неприятный косяк в конфигах - закомментированные строки вызова скрипта дефолтного сортировщика писем. Ну, то-есть, письмо приходило, опознавалось, как спам, но оргвыводы из этого не делались - письмо клалось в инбокс, независимо от результатов анализа.

Лажа, что и говорить. Смутило то, что за месяц езды на этом косяке никто из подшефного хозяйства не пожаловался. Пришлось лезть в логи...

А там суровая и прямая, как дверь, статистика: из каждой тысячи входящих спам-писем до спам-ассассина и байес-анализатора доходили единицы - остальное резалось "на взлете" нехитрым конфигом МТА и парой самоделок. Эти единицы проскочившего спама воспринимались клиентами, как естественные и допустимые фальш-негативы. При этом я принципиально не использую грейлистинг, DNSBL и прочие чудовищные порождения кибернэтике.

Если быть точным, то на брутто-тонну почты приходится 95.6% режектов, 3.9% годных писем и около 0.3% спама, из которых фальш-негативов менее 0.01%...

А вы говорите - гугломейл.

(no subject)

Date: 17 Feb 2010 04:37 (UTC)
From: [identity profile] azcoder.livejournal.com
А можно конфиг глянуть? Для самообразования.

(no subject)

Date: 17 Feb 2010 11:24 (UTC)
From: [identity profile] kondybas.livejournal.com
Да там все тривиально. Простая логика подсказывает, что ни один спаморассыльщик не станет работать по честному - спалится и забанят. Во вторых, ни один спаморассыльщик не может соблюсти все RFC, а в них явно написано, что SMTP не имеет ограничений по скорости ни сверху, ни снизу. Одного этого достаточно, чтобы спамера вычислить и дать отлуп.

Приходит соединение на мой 25 порт. Я делаю 10 сек паузу, прежде, чем ответить. Ни один нормальный МТА не станет слать ХЕЛО, пока принимающая сторона не подаст признаки жизни. А спамеру ждать некогда, ему нужно мильён писем разослать. Пришло хело раньше, чем я сказал "220" - нафиг, без размышлений. Это коннект. Потом ресипт. Принял реквизиты - хело, хостнейм, хостадрес, сендера, получателя - начинаю проверять.

Первым делом - SPF. Все сети с динамическими адресами ICANN обязал настроить Sender Policy Framework. Т.е. в ДНС прописано, что вот эти адреса не имеют права SMTP напрямую, а только через релей провайдера. Стукнулся напрямую - нафиг без раздумий. Но SPF еще не все настроили.

Поэтому дальше начинается чекпойнт с начислением очков.

Проверяем резолв - 3/4 спама рассылается с машин, у которых хостнейм не соответствует хостадресу и наоборот - этим сразу карма -30. Правда, бывают случаи разные, вроде кривой настройки ДНС у отправителя. Но пусть лучше отправитель почешется, чем я буду дыру открывать.

Потом проверяем собсно хостнейм. Например, 121-247-252-148.dynamic.pune.vsnl.net.in
Если хостнейм длиннее 25 символов ИЛИ содержит более 5 цифр ИЛИ содержит более 4 точек-тире - карма -20.

Затем беремся за сендера. Домен сендера не соответствует хосту - -20 к карме. Слишком длинное имя - карма -10. Вообще пустое имя (допускается RFC) - карма -10.

Затем получатели. Более 3 получателей - карма -10. За каждого получателя не в нашем домене -10. За каждого несуществующего получателя в нашем домене -10.

Затем прогоняем реквизиты по списку регэкспов. За каждое попадание -20 кармы.

Затем прогоняем по списку убогих, которые не в состоянии настроить почту, но с которыми все равно приходится работать - этим +1000 кармы. Хоть они и не заслуживают.

Теперь берем насчитанную карму, если она меньше нуля - переводим ее в секунды, и ждем. Чем больше косяков в реквизитах, тем выше шанс, что отправитель не выдержит столь драматической паузы и свалит. Если отправитель не свалил - смотрим, сколько у него кармы, и если она меньше некоторого порога (у меня -50) - ждем еще минуту из вредности, после чего отправителя режектим по 550 Tempfail.

Главное, что все это еще ДО того, как отправитель начнет передавать тело письма. И режется при этом 90-95% спама. Без грейлистинга, без черных списков.

Потом письмо всасывается и отдается спамассассину. В СА включен байес и AWL. Фальш-позитивы и фальш-негативы ежесуточно прогоняются через sa-learn. Фальш-негативов примерно 1 на 100 писем, дошедших до СА, фальш-позитивов - примерно 1 на 400.

Отакоеот.

(no subject)

Date: 17 Feb 2010 13:14 (UTC)
From: [identity profile] azcoder.livejournal.com
А сколько у тебя одновременных коннектов при этом висит?
Просто у меня дофига получается, а на VDS ограничение по количеству одновременно открытых сокетов :(

(no subject)

Date: 17 Feb 2010 15:04 (UTC)
From: [identity profile] kondybas.livejournal.com
Коннектов у меня немного, не больше 15-20 одновременно - на 25 порту. Всего, конечно, бывает по разному. Потому что еще прокси, и р2р через нат. Но больше 3к открытых тцп-сессий не бывает.