Postfix - blocare de la În loc de expeditor

Am o mulțime de spam primit care se maschează ca fiind trimis de mine, dar are un expeditor la un domeniu arbitrar de spam. ex.

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>

Expeditorul pentru postfix este (ascuns), dar până când este predat lui Cyrus-IMAP, acesta pare să fie trimis de mine și asta înseamnă că este depus în căsuța de e-mail a expeditorului recunoscut.

Aș dori pentru a bloca toate mesajele primite de pe domeniul meu (ieșirea utilizează TLS + SMTP AUTH și ocolește verificările, așa că nu mă îngrijorează blocarea mea), dar din moment ce adresa expeditorului nu este din domeniul meu, nu pot face asta folosind regulile de respingere a expeditorului sau SPF - acestea acționează pe aiuw.com, nu pe example.com.

Bănuiesc că nu există nicio modalitate de a face ca Postfix să gestioneze linia From ca parte a informațiilor despre plic. Este corect sau îmi lipsește ceva?

Dacă nu, ce zici de un filtru între Postfix și Cyrus-IMAP care ar putea capta atât expeditorul, cât și adresele From și să respingă nepotrivirile? Sau, în cele din urmă, o modalitate de a verifica adresa expeditorului într-un script Sieve, deși cred că acest lucru ar deveni urât rapid. Am găsit mai multe accesări, dar tot ce am văzut se bazează pe expeditorul plicului, nu din.

4
задан 9 January 2019 в 01:24
2 ответа

Я сам провел некоторое исследование по этому поводу и нашел несколько способов атаковать это с " pre-inbox "угол.

Если ваш получающий SMTP-сервер - это те же серверы, на которые пользователи отправляют свою исходящую почту, то сначала у нас есть конфигурация постфикса header_checks . Если мы установим его на 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 в настройках порта отправки , чтобы применить различные правила заголовка для аутентифицированных пользователей.

Основная проблема с header_checks заключается в том, что он проверяет только один заголовок за раз. Другое решение - использовать content_filter , который просматривает сообщение в целом. Я впервые обнаружил это, пытаясь предотвратить подделку заголовков From: для всей входящей почты, что привело меня к этому аккуратному сценарию bash . Хотя вы можете использовать это в качестве отправной точки для создания любых фильтров по вашему выбору, поскольку возможность интеллектуального изучения всего электронного письма перед доставкой (при условии, что его содержимое не зашифровано) - очень мощная вещь.

Hope my информация помогает, возможно, вместе мы сможем создать идеальный инструмент для отказа от мошенничества :)

2
ответ дан 3 December 2019 в 03:39

Думаю, я наконец могу ответить на свой собственный вопрос. Я все еще хотел бы захватить и отправителя конверта, и отправителя сообщения, чтобы отклонить сообщение в транзакции 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[1256 visible

1
ответ дан 3 December 2019 в 03:39

Теги

Похожие вопросы