> Я могу ошибаться, так что извиняйте, если я не прав. Я так
> понимаю, что ваш метод - исключительно байсовский анализ (ес-но правильная настройка
> сервера прежде всего)? Т.е. предлагаете обучать, обучать и еще раз обучать? Нет, конечно. Сначала экзим выполняет серию проверок на стадиях CONN и RCPT. Здесь проверяется невовремя поданное хело, корректность этого хело, корректность резолвинга имени хоста, наличие в имени хоста нехороших слов, структура имени (цифры-точки-тире), количество получателей, принадлежность энвелоп-ту моему домену и так далее. За каждую проваленную проверку начисляются штрафные баллы.
Если баллов набирается больше нуля, за каждый балл отправитель будет ждать одну секунду перед переходом к фазе DATA. Редкий спамбот способен прождать более минуты на этом этапе. Отстреляв все хедеры, он начинает без команды лить тело письма - и на этом палится. Или просто сбрасывает соединение, не выдержав ожидания.
Если баллов набирается более максимума, отправитель прождет положенное время, но вместо фазы DATA получит "552 - Internal Server Error". Если дождется, конечно.
К этому моменту отсеклось уже 90% спама. Без грейлистинга, без ДНСБЛ.
Оставшихся 10% входящих писем уходят на СА/байес. Штатная функция начисления баллов байесом заточена под почтовый поток общего пользования. В случае корпоративной почты с узкой специализацией ее нужно слегка модифицировать - задрать значения BAYES_95 до 90% от порога срабатывания СА и BAYES_99 - до 200% Больше 100% потому, что у СА есть правила с отрицательными весами, и письмо, которое байес однозначно определяет, как спам, по совокупности правил может быть пропущено.
И вот после этого всего начинается автоматическое/ручное дообучение байеса. На специфичной для конторы почте.
> В итоге это приводит к тому, что в байесовской базе, как мне
> кажется, творится полный бардак и со времен кол-во спама только
> увеличивается, приходится грохать базу и начинать заново.
Если налажен фидбек с юзерами, которые могут помечать письма, как "СПАМ" и "НЕ-СПАМ", то этой проблемы не возникнет в принципе. Если в базе байеса появится сигнатура, по которой письмо будет помечено, как "СПАМ", и потом это письмо придет на "sa-learn --ham", то сигнатуре будет снижен вес. В дальнейшем письма по этой сигнатуре реже станут попадать в "СПАМ", а при повторных пометках, как "НЕ СПАМ", вес сигнатуры в базе уменьшится до нуля. А сигнатуры с весом, меньшим порогового, удаляются автоматически.
Во всяком случае, за год на хосте, который в сутки получает 3-4к входящих смтп-соединений, картина получилась такая:
/usr/local/etc/mail/bayes > ls -lU
total 12836
-rw------- 1 spamd spamd 2625536 Jan 23 2010 awl
-rw------- 1 spamd spamd 101232 Mar 3 00:06 bayes_journal
-rw------- 1 spamd spamd 10207232 Jan 23 2010 bayes_seen
-rw------- 1 spamd spamd 5046272 Feb 26 16:37 bayes_toks