РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик (451 Could not complete sender verify callout (in reply to RCPT TO comm)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

silver47
Сообщения: 19

РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение silver47 »

Доброго времени суток.

Debian Lenny + Postix 2.5.5-1.1 + cyrus IMAP. Поднят DNS с доменом gzo.ru (домен локальный) Внутри почта ходит замечательно, при отправке на внешнее мыло:

cat /var/log/mail.log

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

=====================
Apr 27 19:44:38 proxy postfix/smtpd[1981]: connect from silver.gzo.ru[192.168.25.3]
Apr 27 19:44:39 proxy postfix/smtpd[1981]: 08E1255B: client=silver.gzo.ru[192.168.25.3], sasl_method=LOGIN, sasl_username=silver
Apr 27 19:44:39 proxy postfix/cleanup[1985]: 08E1255B: message-id=<E76946F1E0B14E45A440FC5441CF5AF2@nabsterb0f7e76>
Apr 27 19:44:39 proxy postfix/qmgr[1976]: 08E1255B: from=<silver@gzo.ru>, size=1466, nrcpt=1 (queue active)
Apr 27 19:44:39 proxy postfix/smtpd[1981]: disconnect from silver.gzo.ru[192.168.25.3]
Apr 27 19:45:11 proxy postfix/smtp[1986]: 08E1255B: to=<lonely_xxx@bk.ru>, relay=smtp.bk.ru[94.100.177.2]:25, delay=33, delays=0.13/0.02/1.5/31, dsn=4.0.0, status=deferred (host smtp.bk.ru[94.100.177.2] said: 451 Could not complete sender verify callout (in reply to RCPT TO command))
=====================


cat /etc/postfix/main.cf

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

========================
# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = proxy.gzo.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = gzo.ru, proxy.gzo.ru, localhost.gzo.ru, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_authenticated_header = yes
smtpd_sasl_application_name = smtpd

mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
local_recipient_maps =


relayhost = smtp.bk.ru
smtp_sasl_password_maps=hash:/etc/postfix/sasl-passwords
smtp_sasl_mechanism_filter = login
smtp_sasl_security_options =
============================


cat sasl-passwords

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

==================
smtp.bk.ru gzo_xxx:hiddenpasswd
==================


Как я понял грабли не столько в настройке Postfix, сколько в используемом алгоритме борьбы со спамом на smtp.bk.ru: Прежде чем сервер smtp.bk.ru примет почту от gzo_xxx@bk.ru, он попробует проверить, а существует ли у меня на сервере ящик отпправителя gzo_xxx@bk.ru, т.е. может ли он принимать почту. В ответ молчание и соединение рвется по тайм-ауту. Или я не правильно понимаю?

почтовик должен работать как обычный почтовый клиент на отправке сообщений, и он бы успешно работал, если бы не такой метод борьбы со спамом со стороный smtp.bk.ru. Я конечно понимаю что "проще" договориться с админом smtp.bk.ru чтобы он внес меня в whitelist, но есть чего нибудь поосуществимей?

Собственно вопрос в чем: как отправлять письма на внешние сервера, если адресс назначения не локальный?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение watashiwa_daredeska »

silver47 писал(а):
28.04.2009 08:04
Прежде чем сервер smtp.bk.ru примет почту от gzo_xxx@bk.ru, он попробует проверить, а существует ли у меня на сервере ящик отпправителя gzo_xxx@bk.ru, т.е. может ли он принимать почту. В ответ молчание и соединение рвется по тайм-ауту. Или я не правильно понимаю?
Правильно.
silver47 писал(а):
28.04.2009 08:04
как отправлять письма на внешние сервера, если адресс назначения не локальный?
Нужно, чтобы почтовый домен был настоящий. С обратной зоной в DNS, MX-записью и честным сервером на прием.

А, у вас smtp.bk.ru используется как релей... Это вообще безнадежно. Там миллион ограничений. Я на эти грабли еще несколько лет назад вставал. Лучше воспользоваться smtp своего провайдера.
Спасибо сказали:
silver47
Сообщения: 19

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение silver47 »

watashiwa_daredeska писал(а):
28.04.2009 09:02
silver47 писал(а):
28.04.2009 08:04
Прежде чем сервер smtp.bk.ru примет почту от gzo_xxx@bk.ru, он попробует проверить, а существует ли у меня на сервере ящик отпправителя gzo_xxx@bk.ru, т.е. может ли он принимать почту. В ответ молчание и соединение рвется по тайм-ауту. Или я не правильно понимаю?
Правильно.
silver47 писал(а):
28.04.2009 08:04
как отправлять письма на внешние сервера, если адресс назначения не локальный?
Нужно, чтобы почтовый домен был настоящий. С обратной зоной в DNS, MX-записью и честным сервером на прием.

А, у вас smtp.bk.ru используется как релей... Это вообще безнадежно. Там миллион ограничений. Я на эти грабли еще несколько лет назад вставал. Лучше воспользоваться smtp своего провайдера.


Настоящий домен, который будет иметь свои MX записи в инете, мне контора не даст сделать, т.к. это денег стоит. Под виндой у меня стоял Courier Mail Server и все было замечательно, у него не было такой проблемы. Действительно нельзя никак сделать чтобы postfix вел себя как обычный почтовый клиент типа бата? Если да, то очень плохо, придеться корячиться с office mail server, он под вайном без Х, худо бедно работает, правда нельзя у него отбирать шел, ато падает (не хочет работать в фоне).

smtp у провайдера? :-D Вы слишком хорошо думаете о моем провайдере :)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение watashiwa_daredeska »

silver47 писал(а):
28.04.2009 09:11
Действительно нельзя никак сделать чтобы postfix вел себя как обычный почтовый клиент типа бата?
Можно. Но бат один на пользователя. С релеем через smtp.bk.ru postfix тоже будет один на пользователя с учетом их ограничений. Как у Вас с Courier Mail Server получилось -- не знаю, можете посмотреть логи сессий отправки писем и настроить также. Только отправлять при проверке надо не только на @bk.ru, но и на другие сервисы, вроде @gmail.com или еще куда.

P.S. Ставить в envelope обратный адрес, которого на самом деле нет -- моветон.


silver47 писал(а):
28.04.2009 09:11
Вы слишком хорошо думаете о моем провайдере
Вообще-то это essential сервис. Потому что даже бат не будет нормально отсылать письма через smtp.bk.ru, если обратный адрес где-нибудь на @gmail.com.
Спасибо сказали:
silver47
Сообщения: 19

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение silver47 »

watashiwa_daredeska писал(а):
28.04.2009 09:27
silver47 писал(а):
28.04.2009 09:11
Действительно нельзя никак сделать чтобы postfix вел себя как обычный почтовый клиент типа бата?
Можно. Но бат один на пользователя. С релеем через smtp.bk.ru postfix тоже будет один на пользователя с учетом их ограничений. Как у Вас с Courier Mail Server получилось -- не знаю, можете посмотреть логи сессий отправки писем и настроить также. Только отправлять при проверке надо не только на @bk.ru, но и на другие сервисы, вроде @gmail.com или еще куда.

P.S. Ставить в envelope обратный адрес, которого на самом деле нет -- моветон.


silver47 писал(а):
28.04.2009 09:11
Вы слишком хорошо думаете о моем провайдере
Вообще-то это essential сервис. Потому что даже бат не будет нормально отсылать письма через smtp.bk.ru, если обратный адрес где-нибудь на @gmail.com.


Да мне и нужно чтобы отсылалося все от одного пользователя (от конторы), а fechmail будет соответственно всю почту на секретаря с этого ящика сгружать. Ящик далеко не основной, а что-то типа резервного. Есть еще целых 3 основных но они все шифрованные и с электронными подписями, отправлять с них на адреса вне домена этого шифрованного ящика невозможно, а бухам быстрее общаться через внешнее мыло.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение watashiwa_daredeska »

Для переписывания в одного пользователя можно воспользоваться механизмом Address Rewriting в Postfix и переписывать все адреса отправителей в один. Если в envelope будет MAIL FROM: user@bk.ru, то smtp.bk.ru не будет делать reverse callout. Адрес envelope должен совпадать с пользователем, который авторизуется. ЕМНИП, адрес в заголовке From: должен совпадать с адресом envelope.
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение danger08 »

silver47 писал(а):
28.04.2009 09:36
Да мне и нужно чтобы отсылалося все от одного пользователя (от конторы), а fechmail будет соответственно всю почту на секретаря с этого ящика сгружать.

Сделайте masquerade для исходящей почты (не знаю, как это называется в postfix :rolleyes:) Чтобы адрес отправителя в исходящей почте перезаписывался в user@bk.ru.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение watashiwa_daredeska »

danger08 писал(а):
28.04.2009 10:09
Сделайте masquerade для исходящей почты (не знаю, как это называется в postfix rolleyes.gif)
Masquerade в Postfix -- более ограниченная штука, не пойдет. Я бы смотрел в сторону canonical maps с regexp_table или pcre_table -- в упомянутом мной мануале это все есть.
Спасибо сказали:
silver47
Сообщения: 19

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение silver47 »

watashiwa_daredeska писал(а):
28.04.2009 10:04
Для переписывания в одного пользователя можно воспользоваться механизмом Address Rewriting в Postfix и переписывать все адреса отправителей в один. Если в envelope будет MAIL FROM: user@bk.ru, то smtp.bk.ru не будет делать reverse callout. Адрес envelope должен совпадать с пользователем, который авторизуется. ЕМНИП, адрес в заголовке From: должен совпадать с адресом envelope.


Спасибо за подсказку, буду копать в том направлении. Получиться только завтра, по результату отпишусь.
Спасибо сказали:
silver47
Сообщения: 19

Re: РЕШЕНО: postfix relay отправка почты через внешний почтовый ящик

Сообщение silver47 »

Спасибо watashiwa_daredeska за указание направления поиска.
Решается все с помошью Generic Mapping.

/etc/postfix/main.cf

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

smtp_generic_maps=hash:/etc/postfix/generic
Спасибо сказали: