У меня тонна входящего спама, который маскируется под меня, но отправитель находится в произвольном домене спамера. например
Return-Path: <admin@aiuw.com>
... (stuff elided, etc.)
Received: from [static-93.0.72.177-ttvi.com.br] (unknown [177.72.0.158])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
(Authenticated sender: admin@aiuw.com)
by Server22.lejj.com (Postfix) with ESMTPSA id B527943151
...
To: iain@example.com
From: <iain@example.com>
Отправителем postfix является admin@aiuw.com, но к тому времени, когда он передается Cyrus-IMAP, кажется, что он был отправлен мной, и это означает, что он попадает в почтовый ящик моего признанного отправителя.
Я хотел бы заблокировать всю входящую почту из моего домена (исходящая использует TLS + SMTP AUTH и обходит проверки, поэтому я не беспокоюсь о блокировке себя), но поскольку адрес отправителя не из моего домена, я могу ' Для этого используются правила отказа отправителя или SPF - они действуют на aiuw.com, а не на example.com.
Я предполагаю, что нет способа заставить Postfix обрабатывать строку From как часть информации конверта. Это правильно, или я что-то упускаю?
Если нет, то как насчет фильтра между Postfix и Cyrus-IMAP, который может захватывать адреса отправителя и отправителя и отклонять несоответствия? Или, наконец, способ проверки адреса отправителя в скрипте Sieve, хотя я думаю, что это быстро станет некрасивым.
Приносим извинения, если это дубликат. Я нашел несколько совпадений, но все, что я видел, было основано на отправителе конверта, а не на От кого.
Я сам провел некоторое исследование по этому поводу и нашел несколько способов противодействовать этому с точки зрения "предварительной почты".
Если ваш получающий SMTP-сервер - это те же серверы, на которые пользователи отправляют свою исходящую почту, то сначала у нас есть header_checks
postfix config. Если мы установим его на pcre:/etc/postfix/header_checks
, Он будет проверять каждую строку заголовка на соответствие регулярным выражениям в этом файле. Вот что я в этом файле:
/^(From|Sender|Reply-To)\: .*\@domain1\.com/ REJECT stop impersonating me
/^(From|Sender|Reply-To)\: .*\@domain2\.com/ REJECT stop impersonating me
Поскольку мой SMTP-сервер получает почту для domain1.com
и domain2.com
, он отклонит всю входящую почту с этих доменов. Хотя вы хотите сделать это только для порта SMTP, (25) не для порта отправки (587), иначе это предотвратит законное использование вашего домена. Для этого отредактируйте свой master.cf
, и добавить -o header_checks=regexp:/etc/postfix/header_checks
под линией, которая начинается с smtp
. Вы также можете указать другой header_checks
файл под вашим submission
настройки порта для применения различных правил заголовков для аутентифицированных пользователей.
Основная проблема с header_checks
заключается в том, что он проверяет только один заголовок за раз. Другое решение - использовать content_filter
, который просматривает сообщение в целом. Я впервые обнаружил это, пытаясь уменьшить From:
мошенничество заголовка для все входящая почта, которая привела меня к этот аккуратный сценарий bash. Хотя вы можете использовать это в качестве отправной точки для создания любых фильтров по вашему выбору, поскольку возможность разумно изучить все электронное письмо перед доставкой (при условии, что его содержимое не зашифровано) - очень мощная вещь.
Надеюсь, моя информация поможет, возможно, вместе мы сможем создать идеальный инструмент для отказа от мошенничества :)
Думаю, я наконец-то смогу ответить на свой вопрос. Я все еще хотел бы захватить и отправителя конверта, и отправителя сообщения, чтобы отклонить сообщение в транзакции SMTP, и если кто-нибудь может предложить лучшее решение, я буду признателен.
Однако отправители конвертов и сообщений доступны для фильтрации, поэтому есть способ отбросить входящий спам:
require ["envelope", "fileinto"];
if address :domain "From" "example.org" {
if not envelope :domain "From" "example.org" {
fileinto "Trash";
stop;
}
}
Поэтому, если электронная почта заявляет, что она из моего домена, но адрес в конверте не является моим доменом, она отбрасывается.
Документация на конверт, который я использовал: https://support.tigertech.net/sieve