Запретить пересылку спама с помощью Postfix (при локальной доставке в папку нежелательной почты)

У нас есть довольно стандартная установка Postfix/Amavis, где мы используем Dovecot LDA для локальной доставки почты. Amavis передал спам, и мы используем Sieve, чтобы отправить его в папку "Спам" пользователя.

Проблема в том, что почта, помеченная нашим Amavis как спам, не должна пересылаться на внешний адрес. Я не вижу, как этого добиться.

Я нашел некоторые ссылки на Postfix header_checks, но они обрабатываются процессом очистки, который происходит перед проверкой Amavis. Пересылка вроде идет так:

Dec 13 23:13:32 mail postfix/smtpd[14405]: connect from ...
Dec 13 23:13:32 mail postfix/smtpd[14405]: Anonymous TLS connection established from ... SSLv3 with cipher AES128-SHA (128/128 bits)
Dec 13 23:13:32 mail postfix/smtpd[14405]: 5659141F35: client=..., sasl_method=PLAIN, sasl_username=test.piet@...
Dec 13 23:13:32 mail postfix/cleanup[14251]: 5659141F35: message-id=<etPan.52ab868c.74b0dc51.355@Rajka.local>
Dec 13 23:13:32 mail postfix/qmgr[13623]: 5659141F35: from=<test.piet@...>, size=1701, nrcpt=1 (queue active)
Dec 13 23:13:32 mail postfix/smtpd[14405]: disconnect from ...
Dec 13 23:13:37 mail postfix/smtpd[14358]: connect from localhost[127.0.0.1]
Dec 13 23:13:37 mail postfix/smtpd[14358]: ACF4F42260: client=localhost[127.0.0.1]
Dec 13 23:13:37 mail postfix/cleanup[14251]: ACF4F42260: message-id=<etPan.52ab868c.74b0dc51.355@Rajka.local>
Dec 13 23:13:37 mail postfix/smtpd[14358]: disconnect from localhost[127.0.0.1]
Dec 13 23:13:37 mail postfix/qmgr[13623]: ACF4F42260: from=<test.piet@...>, size=2408, nrcpt=1 (queue active)
Dec 13 23:13:37 mail amavis[11530]: (11530-14) Passed SPAM, [188.142.56.16] [188.142.56.16] <test.piet@...> -> <mark.ruys@...>, Message-ID: <etPan.52ab868c.74b0dc51.355@Rajka.local>, mail_id: iTVFrnGF7RaS, Hits: 999.001, size: 1701, queued_as: ACF4F42260, 5305 ms
Dec 13 23:13:37 mail postfix/smtp[14253]: 5659141F35: to=<mark.ruys@...>, orig_to=<mark@...>, relay=127.0.0.1[127.0.0.1]:10024, delay=5.4, delays=0.11/0/0/5.3, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as ACF4F42260)
Dec 13 23:13:37 mail postfix/qmgr[13623]: 5659141F35: removed
Dec 13 23:13:37 mail postfix/smtp[14414]: Trusted TLS connection established to gmail-smtp-in.l.google.com[173.194.65.26]:25: TLSv1.1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)
Dec 13 23:13:38 mail postfix/smtp[14414]: ACF4F42260: to=<mark.ruys@...>, relay=gmail-smtp-in.l.google.com[173.194.65.26]:25, delay=0.84, delays=0/0.02/0.08/0.73, dsn=2.0.0, status=sent (250 2.0.0 OK 1386972818 f8si3542819eep.162 - gsmtp)
Dec 13 23:13:38 mail postfix/qmgr[13623]: ACF4F42260: removed

1 ответ

Решение

Общее решение

Если у вас есть другой сервер, то решение было тривиальным. Предположительно, другое поле называется second.example.com. На вашей оригинальной коробке, установите в main.cf ретранслятор на second.example.com

relayhost = [second.example.com]:25

В second.example.com установите header_checks чтобы проверить, является ли электронная почта вероятным спамом, либо проверив слово СПАМ в вашей теме, либо проверив оценку спама в заголовке. Для этого примера я буду использовать метод предметной проверки. Синтаксис header_checks:

/^Subject: \[SPAM\]/ DISCARD

Готово. Теперь электронная почта псевдонимов будет проходить через second.example.com и будет отброшена при появлении спама.


Если у вас нет другого сервера, то вероятным вариантом является дополнительная настройка smtpd демон в master.cf или Postfix множественных экземпляров.

Дополнительный smtpd Daemon

статус: не работает

Идея заключается в добавлении нового smtpd для прослушивания другого порта и переопределения конфигурации для header_checks и relayhost. В main.cf добавлять relayhost Конфигурация для другого демона smtpd.

relayhost = [127.0.0.1]:12225

Определить в master.cf и переопределить header_checks проверять спам-сообщения и сообщения на почту relayhost поэтому он не зацикливается на себе.

[127.0.0.1]:12225    inet  n       -       n       -       -       smtpd
   -o header_checks=pcre:/etc/postfix/killspam
   -o relayhost=

К сожалению, это не работает. Согласно man 8 smtpd, smtpd молча отказывается от параметра, отличного от указанного на этой странице руководства. Таким образом, он по-прежнему использует старую конфигурацию в main.cf.

Postfix нескольких экземпляров

статус: работает

Идея заключается в настройке одного экземпляра по умолчанию для обработки входящих писем, а другого - для обработки исходящих писем, как описано выше. Я не даю вам подробностей, но вы должны настроить некоторые параметры для запуска второго экземпляра. Затем добавьте дополнительную конфигурацию как пустую relayhost а также header_checks,

Другие вопросы по тегам