Страница 1 из 1

Проверка HELO

Добавлено: 2009-02-23 15:27:20
flot
В 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 адреса вообще абсурд... Кто что предложит?

Re: Проверка HELO

Добавлено: 2009-02-23 15:48:19
f_andrey
flot писал(а):Кто что предложит?
А чего тут думать, надо просто выполнять RFC, а с теми кто их не соблюдает, либо забить на них, либо внести в белый список, если они все таки важны как клиенты.

Re: Проверка HELO

Добавлено: 2009-02-23 23:38:34
Laa
Здравствуйте!
Я тоже отказался от 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. И при успешном наборе более некого кол-ва балов даю отлуп. Или даю грейлист для тех, кто набрал балов, но не достаточно много для отлупа. Для тех кто вообще не набрал балов -- принимаю без разговоров!

Re: Проверка HELO

Добавлено: 2009-02-24 0:03:34
flot
Полная проверка у меня такая:

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

  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.

Re: Проверка HELO

Добавлено: 2009-02-24 0:04:02
Laa
Ой, я почему-то на ночь глядя еще кое-что, весьма важное упустил. :-D

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

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

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

Re: Проверка HELO

Добавлено: 2009-02-24 0:09:36
flot
Ну обычно админы, у которых хватает разума воткнуть проверку обратным вызовом в состоянии сделать правильное HELO. А получить кучу спама от отправителя <> тоже не хочется...

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

Re: Проверка HELO

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

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

Re: Проверка HELO

Добавлено: 2009-02-24 0:14:47
Laa
flot писал(а):Ну обычно админы, у которых хватает разума воткнуть проверку обратным вызовом в состоянии сделать правильное HELO. А получить кучу спама от отправителя <> тоже не хочется...

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

Мало-ли бывает, я знаю офигенно крутую контору в рамках страны у которой mdaemon с достаточно кривыми настройками. Уверен, вы бы их отбивали и не знали, что от них что-то не получили. Узнают такое бывает от руководства....... :-o

Re: Проверка HELO

Добавлено: 2009-02-24 0:17:17
Laa
flot писал(а):Кстати мне не жалко привести полный конфиг, только придется долго его комментировать почему так а не иначе написано :)
не-е, конфиг не надо. Или кому надо? :Search:
:-D