Проверка отправителя и получателя в Exim

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
sasha181
сержант
Сообщения: 169
Зарегистрирован: 2008-02-04 17:02:30
Откуда: Краснодар

Проверка отправителя и получателя в Exim

Непрочитанное сообщение sasha181 » 2008-02-20 17:56:47

Как лучше настроить?
Вот например вариант:
verify = sender/callout
verify = recipient/defer_ok/callout=10s,defer_ok
Но в данном случае есть мнение, что проверка с callout может привести к попаданию в локальные блеклисты.
И вообще насколько это эффективно?

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение Morty » 2008-02-20 18:40:52

на эту тему есть пачки готовых примеров в статьях на сайте, в разедел форума МТА-советы,
и в документации на сайте

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение dikens3 » 2008-02-20 21:14:45

sasha181 писал(а):Как лучше настроить?
Вот например вариант:
verify = sender/callout
verify = recipient/defer_ok/callout=10s,defer_ok
Но в данном случае есть мнение, что проверка с callout может привести к попаданию в локальные блеклисты.
И вообще насколько это эффективно?
Первая(verify = sender/callout) проверяет наличие домена отправителя и ни о каких блок листах речи не идёт.
Вторая(verify = recipient/defer_ok/callout=10s,defer_ok) проверяет получателя сообщения вполне законным методом, тоже маловероятно.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

sasha181
сержант
Сообщения: 169
Зарегистрирован: 2008-02-04 17:02:30
Откуда: Краснодар

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение sasha181 » 2008-02-21 9:30:17

dikens3 писал(а):Первая(verify = sender/callout) проверяет наличие домена отправителя и ни о каких блок листах речи не идёт.
Вторая(verify = recipient/defer_ok/callout=10s,defer_ok) проверяет получателя сообщения вполне законным методом, тоже маловероятно.
verify при наличии параметра callout проверяет не только домен, но и создаёт smtp сессию до ящика отправителя или адресата, и если после RCPT не следует ошибки, то команда проверка считается успешной.
Причём отправка ведётся с пустым заголовком From, что некоторые серверы могут и блокировать.
А мнение что можно попасть в блек листы основанно на том, что спамеры таким же способом могут прощупывать домены на существование ящиков, и некоторые сервара могут таких блеклистить локально.

Документацию я читал.
Просто хочется улышать мнение, основанные на собственном опыте.
Как лучше проверять и почему. По форуму искал, но конкретной мнений, что нужно проверять так а не иначе по следующим причинам... не нашёл.
Вот поэтому и решил спросить :?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение dikens3 » 2008-02-21 11:17:55

У меня работает так:

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

# Проверка существования домена для внешних клиентов, а для наших ещё и существование пользователя
require   log_message   = Ля-Ля E-Mail'а типа несуществует...
          verify        = sender

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

# Проверка существования E-Mail'a отправителя для внешних клиентов
deny      log_message   = Ля-Ля E-Mail'а типа несуществует...
          !senders        = : verify@*
          !authenticated = *
          !verify       = sender/callout=120s,defer_ok,maxwait=180s,random
verify при наличии параметра callout проверяет не только домен, но и создаёт smtp сессию до ящика отправителя или адресата, и если после RCPT не следует ошибки, то команда проверка считается успешной.
Или если истекло время подключения. Отсюда: Спамеры регистрируют домен: @ХРЕН_ВАМ_ВСЕМ.ru А потом отправляют письма от имён: userXX@ХРЕН_ВАМ_ВСЕМ.ru. И все проверки в пролёте.
Причём отправка ведётся с пустым заголовком From, что некоторые серверы могут и блокировать.
Могут, ещё они могут блокировать просто так, например все домены в зоне .ru :-) У меня находится в секции predata такая блокировка:

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

# Прибиваем с пустым отправителем (<>), используется для проверки существования E-Mail'а
  deny    message       = "Unknown user"
          senders       = : verify@*
verify@* - рамблер или yandex, не помню.
А мнение что можно попасть в блек листы основанно на том, что спамеры таким же способом могут прощупывать домены на существование ящиков, и некоторые сервара могут таких блеклистить локально.
А что реальными письмами этого сделать нельзя? Только используя пустого отправителя? Смотреть за такими вещами нужно, а не блокировать всё подряд. Особенно на существующие адресаты.
Как лучше проверять и почему. По форуму искал, но конкретной мнений, что нужно проверять так а не иначе по следующим причинам... не нашёл.
А конкретное мнение под конкретную фирму.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

sasha181
сержант
Сообщения: 169
Зарегистрирован: 2008-02-04 17:02:30
Откуда: Краснодар

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение sasha181 » 2008-02-21 17:28:08

Скажи пожалуйста.
Чем обоснованы такие большие задержки здесь:
callout=120s
По умолчанию если не ошибаюсь 30s
А в немалом количестве примеров их даже уменьшают.
И зависит ли размер задержки от того что проверяем отправителя или получателя?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение dikens3 » 2008-02-21 18:29:35

sasha181 писал(а):Скажи пожалуйста.
Чем обоснованы такие большие задержки здесь:
callout=120s
Надеюсь каждый спамер умрёт от скуки, пока дождётся отправки своего сообщения. Я не помню почему так сделал, переписал откуда-нибудь пока настраивал, а потом оставил, т.к. не напрягало. Пока не жалуюсь вобщем.
sasha181 писал(а):И зависит ли размер задержки от того что проверяем отправителя или получателя?
Получателей лучше не проверять долго. Сотрудников напрягает.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

sasha181
сержант
Сообщения: 169
Зарегистрирован: 2008-02-04 17:02:30
Откуда: Краснодар

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение sasha181 » 2008-02-22 16:41:15

Вот ещё такой вопрос возник.
Как поведёт себя сервер при таком параметре:
require verify = recipient/defer_ok/callout=10s,defer_ok,random
Если отправитель укажет несколько получателей и при этом часть получателей реальных, а часть не пройдут проверку?
Т.е. он отбросит всю сессию или просто не примет несуществующих получателей?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Проверка отправителя и получателя в Exim

Непрочитанное сообщение dikens3 » 2008-02-22 17:25:26

А что мешает самому проверить? Научить?

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

# Тестирование от нашей сети
#(echo "EHLO 127.0.0.1"; echo "MAIL FROM: user@mydomain.ru"; echo "RCPT TO: user1@mail.ru"; echo "RCPT TO: user2@mail.ru";echo "RCPT TO: user1@yandex.ru"; echo "RCPT TO: user2@yandex.ru"; echo "QUIT";) | exim -d -bhc ИП_ЛОКАЛЬНЫЙ > testlog 2>&1
P.S. Я незнаю как поведёт себя exim:
1. Проверит только 1-го получателя и исход будет от этого зависеть.
2. Не отправит несуществующим.
3. Может ещё как-то. :-)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.