Отправить спам в специальную папку, используя постфикс

9

У меня есть постфиксный сервер, на котором запущены amavis и SpamAssassin для фильтрации спама. Сообщения, которые определяются как спам, выглядят следующим образом при доставке в Maildir пользователя:

От Tom @ Tom-Mint Пт 15 марта 01:46:20 2013
Обратный путь: <tom @ tom-mint>
X-Original-To: tom@my-server.com
Доставлено-To: tom@my-server.com
X-Virus-Scanned: Debian amavisd-new на my-server.com
X-Spam-Flag: ДА
X-Spam-Score: 6,463
X-Spam-Level: ******
X-Spam-Status: Да, оценка = 6,463 tagged_above = 2 требуется = 6,31
    тесты = [DRUGS_ERECTILE = 2,221, FH_FROMEML_NOTLD = 0,18,
    FSL_HELO_NON_FQDN_1 = 0,001, HELO_NO_DOMAIN = 0,001, RCVD_IN_PBL = 3,558,
    RDNS_DYNAMIC = 0,363, TO_NO_BRKTS_DYNIP = 0,139] autolearn = нет
Дата: пятница, 15 марта 2013 г. 01:46:19 -0400
To: tom@my-server.com
Тема: *** СПАМ *** привет
Пользователь-агент: фамильная почта mailx 12.5 20/20/10
Тип контента: текстовый / простой; Charset = US-ASCII
От: Том @ Том-Минт (Том)
Статус: RO

купить виагру!

Обратите особое внимание на тему, с которой предшествует ***SPAM***, и X-Spam-Flag: YESзаголовок.

Какой лучший способ настроить postfixхранение этих сообщений в специальной папке нежелательной почты?

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

Почтовые каталоги - это все Maildir.

Том Мартинал
источник
Похоже, может быть необходимо использовать что-то вроде maildrop . Я все еще ищу способ сделать это с помощью стандартного MDA Postfix, чтобы я мог хранить псевдонимы и другие функции Postfix с минимальными трудностями. Я отправлю свой ответ, когда я приду с ним.
Том Мартенал

Ответы:

8

При беглом прочтении справочной страницы local (8) локального агента доставки postfix не видно ни намека на этот тип возможностей - как и ожидалось. Задачи такого типа обычно выгружаются в procmail (возможно, через директиву mailbox_command), которая может справиться с задачей, которую вы описываете, управляя раковиной на стороне. Недостатком procmail является формат файла конфигурации, а также гибкость и множество примеров, которые легко найти. Если что-то лучше, чем procmail недавно появился, я не знаю.

Однако за мои деньги, даже если бы я нашел способ заставить MTA делать то, что ты хочешь, я бы не пошел по этому пути, потому что у такого рода сортировки почты есть способ взбалтывать и не иметь MTA (о чем я знаю: возможно, обмен делает, кто знает) может сделать хорошую работу, будучи гибким обработчиком сообщений / агентом доставки.

Это рецепт procmail, который будет делать то, что вы хотите, основываясь на содержимом единственного заголовка (где DEFAULT - каталог доставки, часто что-то вроде $ HOME / Mail /):

:0
* ^X-Spam-Flag: YES
$DEFAULT/.Spam/

Редактировать: (Предполагается, что формат почтового ящика maildir, как отмечено в комментарии ниже. Пропустить последний слеш при использовании mbox)

Инопланетная форма жизни
источник
$DEFAULT/не обязательно. Полезно для удобства чтения. Также обратите внимание, что добавление косой черты в конце создаст Maildir, при использовании Mbox затем опустите косую черту (см .: unix.stackexchange.com/a/132658/241396 ).
Яри
5

Как сказал Alien Life Form, это работа для procmail. Это не замена для локального агента доставки почтового сервера; это отдельный процесс, который будет вызван после того, как MDA выполнит свою работу.

Каждый пользователь, который хочет, чтобы procmail сортировал свою почту, должен будет создать файл с именем .forwardв своем домашнем каталоге. Этот файл должен содержать следующее:

"|exec /usr/local/bin/procmail || exit 75"

в комплекте со "знаком и все.

ALF уже опубликовал основной .procmailфайл, который будет сортировать почту, помеченную спамом, в отдельную папку.

Дженни Д
источник
1
Обратите внимание, что в некоторых случаях procmail находится в / usr / bin / procmail, чтобы выяснить, где он находится в вашей системеwhich procmail
Malfist
4

Какой у вас агент доставки почты (см. Main.cf mailbox_command)? Если MDA является dovecot, он поддерживает стандарт Sieve IETF (rfc5228), который может сделать намного больше, чем procmail, не открывая возможные дыры в безопасности. НЕ связывайте procmail с postfix / dovecot, сито полностью интегрировано. Если вы используете Courier, тогда procmail - правильное решение. Тем не менее, вы найдете программы Sieve / Sievec от Pigeonhole, которые будут быстрее и чище.

Ниже приведен простой скрипт-сито для распознавания вашего спам-заголовка и помещения сообщения в корзину.

require "fileinto";

if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**"  
{
  fileinto "Trash";
  stop;
}
dturvene
источник