Проверка HELO

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
flot
рядовой
Сообщения: 26
Зарегистрирован: 2009-02-14 9:17:16

Проверка HELO

Непрочитанное сообщение flot » 2009-02-23 15:27:20

В exim есть проверка

Код: Выделить всё

verify = helo
По моим наблюдениям проверка слишком жесткая. Например если система представилась не своим хостом, а скажем своим доменом, то проверка уже не проходит. Таким образом, данная проверка будет рубить слишком много почты. Сейчас я использую вместо нее проверку

Код: Выделить всё

  warn    set acl_m1    = ${lookup dnsdb{defer_never,a=$sender_helo_name}{$value}{false}}

  deny    message       = "HELO is not hostname (lookup failed)"
          condition     = ${if eq{$acl_m1}{false}{true}{false}}
но это пока спамеры не поумнеют.
Можно конечно проверять у домена MX, но далеко не факт, что сервер, осужествляющий отправку обязан быть в MX. Может стоит проверять на соответствие хостнейма заявленному домену? Но как тут быть с теми, кто обратную DNS запись не хочет (не может) прописать? Проверять первые 2-3 цифры IP адреса вообще абсурд... Кто что предложит?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
f_andrey
майор
Сообщения: 2644
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: Проверка HELO

Непрочитанное сообщение f_andrey » 2009-02-23 15:48:19

flot писал(а):Кто что предложит?
А чего тут думать, надо просто выполнять RFC, а с теми кто их не соблюдает, либо забить на них, либо внести в белый список, если они все таки важны как клиенты.
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Проверка HELO

Непрочитанное сообщение Laa » 2009-02-23 23:38:34

Здравствуйте!
Я тоже отказался от verify=helo, яркий пример тому vkontakte.ru !

Код: Выделить всё

$ host -t a vkontakte.ru
vkontakte.ru has address 93.186.224.233
vkontakte.ru has address 93.186.224.234
vkontakte.ru has address 93.186.224.235
vkontakte.ru has address 93.186.224.236
vkontakte.ru has address 93.186.224.237
vkontakte.ru has address 93.186.224.238
vkontakte.ru has address 93.186.224.239
vkontakte.ru has address 93.186.225.6
vkontakte.ru has address 93.186.225.211
vkontakte.ru has address 93.186.225.212
vkontakte.ru has address 93.186.226.4
vkontakte.ru has address 93.186.226.5
vkontakte.ru has address 93.186.226.129
vkontakte.ru has address 93.186.226.130
vkontakte.ru has address 93.186.227.123
vkontakte.ru has address 93.186.227.124
vkontakte.ru has address 93.186.227.125
vkontakte.ru has address 93.186.227.126
 $ host 93.186.224.233
233.224.186.93.in-addr.arpa domain name pointer vkontakte.ru.
 $ host 93.186.226.130
130.226.186.93.in-addr.arpa domain name pointer srv130-226.vkontakte.ru.
 $
Я проверяю просто наличие helo/ehlo, проверяю синтаксис. Если введен [x.x.x.x], то сверяю с адресом откуда коннект и тд. Сверяю helo/ehlo со своими доменами. Их много таких проверок и они общедоступны.

В вашем случае не нужно в ДНС запрашивать A-запись, если helo в квадратных скобках, или если одно слово и тд. Зачем лишний раз дергать ДНС, если очевидно и так, что с ДНС ответа не будет???

Просто так, по одному срабатыванию проверки не рублю, мол, кривое helo -- в лес. Нет. Я накидываю балы. Проверяю другими acl. И при успешном наборе более некого кол-ва балов даю отлуп. Или даю грейлист для тех, кто набрал балов, но не достаточно много для отлупа. Для тех кто вообще не набрал балов -- принимаю без разговоров!
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

flot
рядовой
Сообщения: 26
Зарегистрирован: 2009-02-14 9:17:16

Re: Проверка HELO

Непрочитанное сообщение flot » 2009-02-24 0:03:34

Полная проверка у меня такая:

Код: Выделить всё

  deny    message       = "HELO is not hostname or IP address"
          condition     = ${if match{$sender_helo_name}\
                            {\N\.\N}{no}{yes}}

  deny    message       = "HELO is IP address, sorry"
          condition     = ${if match{$sender_helo_name}\
                            {\N^[\[\]\d\.]+$\N}{yes}{no}}

  warn    set acl_m1    = ${lookup dnsdb{defer_never,a=$sender_helo_name}{$value}{false}}

  deny    message       = "HELO is not hostname (lookup failed)"
#         condition     = ${if !match{$acl_m1}{$sender_host_address}{true}{false}}
          condition     = ${if eq{$acl_m1}{false}{true}{false}}
Потом уже остальные проверки. Баллы мне не интересны. Я пытаюсь воткнуть такие проверки, которые почти не имеют побочных эффектов. К сожалению проверка PTR записей в DNS режет кучу нужных мне писем, а verify=helo подразумевает проверку по PTR.

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Проверка HELO

Непрочитанное сообщение Laa » 2009-02-24 0:04:02

Ой, я почему-то на ночь глядя еще кое-что, весьма важное упустил. :-D

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

Опишу подробней.
Шлет ваш пользователь письмо. Оно доставляется на удаленный сервер, у которого кривое helo, этот удаленный сервер решает выполнить sender verify для e-mail вашего пользователя. Дает helo кривое, потом mail from:<> (+может он еще успеет rcpt to: ввести), а вы ему говорите DENY. А он потом вам говорит: "не удалось проверить отправителя, письмо от вас не принимаю". Через x-минут к вам прибегает ваш же клиент и начинает орать что его письмо не доставлено.... как вам такой исход дел?

NULL-sender-а можно и нужно проверять до predata не давая отлупа (или давая отлуп в явно клинических случаях), и только на стадии predata/data решать как с ним быть. Отбивать его раньше чревато.... :oops:
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

flot
рядовой
Сообщения: 26
Зарегистрирован: 2009-02-14 9:17:16

Re: Проверка HELO

Непрочитанное сообщение flot » 2009-02-24 0:09:36

Ну обычно админы, у которых хватает разума воткнуть проверку обратным вызовом в состоянии сделать правильное HELO. А получить кучу спама от отправителя <> тоже не хочется...

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

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Проверка HELO

Непрочитанное сообщение Laa » 2009-02-24 0:10:06

flot писал(а): Потом уже остальные проверки. Баллы мне не интересны. Я пытаюсь воткнуть такие проверки, которые почти не имеют побочных эффектов. К сожалению проверка PTR записей в DNS режет кучу нужных мне писем, а verify=helo подразумевает проверку по PTR.
Я выделил два противоречия IMHO. :oops:
Как раз немножко баллов за PTR, плюс немножко баллов по каждой из нескольких RBL и еще за что-то еще -- и вот точный критерий что письмо принимать не стоит.

Таких случаев, когда получается "к сожалению...режет кучу нужных писем" много и немножко баллов за каждую такую казалось бы незначительную ошибку дают вам уверенность, что при некотором кол-ве баллов можно уверенно считать что это спам. :good: или увернно отправлять на грейлист.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Проверка HELO

Непрочитанное сообщение Laa » 2009-02-24 0:14:47

flot писал(а):Ну обычно админы, у которых хватает разума воткнуть проверку обратным вызовом в состоянии сделать правильное HELO. А получить кучу спама от отправителя <> тоже не хочется...

Кстати мне не жалко привести полный конфиг, только придется долго его комментировать почему так а не иначе написано :)
Я сегодня одному товарищу настроил Kerio Mail Server, так там чтобы включить проверку отправителя нужно тыкнуть мышой в одну галочку. Не более. Это может сделать любой. Таких почтовых серверов хватает. Многие форумы шлют напрямую письма регистрации. Письмо может быть вам (вашему отправителю) же важно, чтобы его удаленная сторона получила. Такое может быть раз в год, но за это можно здорово отгрести от начальства.

Мало-ли бывает, я знаю офигенно крутую контору в рамках страны у которой mdaemon с достаточно кривыми настройками. Уверен, вы бы их отбивали и не знали, что от них что-то не получили. Узнают такое бывает от руководства....... :-o
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Проверка HELO

Непрочитанное сообщение Laa » 2009-02-24 0:17:17

flot писал(а):Кстати мне не жалко привести полный конфиг, только придется долго его комментировать почему так а не иначе написано :)
не-е, конфиг не надо. Или кому надо? :Search:
:-D
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!