Технологическое
16 Feb 2010 16:14В одном из подшефных хозяйств обнаружился неприятный косяк в конфигах - закомментированные строки вызова скрипта дефолтного сортировщика писем. Ну, то-есть, письмо приходило, опознавалось, как спам, но оргвыводы из этого не делались - письмо клалось в инбокс, независимо от результатов анализа.
Лажа, что и говорить. Смутило то, что за месяц езды на этом косяке никто из подшефного хозяйства не пожаловался. Пришлось лезть в логи...
А там суровая и прямая, как дверь, статистика: из каждой тысячи входящих спам-писем до спам-ассассина и байес-анализатора доходили единицы - остальное резалось "на взлете" нехитрым конфигом МТА и парой самоделок. Эти единицы проскочившего спама воспринимались клиентами, как естественные и допустимые фальш-негативы. При этом я принципиально не использую грейлистинг, DNSBL и прочие чудовищные порождения кибернэтике.
Если быть точным, то на брутто-тонну почты приходится 95.6% режектов, 3.9% годных писем и около 0.3% спама, из которых фальш-негативов менее 0.01%...
А вы говорите - гугломейл.
мьі нічєго ні панімаємм
Date: 16 Feb 2010 21:27 (UTC)Re: мьі нічєго ні панімаємм
Date: 16 Feb 2010 21:32 (UTC)Re: мьі нічєго ні панімаємм
Date: 16 Feb 2010 21:48 (UTC)збожеволі
збожевол
збожево
збожев
збоже
збож
збо
зб
з
я
ще
не!
Re: мьі нічєго ні панімаємм
Date: 16 Feb 2010 22:16 (UTC)(no subject)
Date: 17 Feb 2010 04:37 (UTC)(no subject)
Date: 17 Feb 2010 11:24 (UTC)Приходит соединение на мой 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)Просто у меня дофига получается, а на VDS ограничение по количеству одновременно открытых сокетов :(
(no subject)
Date: 17 Feb 2010 15:04 (UTC)