URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95042
[ Назад ]

Исходное сообщение
"postfix подделка отправителя"

Отправлено gryzwold , 26-Сен-13 16:29 
оброе время суток.

Проблема моя древняя как почтовая система в целом.
Есть сервер FreeBSD 9.1 и Postfix 2.9.5,1 на нём. Наш домен DOMAIN.RU.
Пришло письмо с "левого" домена EVIL.NET, сервер представился и передал письмо. Тут надо заметить что отправитель в конверте указан верный envelope-from="user@EVIL.NET", без обмана, поэтому почтовому серверу придраться не к чему, сервер представился EVIL.NET и юзер из этого домена. Идём дальше. А вот тут интересно в теле письма в поле FROM указан якобы шаш юзер (ivanov@DOMAIN.RU) и почтовый клиент (outlook) представляет его именно как Иванова, т.е. у конечного пользователя складывается ложное впечатление что ему пишет его коллега... С точки зрения транспортных правил всё верно, smtp заголовки верные, все проверки по restrict прошли, spf отработал, подмены нашего домена нет, однако на лицо нестыковочка...


Received: from relay.DOMAIN.RU (192.168.0.254) by s170001.nle.int (192.168.0.1)
with Microsoft SMTP Server id 8.3.327.1; Thu, 26 Sep 2013 12:02:11 +0400
Received: from relay.DOMAIN.RU (localhost [127.0.0.1])   by relay.DOMAIN.RU
(Postfix) with ESMTP id 3CEE045C4E     for <USER@serv.DOMAIN.RU>; Thu, 26
Sep 2013 11:55:56 +0400 (MSK)
X-Virus-Scanned: by Amavisd-New and ClamAV at relay.DOMAIN.RU
Received: from relay.DOMAIN.RU ([127.0.0.1])     by relay.DOMAIN.RU (relay.DOMAIN.RU
[127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9BcmPSS4T86G for
<USER@serv.DOMAIN.RU>;  Thu, 26 Sep 2013 11:55:56 +0400 (MSK)
Received-SPF: none (EVIL.NET: No applicable sender policy available) receiver=relay.DOMAIN.RU; identity=mailfrom; envelope-from="user@EVIL.NET"; he
Received: from montreal.EVIL.NET (montreal.EVIL.NET [192.95.33.60]) by
relay.DOMAIN.RU (Postfix) with ESMTP id 0960245C7A      for <USER@DOMAIN.RU>;
Thu, 26 Sep 2013 11:55:42 +0400 (MSK)
Received: by montreal.EVIL.NET (Postfix, from userid 1000)    id 4731F1007AD;
Thu, 26 Sep 2013 08:02:34 +0000 (UTC)
From: Иванов <ivanov@DOMAIN.RU>
To: USER@DOMAIN.RU
Subject: EVIL.NET Notification
Message-ID: <20130926080234.4731F1007AD@montreal.EVIL.NET>
Date: Thu, 26 Sep 2013 08:02:34 +0000
MIME-Version: 1.0
Content-Type: text/plain
Return-Path: user@EVIL.NET


Использование проверки header_checks, с использовании регулярного выражения #!/envelope-from.*@DOMAIN\.RU/ reject в Postfix ничего не даёт, т.к. он проверяет за раз одну строку, а нам надо ввести следующую логику:
ЕСЛИ
From содержит *@DOMAIN\.RU
ТО проверить envelope-from
ЕСЛИ
envelope-from содержит *@DOMAIN\.RU
ТО ОК
ИНАЧЕ REJECT

Как бы это реализовать, подскажите пожалуйста?


До компьютерной эры с этим делом по другому было, приходит тебе письмо, ты сначала конверт видишь, а уж потом письмо. А вот теперь MTA агент сразу письмо показывает, а чтобы конверт посмотреть надо в заголовки лезть и конечно не все туда смотрят.


Содержание

Сообщения в этом обсуждении
"postfix подделка отправителя"
Отправлено Денис , 26-Сен-13 17:08 
наверное нужно будет скриптик написать и использовать его в
Access Policy Delegation

>[оверквотинг удален]
> ТО проверить envelope-from
> ЕСЛИ
> envelope-from содержит *@DOMAIN\.RU
> ТО ОК
> ИНАЧЕ REJECT
> Как бы это реализовать, подскажите пожалуйста?
> До компьютерной эры с этим делом по другому было, приходит тебе письмо,
> ты сначала конверт видишь, а уж потом письмо. А вот теперь
> MTA агент сразу письмо показывает, а чтобы конверт посмотреть надо в
> заголовки лезть и конечно не все туда смотрят.


"postfix подделка отправителя"
Отправлено gryzwold , 26-Сен-13 17:09 
>[оверквотинг удален]
>> ТО проверить envelope-from
>> ЕСЛИ
>> envelope-from содержит *@DOMAIN\.RU
>> ТО ОК
>> ИНАЧЕ REJECT
>> Как бы это реализовать, подскажите пожалуйста?
>> До компьютерной эры с этим делом по другому было, приходит тебе письмо,
>> ты сначала конверт видишь, а уж потом письмо. А вот теперь
>> MTA агент сразу письмо показывает, а чтобы конверт посмотреть надо в
>> заголовки лезть и конечно не все туда смотрят.

А можно поподробнее?


"postfix подделка отправителя"
Отправлено Денис , 27-Сен-13 06:34 
>[оверквотинг удален]
>>> ЕСЛИ
>>> envelope-from содержит *@DOMAIN\.RU
>>> ТО ОК
>>> ИНАЧЕ REJECT
>>> Как бы это реализовать, подскажите пожалуйста?
>>> До компьютерной эры с этим делом по другому было, приходит тебе письмо,
>>> ты сначала конверт видишь, а уж потом письмо. А вот теперь
>>> MTA агент сразу письмо показывает, а чтобы конверт посмотреть надо в
>>> заголовки лезть и конечно не все туда смотрят.
> А можно поподробнее?

вот здесь поподробнее,
http://www.postfix.org/SMTPD_POLICY_README.html
даже с примером
если коротко, то постфикс передают скрипту набор заголовков, скрипт их анализирует и говорит OK REJECT ну или еще чего нибудь
Хотя я похоже погорячился, заголовки From: из тела письма не передаются

Можно вот что попробовать:
сделать проверку  header_checks envelope-from.*@DOMAIN\.RU/ reject , но повесить ее только на адрес смотрящий  в интернет


"postfix подделка отправителя"
Отправлено mesmeridze , 26-Сен-13 17:21 
Может побороться другим способом:
1. Заставить постфикс решать IP отправителя в прямом и обратном направлении.
2. Включить постгрей.

"postfix подделка отправителя"
Отправлено gryzwold , 26-Сен-13 17:51 
> Может побороться другим способом:
> 1. Заставить постфикс решать IP отправителя в прямом и обратном направлении.

Проверки включены. В том то и дело. Что и прямая зона и обратная зона отправителя валидна. И обратный адресс есть. А потом в поле From уже после всех проверок можно вставить другой адрес, который постфикс уже не проверяет.
header_checks проверяет только одну строку за раз. И там не получается сравнивать разные строки.


"postfix подделка отправителя"
Отправлено gryzwold , 26-Сен-13 18:07 
>> Может побороться другим способом:
>> 1. Заставить постфикс решать IP отправителя в прямом и обратном направлении.
> Проверки включены. В том то и дело. Что и прямая зона и
> обратная зона отправителя валидна. И обратный адресс есть. А потом в
> поле From уже после всех проверок можно вставить другой адрес, который
> постфикс уже не проверяет.
> header_checks проверяет только одну строку за раз. И там не получается сравнивать
> разные строки.

postgrey не помогает. Проверил. Другие письма попадают в серый список. Поддельное на ура пришло


"postfix подделка отправителя"
Отправлено mesmeridze , 26-Сен-13 18:14 
>>> Может побороться другим способом:
>>> 1. Заставить постфикс решать IP отправителя в прямом и обратном направлении.
>> Проверки включены. В том то и дело. Что и прямая зона и
>> обратная зона отправителя валидна. И обратный адресс есть. А потом в
>> поле From уже после всех проверок можно вставить другой адрес, который
>> постфикс уже не проверяет.
>> header_checks проверяет только одну строку за раз. И там не получается сравнивать
>> разные строки.
> postgrey не помогает. Проверил. Другие письма попадают в серый список. Поддельное на
> ура пришло

У постгрея есть "белые" списки, его нужно настроить так, чтобы он проверял все письма отправленне с любого домена, но в белом списке оставить свои IP


"postfix подделка отправителя"
Отправлено mesmeridze , 26-Сен-13 18:11 
>> Может побороться другим способом:
>> 1. Заставить постфикс решать IP отправителя в прямом и обратном направлении.
> Проверки включены. В том то и дело. Что и прямая зона и
> обратная зона отправителя валидна. И обратный адресс есть. А потом в
> поле From уже после всех проверок можно вставить другой адрес, который
> постфикс уже не проверяет.
> header_checks проверяет только одну строку за раз. И там не получается сравнивать
> разные строки.

А что спамер передает в поле MAIL FROM: можно ли запретить ему отправлять почту с домена DOMAIN.RU ?



"postfix подделка отправителя"
Отправлено gryzwold , 27-Сен-13 10:40 
> А что спамер передает в поле MAIL FROM: можно ли запретить ему
> отправлять почту с домена DOMAIN.RU ?

DOMAIN.RU тут для примера. Банить всех не вариант. Хочется грамотно сравнивать заголовки в разных строках и на основании этого принимать решение, спамер или нет


"postfix подделка отправителя"
Отправлено Z0termaNN , 26-Сен-13 18:12 
мне таки кажется, что придется проверять либо при помощи запихивания сообщения в фильтр,
либо milter написать.