[Exim-users] кривое helo

66 views
Skip to first unread message

Alexander Titaev

unread,
Jun 15, 2021, 5:04:35 AM6/15/21
to Exim MTA на русском
Здравствуйте, .

Гайзы, как на такое реагируете?

nor...@support.reg.ru H=support.reg.ru (otrs-dc1) [31.31.205.141] P=esmtps X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no S=23078 DKIM=reg.ru id=1623720807.841600.66...@otrs.reg.ru

или вот

H=(serv-site1.localdomain) [185.183.174.114] F=<mins...@MINSTROYRF.ru>
inetnum: 185.183.174.0 - 185.183.175.255
netname: RSNET
descr: Federal Guard Service of the Russian Federation

--
С уважением,
Alexander mailto:t...@irk.ru


_______________________________________________
Exim-users mailing list
Exim-...@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Le...@lena.kiev.ua

unread,
Jun 15, 2021, 5:11:27 AM6/15/21
to Exim MTA на русском
> как на такое реагируете?

На greylisting. Селективный. Такой HELO - одна из причин.

Vladimir Sharun

unread,
Jun 15, 2021, 7:26:45 AM6/15/21
to Exim MTA на русском
Они пройдут его.

15 червня 2021, 12:11:29, від le...@lena.kiev.ua:

Alexander Sheiko

unread,
Jun 15, 2021, 8:18:15 AM6/15/21
to Exim MTA на русском
2021-06-15 12:03 GMT+03:00, Alexander Titaev <t...@irk.ru>:

> Гайзы, как на такое реагируете?

Проверка на наличие HELO, проверка на наличие точки, проверка на
всякие локалдомены, проверка, что HELO не IP, проверка на наличие
букв, проверка на длину, проверка на соответствие HELO [IP], проверка
на динамические хосты. Если HELO нет, то дальше не проверяем и т.п.
Накидываем баллы и решаем уже интегрально, что делать.

--
Alexander Sheiko

Le...@lena.kiev.ua

unread,
Jun 15, 2021, 1:31:33 PM6/15/21
to Exim MTA на русском
> > На greylisting. Селективный. Такой HELO - одна из причин.

> Они пройдут его.

Пройдут. А разве это спам?

Vladimir Sharun

unread,
Jun 15, 2021, 1:40:47 PM6/15/21
to Exim MTA на русском
Привет,

Скорее это не спам. Я года два назад убрал все правила, которые возбуждаются на хело: в основном фолс-позитивы.

15 червня 2021, 20:31:37, від le...@lena.kiev.ua:

Alexander Titaev

unread,
Jun 16, 2021, 2:43:14 AM6/16/21
to Exim MTA на русском
Здравствуйте, Vladimir.

Вы писали 16 июня 2021 г., 1:40:19:

тут то и проблема, это не спам. Но есть вагон спама, с кривым helo и механизмом повторной доставки через N минут. У меня
тоже стоит для такого greylisting, а то что прошло я отправлял в spamtrap на прикорм ассасина. Но вот тут вижу две
крупных конторы, неозаботивщихся правильной настройкой MTA. nic.ru в этом ряду особо забавен...

>> Они пройдут его.

--
С уважением,
Alexander mailto:t...@irk.ru

Vladimir Sharun

unread,
Jun 16, 2021, 3:05:17 AM6/16/21
to Exim MTA на русском
Привет,

Значит больше эта тема (разделять по хело) не работает. Много чего поотваливалось за последние 5-6 лет: грейлистинг больше не работает например.


16 червня 2021, 09:43:19, від "Alexander Titaev" <t...@irk.ru>:

Alexander Sheiko

unread,
Jun 16, 2021, 10:10:24 PM6/16/21
to Exim MTA на русском
15.06.2021, Vladimir Sharun<vladimi...@ukr.net> написал(а):

> Я года два назад убрал все правила, которые возбуждаются
> на хело: в основном фолс-позитивы.

Вопрос спорный, но я о другом - наличие кривого HELO является разумным
основанием, для более усиленной / ресурсоёмкой проверки и принятия
решения о приёме письма, на основании её интегральной оценки.

--
Alexander Sheiko

Le...@lena.kiev.ua

unread,
Jun 16, 2021, 11:27:31 PM6/16/21
to Exim MTA на русском
> наличие кривого HELO является разумным
> основанием, для более усиленной / ресурсоёмкой проверки

Да. Если проходит селективный greylisting, то у меня еще две проверки:
задержка (в надежде что бот отвалится)
и проверка существования ящика отправителя (verify=sender/callout),
вот как при такой проверке не влететь в черный список:

deny condition = ${if def:acl_c_grey_checked}
logwrite = passed greylisting helo - delaying \
${sg{$sender_rcvhost}{\N[\n\t]+\N}{\040}}
delay = 22s
logwrite = passed greylisting helo, endured delay \
${sg{$sender_rcvhost}{\N[\n\t]+\N}{\040}}
condition = ${if match{$sender_address_domain}{\N^[\w.-]+$\N}}
condition = ${if or{\
{bool{${lookup dnsdb{a=$sender_address_domain}{0}{1}}}}\
{!match{${readsocket{inet:$sender_address_domain:80}\
{GET / HTTP/1.0\r\nHost: $sender_address_domain\r\n\r\n}\
{4s:shutdown=no}{ }{socket failure}}}{UCEPROTECT-Network}}\
}}
!verify = sender/callout=10s,defer_ok

От ботов с кривым HELO еще помогает заблокировать Китай, если кто может себе
это позволить:

deny message = I don`t accept mail from China,HongKong,Taiwan, Korea, \
Vietnam because too many admins there do not care \
about outgoing spam. Your \
IP-address seems to belong to: $dnslist_text.
dnslists = zz.countries.nerd.dk=127.0.0.156,127.0.1.88,127.0.0.158,\
127.0.1.154,127.0.2.192

А кто не могут себе этого позволить, можно только для Китая задействовать
более агрессивные черные списки, добавив в этот же абзац:

message = rejected because $sender_host_address is in a black list \
at $dnslist_domain. $dnslist_text
dnslists = zen.spamhaus.org : bl.spamcop.net : dnsbl.sorbs.net : \
hostkarma.junkemailfilter.com=127.0.0.2,127.0.0.4

Mikhail Golub

unread,
Jun 17, 2021, 5:14:53 AM6/17/21
to exim-...@mailground.net
Я дропаю.

drop condition = ${if or {\
{!match{$sender_helo_name}{\\\.}}\
{match{$sender_helo_name}{\N^\.\N}}\
{isip{$sender_helo_name}}\

{match{$sender_helo_name}{\N^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\N}}\
}}


drop condition = ${if match_domain{$sender_helo_name}\

{$primary_hostname:+virtual_domains:+shared_mail_domains:*.domain:*.localdomain:static.vnpt.vn:\N^vps\d+\.com:^lfuzemail\.co$\N}
}

Шаровые почтовые сервисы именем домена не представляются.
Моими доменами тоже нечего предствляться.
Или localhost.localdomain ...

Ну и белые списки никто не отменял.
Или гос. контор, которые из-за отсутвия нормальных админов просто не
могут (или не хотят) решить проблему.


On 15.06.2021 12:03, Alexander Titaev wrote:
> Здравствуйте, .
>
> Гайзы, как на такое реагируете?
>
> nor...@support.reg.ru H=support.reg.ru (otrs-dc1) [31.31.205.141] P=esmtps X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no S=23078 DKIM=reg.ru id=1623720807.841600.66...@otrs.reg.ru
>
> или вот
>
> H=(serv-site1.localdomain) [185.183.174.114] F=<mins...@MINSTROYRF.ru>
> inetnum: 185.183.174.0 - 185.183.175.255
> netname: RSNET
> descr: Federal Guard Service of the Russian Federation
>

Victor Ustugov

unread,
Jun 17, 2021, 5:38:19 AM6/17/21
to Mikhail Golub
Mikhail Golub wrote on 17.06.2021 12:14:
> Я дропаю.
>
> drop condition = ${if or {\
>                     {!match{$sender_helo_name}{\\\.}}\
>                     {match{$sender_helo_name}{\N^\.\N}}\

таких helo вроде уже много лет не видно было.


>                     {isip{$sender_helo_name}}\
>
> {match{$sender_helo_name}{\N^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\N}}\

а литералы-то за что?


>                  }}
>
>
> drop condition  = ${if match_domain{$sender_helo_name}\
>
> {$primary_hostname:+virtual_domains:+shared_mail_domains:*.domain:*.localdomain:static.vnpt.vn:\N^vps\d+\.com:^lfuzemail\.co$\N}
> }
>
> Шаровые почтовые сервисы именем домена не представляются.

в ноябре-декабре 2014-го был случай, когда в течение четырёх недель как
минимум четыре сервера корпорации добра в helo использовали аргумент без
точки. причём одни и те же сервера использовали по несколько разных
значений.

например, mail-pd0-f193.google.com [209.85.192.193] использовал три
значения:

pdbfp1
pdev10
pdjy10

mail-pd0-f194.google.com [209.85.192.194] использовал тоже три значения,
причём два из них совпадали с helo рядом стоящего сервера:

pdbfp1
pdbft15
pdev10

и т. д.

наверняка они могли использовать и другие аргументы команды helo.
у меня сохранились только 19 писем, при доставке которых сервера google
так косячили.


> Моими доменами тоже нечего предствляться.
> Или localhost.localdomain ...
>
> Ну и белые списки никто не отменял.
> Или гос. контор, которые из-за отсутвия нормальных админов просто не
> могут (или не хотят) решить проблему.
>
>
> On 15.06.2021 12:03, Alexander Titaev wrote:
>> Здравствуйте, .
>>
>> Гайзы, как на такое реагируете?
>>
>> nor...@support.reg.ru H=support.reg.ru (otrs-dc1) [31.31.205.141]
>> P=esmtps X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no S=23078
>> DKIM=reg.ru id=1623720807.841600.66...@otrs.reg.ru
>>
>> или вот
>>
>> H=(serv-site1.localdomain) [185.183.174.114] F=<mins...@MINSTROYRF.ru>
>> inetnum:        185.183.174.0 - 185.183.175.255
>> netname:        RSNET
>> descr:          Federal Guard Service of the Russian Federation
>>
>
>
> _______________________________________________
> Exim-users mailing list
> Exim-...@mailground.net
> http://mailground.net/mailman/listinfo/exim-users
>


--
Best wishes
Victor Ustugov mailto:vic...@corvax.kiev.ua
JID: vic...@corvax.kiev.ua
GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc

Mikhail Golub

unread,
Jun 17, 2021, 5:53:03 AM6/17/21
to exim-...@mailground.net

On 17.06.2021 12:37, Victor Ustugov wrote:
> Mikhail Golub wrote on 17.06.2021 12:14:
>> Я дропаю.
>>
>> drop condition = ${if or {\
>>                     {!match{$sender_helo_name}{\\\.}}\
>>                     {match{$sender_helo_name}{\N^\.\N}}\
>
> таких helo вроде уже много лет не видно было.

Вот за сегодня без точки вообще, например.
H=(zg-0609c-44) [192.241.218.24]
H=(WIN-CLJ1B0GQ6JP) [104.167.223.4]
H=(User) [212.192.241.234]

С точкой в начале да, небыло. Но правило пусть будет, не мешает.

Все домашние ПК с вирусами представляются подобной ерундой.


>
>
>>                     {isip{$sender_helo_name}}\
>>
>> {match{$sender_helo_name}{\N^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\N}}\
>
> а литералы-то за что?

В свое время проверял - легитимных писем с таких хостов небыло.
Зато спама достаточно пытаются отправлять.

2021-06-17 00:02:15 [10227] H=(185.158.115.191) [176.195.149.65]
rejected EHLO or HELO 185.158.115.191: REJECTED: Invalid HELO
"185.158.115.191"
2021-06-17 00:02:27 [10248] H=([103.155.81.4]) [103.155.81.4] rejected
EHLO or HELO [103.155.81.4]: REJECTED: Invalid HELO "[103.155.81.4]"
2021-06-17 00:15:22 [10842] H=([154.57.200.200]) [154.57.200.200]
rejected EHLO or HELO [154.57.200.200]: REJECTED: Invalid HELO
"[154.57.200.200]"
2021-06-17 00:31:27 [11587] H=([127.0.0.1]) [190.119.249.155] rejected
EHLO or HELO [127.0.0.1]: REJECTED: Invalid HELO "[127.0.0.1]"

За сегодня по HELO было не принято только 49 писем.
Но это тоже результат.

Victor Ustugov

unread,
Jun 17, 2021, 6:01:01 AM6/17/21
to Mikhail Golub
Mikhail Golub wrote on 17.06.2021 12:52:

>>> Я дропаю.
>>>
>>> drop condition = ${if or {\
>>>                      {!match{$sender_helo_name}{\\\.}}\
>>>                      {match{$sender_helo_name}{\N^\.\N}}\
>>
>> таких helo вроде уже много лет не видно было.
>
> Вот за сегодня без точки вообще, например.
> H=(zg-0609c-44) [192.241.218.24]
> H=(WIN-CLJ1B0GQ6JP) [104.167.223.4]
> H=(User) [212.192.241.234]

и где тут helo с точкой в начале, как в регекспе, после которого было
написано о том, что таких helo давно не было?


> С точкой в начале да, небыло. Но правило пусть будет, не мешает.
>
> Все домашние ПК с вирусами представляются подобной ерундой.
>
>
>>>                      {isip{$sender_helo_name}}\
>>>
>>> {match{$sender_helo_name}{\N^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\N}}\
>>
>> а литералы-то за что?
>
> В свое время проверял - легитимных писем с таких хостов небыло.

ну... ясно...


> Зато спама достаточно пытаются отправлять.
>
> 2021-06-17 00:02:15 [10227] H=(185.158.115.191) [176.195.149.65]
> rejected EHLO or HELO 185.158.115.191: REJECTED: Invalid HELO
> "185.158.115.191"

это не литерал

> 2021-06-17 00:02:27 [10248] H=([103.155.81.4]) [103.155.81.4] rejected
> EHLO or HELO [103.155.81.4]: REJECTED: Invalid HELO "[103.155.81.4]"
> 2021-06-17 00:15:22 [10842] H=([154.57.200.200]) [154.57.200.200]
> rejected EHLO or HELO [154.57.200.200]: REJECTED: Invalid HELO
> "[154.57.200.200]"
> 2021-06-17 00:31:27 [11587] H=([127.0.0.1]) [190.119.249.155] rejected
> EHLO or HELO [127.0.0.1]: REJECTED: Invalid HELO "[127.0.0.1]"
>
> За сегодня по HELO было не принято только 49 писем.
> Но это тоже результат.

--
Best wishes
Victor Ustugov mailto:vic...@corvax.kiev.ua
JID: vic...@corvax.kiev.ua
GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc

Mikhail Golub

unread,
Jun 17, 2021, 6:46:45 AM6/17/21
to exim-...@mailground.net
Виктор, давайте не цеплятся к фразам буквально :)

On 17.06.2021 13:00, Victor Ustugov wrote:
>> Вот за сегодня без точки вообще, например.
>> H=(zg-0609c-44) [192.241.218.24]
>> H=(WIN-CLJ1B0GQ6JP) [104.167.223.4]
>> H=(User) [212.192.241.234]
>
> и где тут helo с точкой в начале, как в регекспе, после которого было
> написано о том, что таких helo давно не было?

Я привел пример, но не написал что "с точкой в начале".
А следующая же строчка "С точкой в начале да, небыло".

>
>
>> Зато спама достаточно пытаются отправлять.
>>
>> 2021-06-17 00:02:15 [10227] H=(185.158.115.191) [176.195.149.65]
>> rejected EHLO or HELO 185.158.115.191: REJECTED: Invalid HELO
>> "185.158.115.191"
>
> это не литерал

А я и не писал, что это литерал.
Просто приветствие в виде IP.
И, опять же, привел несколько примеров отказа в приеме на основе моих
правил.

>
>> 2021-06-17 00:02:27 [10248] H=([103.155.81.4]) [103.155.81.4] rejected
>> EHLO or HELO [103.155.81.4]: REJECTED: Invalid HELO "[103.155.81.4]"
>> 2021-06-17 00:15:22 [10842] H=([154.57.200.200]) [154.57.200.200]
>> rejected EHLO or HELO [154.57.200.200]: REJECTED: Invalid HELO
>> "[154.57.200.200]"
>> 2021-06-17 00:31:27 [11587] H=([127.0.0.1]) [190.119.249.155] rejected
>> EHLO or HELO [127.0.0.1]: REJECTED: Invalid HELO "[127.0.0.1]"
>>
>> За сегодня по HELO было не принято только 49 писем.
>> Но это тоже результат.
>
>

Alexander Sheiko

unread,
Jun 17, 2021, 11:04:48 AM6/17/21
to Exim MTA на русском
17.06.2021, Le...@lena.kiev.ua<Le...@lena.kiev.ua> написал(а):

> и проверка существования ящика отправителя (verify=sender/callout),
> вот как при такой проверке не влететь в черный список

Т.е. келлаут идёт только для тех хостов, в домене отправителя которых
есть веб сайт? А если сайта нет, то считать адрес отправителя
валидным?

> От ботов с кривым HELO еще помогает заблокировать Китай, если кто может себе
> это позволить

Я просто указал список "нормальных" стран, а на остальные немного
баллов накидываю, чтобы проверять их потом "с пристрастием".

> message = rejected because $sender_host_address is in a black list
> \
> at $dnslist_domain. $dnslist_text
> dnslists = zen.spamhaus.org : bl.spamcop.net : dnsbl.sorbs.net : \

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

Кстати, есть ресурс, который показывает наиболее эффективные, в данный
момент, DNSBL:

https://www.intra2net.com/en/support/antispam/index.php_sort=accuracy_order=desc.html

Что позволяет выбрать, штук пять наиболее актуальных из них и
проверять это, время от времени.

--
Alexander Sheiko

Le...@lena.kiev.ua

unread,
Jun 17, 2021, 11:29:55 AM6/17/21
to Exim MTA на русском
> > и проверка существования ящика отправителя (verify=sender/callout),
> > вот как при такой проверке не влететь в черный список
>
> Т.е. келлаут идёт только для тех хостов, в домене отправителя которых
> есть веб сайт? А если сайта нет, то считать адрес отправителя
> валидным?

Если адрес в домене, который отдали черному списку UCEprotect на spamtrap-ы,
то сайт есть, код его опознает и не пытается проверить адрес
(а то попадете в этот черный список). Случай весьма редкий, но неприятный.

А если сайта вообще нет (нет записи A)
или timeout или сайт не черного списка,
то идет callout.

Alexander Sheiko

unread,
Jun 17, 2021, 11:43:38 AM6/17/21
to Exim MTA на русском
17.06.2021, Le...@lena.kiev.ua<Le...@lena.kiev.ua> написал(а):

> Если адрес в домене, который отдали черному списку UCEprotect на spamtrap-ы,
> то сайт есть, код его опознает и не пытается проверить адрес

Ага, сразу было не понял, спасибо.

> А если сайта вообще нет (нет записи A)

В in.ua вон завели десятки пустых сайтов, в доменах, специально под
спам заведенных. Другими словами - наличие сайта в домене отправителя,
как бы - не показатель хорошего.

--
Alexander Sheiko

Alexander Sheiko

unread,
Jun 17, 2021, 6:36:12 PM6/17/21
to Exim MTA на русском
17.06.2021, Le...@lena.kiev.ua<Le...@lena.kiev.ua> написал(а):

> condition = ${if match{$sender_address_domain}{\N^[\w.-]+$\N}}
> condition = ${if or{\
> {bool{${lookup dnsdb{a=$sender_address_domain}{0}{1}}}}\
> {!match{${readsocket{inet:$sender_address_domain:80}\
> {GET / HTTP/1.0\r\nHost: $sender_address_domain\r\n\r\n}\
> {4s:shutdown=no}{ }{socket failure}}}{UCEPROTECT-Network}}\
> }}

Поставил такое, до правил келлаута:

drop message = Your host looks like spam sender
condition = ${if match{$sender_address_domain}{\N^[\w.-]+$\N}}
condition = ${if
match{${readsocket{inet:$sender_address_domain:80}\
{GET / HTTP/1.0\r\nHost:
$sender_address_domain\r\n\r\n}\
{4s:shutdown=no}{ }{socket
failure}}}{UCEPROTECT-Network}}

Ругается на Tainted filename for search: 'inet:example.com:80', exim-4.94.2.

Причина понятна - содержимое переменной $sender_address_domain может
быть стрёмным. Как Вы такое обходите?

--
Alexander Sheiko

Le...@lena.kiev.ua

unread,
Jun 18, 2021, 1:33:19 AM6/18/21
to Exim MTA на русском
> Ругается на Tainted filename for search: 'inet:example.com:80', exim-4.94.2.

Угу, ругается. А я и не замечала. :)
Тем не менее на первый взгляд callout работает:

2021-06-17 11:40:34 +0300 passed greylisting no hostname, endured delay [114.106.156.194] (helo=hotmail.com)
2021-06-17 11:40:34 +0300 Tainted filename for search: 'inet:hotmail.com:80'
2021-06-17 11:40:34 +0300 H=(hotmail.com) [114.106.156.194] sender verify fail for <bjcx...@hotmail.com>: hotmail-com.olc.protection.outlook.com [104.47.22.161] : SMTP error from remote mail server after RCPT TO:<bjcx...@hotmail.com>: 550 5.5.0 Requested action not taken: mailbox unavailable (S2017062302). [DB8EUR06FT019.eop-eur06.prod.protection.outlook.com]
2021-06-17 11:40:34 +0300 H=(hotmail.com) [114.106.156.194] F=<bjcx...@hotmail.com> rejected RCPT <Le...@lena.kiev.ua>: Sender verify failed

Но работает ли теперь на самом деле скачивание web-странички - надо
разбираться.
Впрочем, даже если работает (а вряд ли), ругань в paniclog - некрасиво.

> Причина понятна - содержимое переменной $sender_address_domain может
> быть стрёмным.

Поэтому я сначала проверяю $sender_address_domain на необычные символы:

condition = ${if match{$sender_address_domain}{\N^[\w.-]+$\N}}

Но новый Exim этого не понимает. :-/

Есть способ detaint (после собственной проверки на необычные символы!)
с использованием файла, содержащего одну строку из одного символа: звездочки.
Наверно придется сюда прикрутить.
Если никто не предложит идеи лучше.
В данном случае:

# echo '*' > /usr/local/etc/exim/detaint

${lookup{$sender_address_domain}lsearch*,ret=key{/usr/local/etc/exim/detaint}}

Описание этого способа в общем случае:

-----

You mean like this 'hack'?
https://jimbobmcgee.wordpress.com/2020/07/29/de-tainting-exim-configuration-variables/

TL;DR:
echo '*' >/etc/exim/detaint

DETAINTFILE = /etc/exim/detaint
BADCHARS = \N[^A-Za-z0-9_.-]+\N
SAFEDOMAIN = ${lookup{${sg{${domain:$h_from:}}{BADCHARS}{_}}}lsearch*,ret=key{DETAINTFILE}}

... Profit!

Victor Ustugov

unread,
Jun 18, 2021, 6:04:02 AM6/18/21
to Exim MTA на русском
Le...@lena.kiev.ua wrote on 17.06.2021 06:26:

> condition = ${if or{\
> {bool{${lookup dnsdb{a=$sender_address_domain}{0}{1}}}}\
> {!match{${readsocket{inet:$sender_address_domain:80}\
> {GET / HTTP/1.0\r\nHost: $sender_address_domain\r\n\r\n}\
> {4s:shutdown=no}{ }{socket failure}}}{UCEPROTECT-Network}}\
> }}

а можно пример одного-двух доменов, которые попадают под этот match?

хотелось бы посмотреть, как выглядит http ответ.


--
Best wishes
Victor Ustugov mailto:vic...@corvax.kiev.ua
JID: vic...@corvax.kiev.ua
GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc

Le...@lena.kiev.ua

unread,
Jun 18, 2021, 6:20:12 AM6/18/21
to Exim MTA на русском
> а можно пример одного-двух доменов, которые попадают под этот match?

А вот не помню. У меня был один случай, но сейчас я его не найду.

> хотелось бы посмотреть, как выглядит http ответ.

HTTP-header (это не тот header, про который дальше)
и тело, и кажется в <HEADER>...</HEADER> тела эта строка.
Возможно в метаданных, а не в тексте, поэтому не гуглится с ходу.

Victor Ustugov

unread,
Jun 18, 2021, 7:24:15 AM6/18/21
to exim-...@mailground.net
Le...@lena.kiev.ua wrote on 18.06.2021 13:19:
>> а можно пример одного-двух доменов, которые попадают под этот match?
>
> А вот не помню. У меня был один случай, но сейчас я его не найду.
>
>> хотелось бы посмотреть, как выглядит http ответ.
>
> HTTP-header (это не тот header, про который дальше)
> и тело, и кажется в <HEADER>...</HEADER> тела эта строка.
> Возможно в метаданных, а не в тексте, поэтому не гуглится с ходу.

я нашёл "UCEPROTECT-Network" только вот в таком виде:

<img alt="Warning for Spammers ! - Member of UCEPROTECT-Network"
src="http://www.uceprotect.net/uceprotect-warning.png" />

нашёл на странице http://www.le.com.ua/uk/article/11.html

т. е. не на http://le.com.ua/ (а в примере производился http запрос по A
записи домена с указанием названия домена в http заголовке запроса Host.
и даже не на https://www.le.com.ua/ (а возможные редиректы с без www на
с www не учтены) и даже не на https://le.com.ua/ или
https://www.le.com.ua/ (возможные редиректы с http на https тоже не
учтены), а на какой-то левой странице сайта, до которой ещё поди доберись.

далее - использование пробела в четвёртом параметре ${readsocket иногда
приводит к странным результатам.

простой пример:

# exim -be '${readsocket{inet:ukr.net:80}{GET / HTTP/1.0\r\nHost:
ukr.net\r\n\r\n}{4s:shutdown=no}{\n}{socket failure}}'
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 18 Jun 2021 11:16:35 GMT
Content-Type: text/html
Content-Length: 162
Connection: close
Location: http://www.ukr.net/

<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>


всё отлично.

теперь пробел:

# exim -be '${readsocket{inet:ukr.net:80}{GET / HTTP/1.0\r\nHost:
ukr.net\r\n\r\n}{4s:shutdown=no}{ }{socket failure}}'
</html>nter>nginx</center>anently</h1></center>d>


косяк этот воспроизводится стабильно на штатных результатах http
запросов с 301-ми редиректами nginx.
на большей части остальных ответов я не видел подобной каши в ответе.

исходя из всего вышеуказанного эффективность конструкции

condition = ${if or{\
{bool{${lookup dnsdb{a=$sender_address_domain}{0}{1}}}}\
{!match{${readsocket{inet:$sender_address_domain:80}\
{GET / HTTP/1.0\r\nHost: $sender_address_domain\r\n\r\n}\
{4s:shutdown=no}{ }{socket failure}}}{UCEPROTECT-Network}}\
}}

может оказаться заметно ниже ожидаемой.

вне зависимости, будет подстрока "UCEPROTECT-Network" указана в <head>
или <body>. а содержимое заголовков http ответов будет скорее всего
утеряно при использовании пробела в четвёртом параметре ${readsocket


--
Best wishes
Victor Ustugov mailto:vic...@corvax.kiev.ua
JID: vic...@corvax.kiev.ua
GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc

Alexander Sheiko

unread,
Jun 18, 2021, 8:04:04 AM6/18/21
to Exim MTA на русском
18.06.2021, Victor Ustugov<vic...@corvax.kiev.ua> написал(а):

> исходя из всего вышеуказанного эффективность конструкции
> может оказаться заметно ниже ожидаемой.

Тут ещё два вопроса висят в воздухе:

1. Почему в спамтрап домене вообще должен висеть веб сайт с подобной заглушкой..
2. В эпоху всеобщего помешательства на https, есть сомнения, что там
будет именно http сайт.

Текущий exim вроде как умеет лезть на https. Но это не отменяет
сомнения, вокруг всего этого.

ИМХО стоит посмотреть на обратный резолв таких доменов или на диапазон
адресов. Может там есть за что прицепиться. Примеры нужны.

--
Alexander Sheiko

Victor Ustugov

unread,
Jun 18, 2021, 8:13:06 AM6/18/21
to Alexander Sheiko
Alexander Sheiko wrote on 18.06.2021 15:03:

>> исходя из всего вышеуказанного эффективность конструкции
>> может оказаться заметно ниже ожидаемой.
>
> Тут ещё два вопроса висят в воздухе:
>
> 1. Почему в спамтрап домене вообще должен висеть веб сайт с подобной заглушкой..

никто никому ничего не должен.
и это не заглушка. по крайней мере то, на что я наткнулся, это не
заглушка, а просто бантик.


> 2. В эпоху всеобщего помешательства на https, есть сомнения, что там
> будет именно http сайт.

и что его адрес будет совпадать именно с названием домена (т. е. не
будет там www или чего-то другого) или вообще всё это будет на титульной
странице сайта.


> Текущий exim вроде как умеет лезть на https.

умеет. проверено на запросах к https://api.iptoasn.com/ сразу после
выхода 4.92


> Но это не отменяет
> сомнения, вокруг всего этого.
>
> ИМХО стоит посмотреть на обратный резолв таких доменов или на диапазон
> адресов. Может там есть за что прицепиться. Примеры нужны.

не факт, что получится за что-то зацепиться.

но факт, что без примеров невозможно сделать выводы об этом.


--
Best wishes
Victor Ustugov mailto:vic...@corvax.kiev.ua
JID: vic...@corvax.kiev.ua
GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc

Vladimir Sharun

unread,
Jun 18, 2021, 8:21:03 AM6/18/21
to Exim MTA на русском
Когда надоест, я вам покажу группировку, которая для таких вот как вы делает сайты полноценные шаблонами. Т.е. домен спаманул, смотришь, а там с первого раза иню не поймёшь, что это просто украден сайт и что он не имеет никакого отношения к домену, на котором он сидит.

Не выйдет и гуглом проверять - покупаются дохлые домены с сайтами из веб.архив и их используют для спама.

18 червня 2021, 15:13:07, від "Victor Ustugov" < vic...@corvax.kiev.ua >:

Victor Ustugov

unread,
Jun 18, 2021, 8:27:19 AM6/18/21
to Vladimir Sharun
Vladimir Sharun wrote on 18.06.2021 15:20:
> Когда надоест, я вам покажу группировку, которая для таких вот как вы
> делает сайты полноценные шаблонами. Т.е. домен спаманул, смотришь, а там
> с первого раза иню не поймёшь, что это просто украден сайт и что он не
> имеет никакого отношения к домену, на котором он сидит.
>
> Не выйдет и гуглом проверять - покупаются дохлые домены с сайтами из
> веб.архив и их используют для спама.

в данном случае речь не об этом. вообще не об этом.


> /18 червня 2021, 15:13:07, від "Victor Ustugov" <vic...@corvax.kiev.ua
> <mailto:vic...@corvax.kiev.ua>>: /

> JID: vic...@corvax.kiev.ua <mailto:vic...@corvax.kiev.ua>


> GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
>
>
> _______________________________________________
> Exim-users mailing list

> Exim-...@mailground.net <mailto:Exim-...@mailground.net>
> http://mailground.net/mailman/listinfo/exim-users

Alexander Sheiko

unread,
Jun 18, 2021, 8:47:19 AM6/18/21
to Exim MTA на русском
18.06.2021, Vladimir Sharun<vladimi...@ukr.net> написал(а):
> Когда надоест, я вам покажу группировку, которая для таких вот как вы

А для таких как Вы? Не находите, что это плохая формулировка...

В данном случае, шло просто исследование вопроса и новых вопросов
возникло, всё больше и больше.

Но есть и плюс - пример того, как дёргать и парсить страницы по
http(s). Непонятно только, что ставить в четвёртом параметре, как
верно было Виктор заметил.

--
Alexander Sheiko

Vladimir Sharun

unread,
Jun 18, 2021, 9:26:52 AM6/18/21
to Exim MTA на русском
Привет,

Сорри, я скорее неправильно понял контекст. Показалось что если у домена есть сайт/что угодно, то он нормальный, так вот нет, такое давно не работает, хотя года 4 назад работало, но тогда научились уже это обманывать.

Гугл рассказывал годы назад, что у них есть фермы, которые накликивают не спам или спам для набивания статистики.

Проблема в том, что почти ничего уже не работает. Любые одноклеточные методы без анализа корреляции писем между собой больше не работают.

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

Я например не знаю как бы я смог сам защитить один домен даже с сотнями получателей. А пропустить его через спец решение - уже легче.





18 червня 2021, 15:47:24, від "Alexander Sheiko" < ad...@univ.kiev.ua >:

Alexander Sheiko

unread,
Jun 18, 2021, 10:07:23 AM6/18/21
to Exim MTA на русском
18.06.2021, Vladimir Sharun<vladimi...@ukr.net> написал(а):

> Гугл рассказывал годы назад, что у них есть фермы, которые накликивают не спам
> или спам для набивания статистики.

Ну так они массово хостят почту, для самых разных пользователей. У
которых может быть диаметрально противоположное понимание спама. Это -
проблема всех массовых хостингов. Почта для какой-то конкретной
организации - уже проще, из-за близких критериев понимания спама,
специфики работы и типичных контактов пользователей.

> Я например не знаю как бы я смог сам защитить один домен даже с сотнями
> получателей. А пропустить его через спец решение - уже легче.

Проблема лишь в том, что для этого придётся отдавать всю переписку в
руки непонятно кому, что мало приемлемо, в некоторых случаях.

P.S. Сейчас стал популярным спам, прозвоном всех подряд номеров по
телефону, несколько лет назад такого нашествия не было. Но там хоть
можно отшибать звонки, от непонятно кого, для обычного личного
номера..

Victor Ustugov

unread,
Jun 18, 2021, 10:09:33 AM6/18/21
to Alexander Sheiko
Alexander Sheiko wrote on 18.06.2021 15:46:
> 18.06.2021, Vladimir Sharun<vladimi...@ukr.net> написал(а):
>> Когда надоест, я вам покажу группировку, которая для таких вот как вы
>
> А для таких как Вы? Не находите, что это плохая формулировка...
>
> В данном случае, шло просто исследование вопроса и новых вопросов
> возникло, всё больше и больше.
>
> Но есть и плюс - пример того, как дёргать и парсить страницы по
> http(s). Непонятно только, что ставить в четвёртом параметре, как
> верно было Виктор заметил.

\n

--
Best wishes
Victor Ustugov mailto:vic...@corvax.kiev.ua
JID: vic...@corvax.kiev.ua
GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc

Vladimir Sharun

unread,
Jun 18, 2021, 11:24:55 AM6/18/21
to Exim MTA на русском
Привет,

18 червня 2021, 17:07:29, від "Alexander Sheiko" <ad...@univ.kiev.ua>:

18.06.2021, Vladimir Sharun<vladimi...@ukr.net> написал(а):

> Гугл рассказывал годы назад, что у них есть фермы, которые накликивают не спам
> или спам для набивания статистики.

Ну так они массово хостят почту, для самых разных пользователей. У
которых может быть диаметрально противоположное понимание спама. Это -
проблема всех массовых хостингов. Почта для какой-то конкретной
организации - уже проще, из-за близких критериев понимания спама,
специфики работы и типичных контактов пользователей.

Когда строишь решение учитывая мнение пользователей, вот такие фермы могут инфлюэенсить всю систему.

Но если посмотреть, что люди кликают в спам - поплохеет :) Часто люди сами не замечают этого (думают, что если "в спам", то и последствий не будет в будущем), по-этому такой функционал он для оч про пользователей.

Они рассказывали каким образом потом научились отделять фермы от пользователей и таки продолжать использовать систему спам/не_спам для реакции.

> Я например не знаю как бы я смог сам защитить один домен даже с сотнями
> получателей. А пропустить его через спец решение - уже легче.

Проблема лишь в том, что для этого придётся отдавать всю переписку в
руки непонятно кому, что мало приемлемо, в некоторых случаях.

Ну это такое, "непонятно кому". Начнем с того, что мало кто контролирует MITM между почтовыми серверами.
Откуда знать, что перед тобой не стоит кто-то, кто через себя пропускает всю почту ? Я например сталкивался, когда траф их Харькова шел в Киев через РФ и были странные проблемы с некоторыми сообщениями :)

P.S. Сейчас стал популярным спам, прозвоном всех подряд номеров по
телефону, несколько лет назад такого нашествия не было. Но там хоть
можно отшибать звонки, от непонятно кого, для обычного личного
номера..

Гуглозвонилка дефолтная умеет детектировать спам-обзвоны.

Alexander Sheiko

unread,
Jun 18, 2021, 11:39:00 AM6/18/21
to Exim MTA на русском
18.06.2021, Vladimir Sharun<vladimi...@ukr.net> написал(а):

> Ну это такое, "непонятно кому". Начнем с того, что мало кто контролирует
> MITM между почтовыми серверами.
> Откуда знать, что перед тобой не стоит кто-то, кто через себя пропускает всю
> почту ?

Есть разница между "добровольно отдать прямо в лапы" и уже чья-то
сторонняя нехорошая деятельность. Хотя бы в том, что первые копаются в
почте почти легально и со всеми удобствами.

Vladimir Sharun

unread,
Jun 18, 2021, 12:01:43 PM6/18/21
<