Проблемы с проверкой адреса

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Breslavsky
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-09-20 10:45:48

Проблемы с проверкой адреса

Непрочитанное сообщение Breslavsky » 2010-09-20 10:55:13

Смысл такой. Есть внешний сервер - стоит в ДЦ (exim), есть внутренний сервер - находиться в офисе (hMailServer).

На внешнем стоит catchall всех сообщений на спец адрес catchall@domain.
Периодически внутренний сервер забирает с этого адреса почту и раскидывает между получателями (пользователи есть только на внутреннем сервере).
Пользователи забирают почту с внутреннего сервера.
Так же пользователи используют для отправки внутренний сервер, который через SMTP релей передает письма для отправки внешнему.

Так вот проблема. Приняв письмо удаленный сервер пытается проверить отправителя у внешнего сервера, а внешний говорит, что отправителя нет, т.к. его реально нет.
Ведь все пользователи только на внутреннем сервере, а на внешнем catchall.

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

SMTP error from remote mail server after RCPT TO:<nora_sn@mail.kamchatka.ru>: host smtp.kamchatka.ru [85.28.195.133]: 550-Verification failed for <hmel@domain>  550-Called: 77.220.178.160 550-Sent: RCPT TO:<hmel@domain>  550-Response: 550 Administrative prohibition 550 Sender verify failed 
Вопрос. Как сделать так, что бы exim на внешнем сервере, всегда говорил что у него есть любой адрес.
Ну типа другой сервер спрашивает: у тебя есть blabla@blabla - а мой exim говорит, конечно!

Спасибо за помощь! Очень признателен!
Последний раз редактировалось Alex Keda 2010-09-22 0:03:47, всего редактировалось 1 раз.
Причина: Товарищщи, цените чужое время, юзайте кнопочку [code]...

Хостинговая компания 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/

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Проблемы с проверкой адреса

Непрочитанное сообщение CrazyPilot » 2010-09-20 13:39:24

отключить verify recipient для писем от чужих доменов? Но тогда exim будет у вас принимать всю почту, а роутить её не сможет...

Имхо, надо идти другим путём. У меня по крону внешний сервак синхрит базу активных email адресов с внутреннего сервака и по этой базе решает, принимать письмо или нет.

Breslavsky
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-09-20 10:45:48

Re: Проблемы с проверкой адреса

Непрочитанное сообщение Breslavsky » 2010-09-20 21:07:56

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

Не ужели все таки нет такой фичи. Просто поставить заглушку, если проверка, всегда говори ДА.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Проблемы с проверкой адреса

Непрочитанное сообщение CrazyPilot » 2010-09-20 21:19:45

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

а ля такой кондишн в acl_smtp_rcpt

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

 deny message    = "Sorry, no such user. Check recipient mail"
        condition       = ${if and{\
                                        {\
                                         eq{${lookup{$local_part@$domain}dbm{/usr/local/etc/exim/users.dbm}{$value}{deny}}}\
                                                {deny}\
                                        }\
                                        {\
                                              !match_domain{$sender_address_domain}{+local_domains}\
                                        }\
                                        {\
                                              match_domain{$domain}{+local_domains}\
                                        }\
                                  }\
                                  {yes}{no}}
Но это часть айсберга - вопрос в том, как у вас exim роутит письма. Если у вас catch all, то должен быть роутер, который всегда говорит accept, когда ему пихают email с вашего домена. Соответственно exim проверяет получателей именно по роутерам, и если нашел роутер, который говорит accept - проверка получателя пройдена. Вроде так, насколько я помню :unknown:

exim настолько монстр, что наверно может даже кофе варить, так что я думаю все фичи там есть

В общем не мешало бы на ваш конфиг посмотреть acl + routers

Breslavsky
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-09-20 10:45:48

Re: Проблемы с проверкой адреса

Непрочитанное сообщение Breslavsky » 2010-09-20 21:36:15

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

В файле /work/usr/exim-4.68/etc/configure

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

domainlist local_domains = lsearch;/work/usr/exim-4.68/etc/multi-domains
/work/usr/exim-4.68/etc/multi-domains

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

7753333.ru:7753333.ru:catchall@7753333.ru:no
Видимо тут и настраивается действие для домена.
Все активные email хранятся по старинке в файле passwd.

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

acl_smtp_rcpt = acl_check_rcpt

acl_check_rcpt:

  # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
  # testing for an empty sending host field.
  deny    senders = :
          log_message   = Sender adress is empty
  accept  hosts   = :

 require verify = recipient

  # Deny unless the sender address can be verified.

  #require verify        = sender

  catchall_for_domains:
    driver = redirect
    headers_add = X-redirected: yes
    data = ${extract{2}{:}{${lookup{$domain}lsearch{/work/usr/exim-4.68/etc/multi-domains}}}}
    file_transport = local_delivery
Прошу прощения за сумбур. Это все вырезки из конфига. Я просто не могу понять. Что в конфиге отвечает за такую проверку.

Breslavsky
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-09-20 10:45:48

Re: Проблемы с проверкой адреса

Непрочитанное сообщение Breslavsky » 2010-09-20 21:43:28

Проблема в том, что мы говорим именно про отправку писем, а не про прием.

Specifies access control lists for incoming SMTP mail - входящая почта (incoming). Как я понимаю ACL - это правила приема.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Проблемы с проверкой адреса

Непрочитанное сообщение CrazyPilot » 2010-09-20 22:04:12

Я понимаю, что у вас callout с чужого сервера не проходит. Ну и что, что удаленнный проверяет у вас отправителя на ваше письмо. Проверяет он как - подставляет адрес отправителя вам в получатели. Так что для вашего exim'a это выглядит так, как будто удалённый сервер шлет вам письмо. Только он (удаленный сервер) не идет дальше чем rcpt to: Если ваш exim сказал acepted - то проверка считается выполненной.

Покажите плз, конфиг (полный) роутеров и транспортов. Я пока не могу понять, как у вас внутренний почтарь почту забирает. Она у вас передается какому-то mda?
Ну и решение в лоб:

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

require verify = recipient
         domains = !+local_domains
Это отключит проверку получателей для вашего домена, но не знаю насколько это true =)

У меня похожая схема работает несколько иначе, есть внутренний почтовик (exim), с этого почтовика есть vpn на сервак, где сидит "внешний" exim. Вся почта идет через внешний exim, то есть а ля smarthost. Так вот письма не задерживаются на внешнем серваке, внешний exim по vpn сливает письма внутреннему почтовику. Транспорт используется только smtp.

В любом случае, конфиг в студию плз.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Проблемы с проверкой адреса

Непрочитанное сообщение CrazyPilot » 2010-09-20 22:10:15

А вообще странный у вас catchall (если вы конечно не ломаете его сейчас, и это ваш):

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

gw# telnet mail.7753333.ru 25
Trying 77.220.178.160...
Connected to mail.7753333.ru.
Escape character is '^]'.
220 srv01.hitrg.com ESMTP Exim 4.68 Mon, 20 Sep 2010 23:08:05 +0400
helo mail.domain.ru
250 srv01.hitrg.com Hello mail.domain.ru [81.23.x.x]
mail from: postmaster@domain.ru
250 OK
rcpt to: test@7753333.ru
550 Administrative prohibition
421 Unexpected log failure, please try later
QUIT
221 srv01.hitrg.com closing connection
Connection closed by foreign host.

Breslavsky
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-09-20 10:45:48

Re: Проблемы с проверкой адреса

Непрочитанное сообщение Breslavsky » 2010-09-20 22:20:17

Решение в лоб не помогло. Спасибо за Вашу помощь и за советы.
Не стал выкладывать конфиг сюда. Посмотрите пожалуйста по ссылке.

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

http://download.hitrg.com/configure
Ничего понять не могу.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Проблемы с проверкой адреса

Непрочитанное сообщение CrazyPilot » 2010-09-20 22:46:06

Я тоже :-)

я не понимаю, как у вас роутинг происходит, не понимаю, как использовать redirect роутеры без указания redirct_router или transport'ов. Тупо следующий что ли вызывается роутер. Судя по конфигу - пользователи у вас таки заводятся на внешнем exim'е?

Покажите пару-тройку тестов по email адресам.
Пару по реальным, пару по несуществующим

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

exim -bt some@address.ru
Это вы такой конфиг состряпали? Или знакомый программист? :)

Breslavsky
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-09-20 10:45:48

Re: Проблемы с проверкой адреса

Непрочитанное сообщение Breslavsky » 2010-09-20 22:58:35

Нет я сам компилировал exim, потом на сервер нагонял ispmanager. Пользователи есть и на внешнем сервере и на внутреннем.
Сервер хостинга, на нем сидит несколько организаций. Кажется у меня вообще не работает обратная проверка отправителя.

-bash-3.00# ./exim -bt some@makita-online.ru
catchall@makita-online.ru
<-- catchall@makita-online.ru
<-- catchall@makita-online.ru
<-- some@makita-online.ru
<-- some@makita-online.ru
router = localuser, transport = local_delivery