URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 78912
[ Назад ]

Исходное сообщение
"Проверка postfix-ом пользователей в dovecot."

Отправлено andrey , 25-Фев-08 14:55 
Здраствуйте!
Настраиваю postfix с доставкой почты виртуальным пользователям через dovecot.
Не хочу использовать локальную базу пользователей, хочется, чтобы postfix узнавал о существоаниии того или иного ящика у dovecot-а. Но ни как не получается это сделать, хотя параметр reject_unverified_recipient в smtpd_recipient_restrictions добавил.
Собственно конфигурация:
========================= main.cf ============================
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
default_privs = nobody
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = domain.tld
myhostname = mail.domain.tld
mynetworks = 192.168.89.0/24, 127.0.0.0/8
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_always_send_ehlo = yes
smtpd_hard_error_limit = 8
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, reject_unverified_recipient
unknown_local_recipient_reject_code = 550
virtual_gid_maps = static:2000
virtual_mailbox_domains = /var/mail/domains
virtual_minimum_uid = 2000
virtual_transport = dovecot
virtual_uid_maps = static:2000

========================= master.cf ============================
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/libexec/dovecot/deliver -d ${recipient}

================================================================

Вот что в debug-логах по поводу reject_unverified_recipient, такое ощущение, что к dovecot нет обращения :-(. Как эту проблему решить?

========================= mail.log =============================
Feb 25 14:24:13 host postfix/smtpd[7701]: generic_checks: name=reject_unverified_recipient
Feb 25 14:24:13 host postfix/smtpd[7701]: reject_unverified_address: nousers@domain.tld
Feb 25 14:24:13 host postfix/smtpd[7701]: connect to subsystem private/verify
Feb 25 14:24:13 host postfix/smtpd[7701]: send attr request = query
Feb 25 14:24:13 host postfix/smtpd[7701]: send attr address = nousers@domain.tld
Feb 25 14:24:13 host postfix/smtpd[7701]: private/verify socket: wanted attribute: status
Feb 25 14:24:13 host postfix/smtpd[7701]: input attribute name: status
Feb 25 14:24:13 host postfix/smtpd[7701]: input attribute value: 0
Feb 25 14:24:13 host postfix/smtpd[7701]: private/verify socket: wanted attribute: recipient_status
Feb 25 14:24:13 host postfix/smtpd[7701]: input attribute name: recipient_status
Feb 25 14:24:13 host postfix/smtpd[7701]: input attribute value: 3
Feb 25 14:24:13 host postfix/smtpd[7701]: private/verify socket: wanted attribute: reason
Feb 25 14:24:13 host postfix/smtpd[7701]: input attribute name: reason
Feb 25 14:24:13 host postfix/smtpd[7701]: input attribute value: Address verification in progress
Feb 25 14:24:13 host postfix/smtpd[7701]: private/verify socket: wanted attribute: (list terminator)
Feb 25 14:24:13 host postfix/smtpd[7701]: input attribute name: (end)
Feb 25 14:24:13 host postfix/cleanup[7715]: 21CDC2DC4A8: message-id=<20080225112413.21CDC2DC4A8@mail.domain.tld>
Feb 25 14:24:13 host postfix/qmgr[7675]: 21CDC2DC4A8: from=<postmaster@mail.domain.tld>, size=275, nrcpt=1 (queue active)
Feb 25 14:24:13 host postfix/pipe[7716]: 21CDC2DC4A8: to=<nousers@domain.tld>, relay=dovecot, delay=0.03, delays=0.02/0/0/0, dsn=2.0.0, status=deliverable (delivers to command: /usr/libexec/dovecot/deliver)
Feb 25 14:24:13 host postfix/qmgr[7675]: 21CDC2DC4A8: removed
Feb 25 14:24:16 host postfix/smtpd[7701]: send attr request = query
Feb 25 14:24:16 host postfix/smtpd[7701]: send attr address = nousers@domain.tld
Feb 25 14:24:16 host postfix/smtpd[7701]: private/verify socket: wanted attribute: status
Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute name: status
Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute value: 0
Feb 25 14:24:16 host postfix/smtpd[7701]: private/verify socket: wanted attribute: recipient_status
Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute name: recipient_status
Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute value: 0
Feb 25 14:24:16 host postfix/smtpd[7701]: private/verify socket: wanted attribute: reason
Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute name: reason
Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute value: delivers to command: /usr/libexec/dovecot/deliver
Feb 25 14:24:16 host postfix/smtpd[7701]: private/verify socket: wanted attribute: (list terminator)
Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute name: (end)
Feb 25 14:24:16 host postfix/smtpd[7701]: generic_checks: name=reject_unverified_recipient status=0

================================================================

Спасибо.


Содержание

Сообщения в этом обсуждении
"Проверка postfix-ом пользователей в dovecot."
Отправлено sargio , 25-Фев-08 15:55 
>Здраствуйте!
>Настраиваю postfix с доставкой почты виртуальным пользователям через dovecot.
>Не хочу использовать локальную базу пользователей, хочется, чтобы postfix узнавал о существоаниии

http://www.postfix.org/SASL_README.html

Dovecot SASL configuration for the Postfix SMTP server


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 25-Фев-08 16:48 
>>Здраствуйте!
>>Настраиваю postfix с доставкой почты виртуальным пользователям через dovecot.
>>Не хочу использовать локальную базу пользователей, хочется, чтобы postfix узнавал о существоаниии
>
>http://www.postfix.org/SASL_README.html
>
>Dovecot SASL configuration for the Postfix SMTP server

Мне не SASL аторизация нужна. Необходимо, чтобы, пример... Приходит пиьсмо c:
mail from: <user@domain2.tld>
rcpt to: <nouser@domain.tld>
прежде чем ответить: 250 2.1.5 Ok на rcpt to, была проверка, есть ли такой mailbox в dovecot. В общем вместо virtual_mailbox_maps = type:/file была проверка на существование виртуального ящика в dovecot.


"Проверка postfix-ом пользователей в dovecot."
Отправлено ALex_hha , 25-Фев-08 19:09 
>[оверквотинг удален]
>>http://www.postfix.org/SASL_README.html
>>
>>Dovecot SASL configuration for the Postfix SMTP server
>
>Мне не SASL аторизация нужна. Необходимо, чтобы, пример... Приходит пиьсмо c:
>mail from: <user@domain2.tld>
>rcpt to: <nouser@domain.tld>
>прежде чем ответить: 250 2.1.5 Ok на rcpt to, была проверка, есть
>ли такой mailbox в dovecot. В общем вместо virtual_mailbox_maps = type:/file
>была проверка на существование виртуального ящика в dovecot.

А зачем такое нужно? Чем не устраивает тот же mysql для хранения инф-ции о почтовых ящиках?


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 01:22 
>А зачем такое нужно? Чем не устраивает тот же mysql для хранения
>инф-ции о почтовых ящиках?

Нужно, потому что в RHEL 5 postfix скомпилирован без mysql/pgsql, и нет возможности собрать его с их поддержкой. Поднимать LDAP то-же не очень хочется.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 27-Фев-08 06:27 
>>А зачем такое нужно? Чем не устраивает тот же mysql для хранения
>>инф-ции о почтовых ящиках?
>
>Нужно, потому что в RHEL 5 postfix скомпилирован без mysql/pgsql, и нет
>возможности собрать его с их поддержкой. Поднимать LDAP то-же не очень
>хочется.

Так как вы хотите - настроить это нельзя. пересобирайте постфикс с поддержкой MySQL.

Выбрали для себя РХЕЛ - ну и рхельтесь с ним.
Выбрали операционку - играйте по её правилам, а не требуйте извращений в построении систем.

http://www.postfix.org/VIRTUAL_README.html

Читать документацию по диагонали - очень плохо.

virtual_mailbox_domains = /var/mail/domains
virtual_minimum_uid = 2000
virtual_transport = dovecot
virtual_uid_maps = static:2000


Параметры virtual_mailbox_maps,virtual_alias_maps - придумали не для Вас, их нужно проигнорить ?

А, у вас же поддержки мускула от редхата в коробку не положили...



"Проверка postfix-ом пользователей в dovecot."
Отправлено Savl , 27-Фев-08 15:43 
Вы бы помедитировали над http://www.postfix.org/postconf.5.html#virtual_mailbox_domains, прежде чем кричать.
А при чём здесь вообще MySQL? Что мешает в Berkeley DB или в хэшированной таблице хранить базу пользователей?

"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 27-Фев-08 17:52 
>Вы бы помедитировали над http://www.postfix.org/postconf.5.html#virtual_mailbox_domains, прежде чем кричать.

я то как-раз помедитировал:

The SMTP server validates recipient addresses with $virtual_mailbox_maps and rejects mail for non-existent recipients. See also the virtual mailbox domain class in the ADDRESS_CLASS_README file.

>А при чём здесь вообще MySQL? Что мешает в Berkeley DB или
>в хэшированной таблице хранить базу пользователей?

Задача такая у вопрошающего, именно мускул, не читали тред ?


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 21:32 
>>А при чём здесь вообще MySQL? Что мешает в Berkeley DB или
>>в хэшированной таблице хранить базу пользователей?
>
>Задача такая у вопрошающего, именно мускул, не читали тред ?

Мне мускуль не нужен. Мне нужна проверка в dovecot. Конечно можно по крону создавать hash файл с существующими mailbox-ами, но хочется без костылей.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 28-Фев-08 07:46 
>>>А при чём здесь вообще MySQL? Что мешает в Berkeley DB или
>>>в хэшированной таблице хранить базу пользователей?
>>
>>Задача такая у вопрошающего, именно мускул, не читали тред ?
>
>Мне мускуль не нужен. Мне нужна проверка в dovecot. Конечно можно по
>крону создавать hash файл с существующими mailbox-ами, но хочется без костылей.
>

Костыль, в данном случае, как раз то, что вы хотите.

постом выше написана цитата из документации

The SMTP server validates recipient addresses with $virtual_mailbox_maps and rejects mail for non-existent recipients. See also the virtual mailbox domain class in the ADDRESS_CLASS_README file.


SMTP-сервер осуществляет проверку адресов получателей с использованием параметра $virtual_mailbox_maps и отклоняет почту для несуществующих. Смотри соответствующую доку.



"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 08-Мрт-08 22:22 
>[оверквотинг удален]
>
>постом выше написана цитата из документации
>
>The SMTP server validates recipient addresses with $virtual_mailbox_maps and rejects mail for
>non-existent recipients. See also the virtual mailbox domain class in the
>ADDRESS_CLASS_README file.
>
>
>SMTP-сервер осуществляет проверку адресов получателей с использованием параметра $virtual_mailbox_maps и отклоняет почту
>для несуществующих. Смотри соответствующую доку.

Так же в документации написано:
reject_unverified_recipient
Reject the request when mail to the RCPT TO address is known to bounce, or when the recipient address destination is not reachable. Address verification information is managed by the verify(8) server; see the ADDRESS_VERIFICATION_README file for details.
The unverified_recipient_reject_code parameter specifies the response when an address is known to bounce (default: 450, change into 550 when you are confident that it is safe to do so). Postfix replies with 450 when an address probe failed due to a temporary problem. This feature is available in Postfix 2.1 and later.



"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 09-Мрт-08 01:04 
>[оверквотинг удален]
>reject_unverified_recipient
>Reject the request when mail to the RCPT TO address is known
>to bounce, or when the recipient address destination is not reachable.
>Address verification information is managed by the verify(8) server; see the
>ADDRESS_VERIFICATION_README file for details.
>The unverified_recipient_reject_code parameter specifies the response when an address is known to
>bounce (default: 450, change into 550 when you are confident that
>it is safe to do so). Postfix replies with 450 when
>an address probe failed due to a temporary problem. This feature
>is available in Postfix 2.1 and later.

Что, снова документацию вслух почитать ?  Секунду, ща оформим.

>Address verification information is managed by the verify(8) server; see the
>ADDRESS_VERIFICATION_README file for details.

Проверка адреса отправителя осуществляется сервисом verify(8), о чем можно почитать в доке
ADDRESS_VERIFICATION_README.

Открываем доку по ссылке (жаль что вы так и не полюбили официальный сайт постфикса)
http://www.postfix.org/ADDRESS_VERIFICATION_README.html

и видим там описание как оно работает.
А работает оно только для релеев, в случае проверки получателя письма, путем попытки доставки письма на интересующий адрес через более приоритетный МХ. А у вас не релей.

Не надо читать документацию по кускам, ок ?


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 21:29 
>Так как вы хотите - настроить это нельзя. пересобирайте постфикс с поддержкой
>MySQL.

А зачем тогда придумали параметр reject_unverified_recipient? Я думал он для этого и служит. По крайней мере связка Primary MX - Backup MX так работает. Бэкапный MX ничего не знает о существовании конкретного email-а в домене, который он обслуживает, а прежде чем ответить на "RCPT TO", это самое "TO" проверяет у примари MX.

>
>Выбрали для себя РХЕЛ - ну и рхельтесь с ним.
>Выбрали операционку - играйте по её правилам, а не требуйте извращений в
>построении систем.

Не думаю, что задуманное - извращение.

>[оверквотинг удален]
>
>Читать документацию по диагонали - очень плохо.
>
>virtual_mailbox_domains = /var/mail/domains
>virtual_minimum_uid = 2000
>virtual_transport = dovecot
>virtual_uid_maps = static:2000
>
>
>Параметры virtual_mailbox_maps,virtual_alias_maps - придумали не для Вас, их нужно проигнорить ?

Документацию я прекрасно читал. В одном из своих комментариев я так и писал:
В общем вместо virtual_mailbox_maps = type:/file была бы проверка на существование виртуального ящика в dovecot.


"Проверка postfix-ом пользователей в dovecot."
Отправлено ALex_hha , 27-Фев-08 21:29 
>>А зачем такое нужно? Чем не устраивает тот же mysql для хранения
>>инф-ции о почтовых ящиках?
>
>Нужно, потому что в RHEL 5 postfix скомпилирован без mysql/pgsql, и нет
>возможности собрать его с их поддержкой. Поднимать LDAP то-же не очень
>хочется.

почему нет? Что вам мешает скачать соответствующий src.rpm и включить mysql?



"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 21:56 
>>>А зачем такое нужно? Чем не устраивает тот же mysql для хранения
>>>инф-ции о почтовых ящиках?
>>
>>Нужно, потому что в RHEL 5 postfix скомпилирован без mysql/pgsql, и нет
>>возможности собрать его с их поддержкой. Поднимать LDAP то-же не очень
>>хочется.
>
>почему нет? Что вам мешает скачать соответствующий src.rpm и включить mysql?

Потому что, этот сервер будет настроен и передан в филиал. И там, в случае исправления какой либо уязвимости в postfix должны только мочь yum update сделать, а не пересобирать пакет, тем более gcc и всего остального на сервере не будет.



"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 28-Фев-08 07:42 
>[оверквотинг удален]
>>>Нужно, потому что в RHEL 5 postfix скомпилирован без mysql/pgsql, и нет
>>>возможности собрать его с их поддержкой. Поднимать LDAP то-же не очень
>>>хочется.
>>
>>почему нет? Что вам мешает скачать соответствующий src.rpm и включить mysql?
>
>Потому что, этот сервер будет настроен и передан в филиал. И там,
>в случае исправления какой либо уязвимости в postfix должны только мочь
>yum update сделать, а не пересобирать пакет, тем более gcc и
>всего остального на сервере не будет.

1. Поставь Debian и будет тебе счастье.
2. Сделай локальный репозиторий, и выкладывай туда свои пакеты. Тем же самым юмом будешь обновляться.
3. Высылай готовые рпм или деб.



"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 08-Мрт-08 22:25 
>1. Поставь Debian и будет тебе счастье.
>2. Сделай локальный репозиторий, и выкладывай туда свои пакеты. Тем же самым
>юмом будешь обновляться.
>3. Высылай готовые рпм или деб.

Корпоративная политика. RedHat и некаких пересборок.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 09-Мрт-08 01:05 
>>1. Поставь Debian и будет тебе счастье.
>>2. Сделай локальный репозиторий, и выкладывай туда свои пакеты. Тем же самым
>>юмом будешь обновляться.
>>3. Высылай готовые рпм или деб.
>
>Корпоративная политика. RedHat и некаких пересборок.

Ну вот тогда и задавайте вопросы "как настраивать" тем, кто рулит корпоративной политикой.
Или используйте LDAP, он вроде как в коробке.


"Проверка postfix-ом пользователей в dovecot."
Отправлено Savl , 26-Фев-08 01:32 
Речь, если я правильно понял, всё-таки об аутентификации.
SASL - один из возможных механизмов сделать то, о чём Вы спрашиваете.
Какой бы способ хранения базы пользователей Вы ни выбрали, Ваш выбор должен быть виден из цитируемых фрагментов конфигурационных файлов.

На первый взгляд в Вашем master.cf значение поля user должно быть другим:
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Про то, знает ли Ваш postfix о том, что Вы от него ждёте использования механизма аутентификации dovecot, или, точнее, выполнялись ли команды
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1 Вы не сообщили.

Вами не было приведено содержание dovecot.conf, а уж на его секции про socket-listen и protocol lda просто необходимо взглянуть, чтобы ответить на Ваш вопрос корректно.

Если я не ошибаюсь, то параметр, который Вы хотите использовать в main.cf, называется unverified_recipient_reject_code.


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 01:46 
>Речь, если я правильно понял, всё-таки об аутентификации.

Нет, не о ней. Аутентификации нужна тогда, когда из сети не принадлежащей mynetworks у сервера, нужно отослать e-mail на домен который не принадлежит серверу, через который отсылается smtp-конверт.

Здесь же ситуация другая. От какого-либа MTA (к примеру с mxs.mail.ru) поступает mail в домен, который на сервере виртуальный. Так, вот проверить надо не только то, что этот домен принадлежит нашему серверу, но и существование mailbox-а в этом домене. И хочется сделать так, чтобы это проверялось через dovecot. И отлуп, при не существовании mailbox-а, был до DATA.
У меня же получается так, что почта полностью принимается, потом идёт доставка на dovecot, dovecot говорит, что нет такого mailbox и постфикс шлёт bounce. Видимо параметр reject_unverified_recipient, который работает для SMTP транспорта так:
при почтуплении RCPT MAIL подключается к нужному MAIL-серверу, получает ответ по этому пользователю от этого сервера и такой же ответ шлёт клиенту,
c виртуальным транспортом работает как то не так.

>Вами не было приведено содержание dovecot.conf, а уж на его секции про
>socket-listen и protocol lda просто необходимо взглянуть, чтобы ответить на Ваш
>вопрос корректно:

protocols = imap pop3
ssl_disable = no
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
ssl_cipher_list = ALL:!LOW:!SSLv2
login_process_size = 64
mail_location = maildir:/var/spool/mail/%d/%n
first_valid_uid = 2000
last_valid_uid = 2000
first_valid_gid = 2000
last_valid_gid = 2000
protocol imap {
}
protocol pop3 {
}
protocol lda {
  postmaster_address = postmaster@mail.domain.tld
  hostname = mail.domain.tld
  mail_plugin_dir = /usr/lib/dovecot/lda
}
auth_verbose = yes
auth default {
  mechanisms = plain login digest-md5 cram-md5
  passdb passwd-file {
    args = /var/mail/vmailpasswd
  }
  userdb passwd-file {
    args = /var/mail/vmailpasswd
  }
  user = vmail
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = vmail
      group = vmail
    }
    client {
      path = /var/spool/postfix/private/dovecot-smtp-auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}
dict {
}
plugin {
}


"Проверка postfix-ом пользователей в dovecot."
Отправлено Savl , 27-Фев-08 03:33 
Независимо от Вашего мнения предмет обсуждения называется SMTP аутентификацией.

Вид конфигурационного файла dovecot напоминает правду. При этом несколько бы успокоило Ваше заявление в явном виде о том, что реальный домен замаскирован и используемый Вами файл конфигурации несколько отличается от приведённой цитаты. Смутно беспокоит, правда, отсутствие записей в секциях IMAP и POP3, но про чтение почты Вы, вроде, пока не спрашивали.

В моём предыдущем комментарии было указано несколько существенных обстоятельств, которые Вы проигнорировали. Обратите внимание на то, как должно выглядеть поле user в master.cf на самом деле, а также на то, что значение параметра virtual_mailbox_domains в Вашем main.cf выглядит некорректным.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 27-Фев-08 18:04 
>Независимо от Вашего мнения предмет обсуждения называется SMTP аутентификацией.

ню-ню.. Независимо от _Вашего_ мнения предмет обсуждения не является SMTP аутентификацией.

Человек хочет, чтобы транспорт сам проверял наличие пользователя, на этапе приема письма. Исходя из реализации постфикса это мне кажется невозможным, и в руководствах делается не так.


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 22:23 
>
>Человек хочет, чтобы транспорт сам проверял наличие пользователя, на этапе приема письма.
>Исходя из реализации постфикса это мне кажется невозможным, и в руководствах
>делается не так.

Ага именно этого и хочу и кажется, что параметр reject_unverified_recipient именно это и должен делать.


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 21:53 
>Независимо от Вашего мнения предмет обсуждения называется SMTP аутентификацией.
>
>Вид конфигурационного файла dovecot напоминает правду. При этом несколько бы успокоило Ваше
>заявление в явном виде о том, что реальный домен замаскирован и
>используемый Вами файл конфигурации несколько отличается от приведённой цитаты.

Да, домен замаскирован.

>
>В моём предыдущем комментарии было указано несколько существенных обстоятельств, которые Вы проигнорировали.
>Обратите внимание на то, как должно выглядеть поле user в master.cf
>на самом деле

Можно по подробнее, dovecot работает от пользователя vmail, соответственно, и там этот пользователь. Может я что-то не так понимаю?

>,а также на то, что значение параметра virtual_mailbox_domains
>в Вашем main.cf выглядит некорректным.

Он корректен, virtual_mailbox_domains указывает на файл, в котором перечислены виртуальные домены.
Если есть необходимость и вам не лень на него посмотреть, могу предоставить debug-лог приёма e-mail.
Сам я этот лог весь просмотрел, вижу что всё отрабатывает корректно. Хочу ещё раз обратить внимание на то, что, в принципе, вся связка работает корректно.
1. Почта принимается postfix-ом;
2. Передаётся dovecot-у;
3. Dovecot или укладывает почту в ящик пользователя или шлётся bounce, если ящика адресата в dovecot не существует.
Так вот хочется, чтобы прежде чем postfix принял почту, он у dovecot уточнил, есть ли такой реципиент.


"Проверка postfix-ом пользователей в dovecot."
Отправлено ALex_hha , 27-Фев-08 21:32 
>[оверквотинг удален]
>Нет, не о ней. Аутентификации нужна тогда, когда из сети не принадлежащей
>mynetworks у сервера, нужно отослать e-mail на домен который не принадлежит
>серверу, через который отсылается smtp-конверт.
>
>Здесь же ситуация другая. От какого-либа MTA (к примеру с mxs.mail.ru) поступает
>mail в домен, который на сервере виртуальный. Так, вот проверить надо
>не только то, что этот домен принадлежит нашему серверу, но и
>существование mailbox-а в этом домене. И хочется сделать так, чтобы это
>проверялось через dovecot. И отлуп, при не существовании mailbox-а, был до
>DATA.

virtual_mailbox_maps спасет отца русской демократии


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 22:20 
>
>virtual_mailbox_maps спасет отца русской демократии

Да знаю я про него, мне нужно преверять пользователей не в БД, не в файлах, а у dovecot.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 28-Фев-08 07:45 
>>
>>virtual_mailbox_maps спасет отца русской демократии
>
>Да знаю я про него, мне нужно преверять пользователей не в БД,
>не в файлах, а у dovecot.

Плохо знаете, если считаете что он не обязателен.


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 08-Мрт-08 22:27 
>>>
>>>virtual_mailbox_maps спасет отца русской демократии
>>
>>Да знаю я про него, мне нужно преверять пользователей не в БД,
>>не в файлах, а у dovecot.
>
>Плохо знаете, если считаете что он не обязателен.

Он, не обязательный. В конфигурации Primary MX и Backup MX, как я писал выше, он хорошо заменяется на reject_unverified_recipient.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 09-Мрт-08 01:06 
>>>>
>>>>virtual_mailbox_maps спасет отца русской демократии
>>>
>>>Да знаю я про него, мне нужно преверять пользователей не в БД,
>>>не в файлах, а у dovecot.
>>
>>Плохо знаете, если считаете что он не обязателен.
>
>Он, не обязательный. В конфигурации Primary MX и Backup MX, как я
>писал выше, он хорошо заменяется на reject_unverified_recipient.

Что же вы его тогда не заменили, раз он хорошо заменяется на праймари МХ?


"Проверка postfix-ом пользователей в dovecot."
Отправлено ALex_hha , 28-Фев-08 19:10 
>>
>>virtual_mailbox_maps спасет отца русской демократии
>
>Да знаю я про него, мне нужно преверять пользователей не в БД,
>не в файлах, а у dovecot.

а где по вашему будет хранить пользователей dovecot? ;) Не занимайтесь ерундой, проверку существования пользователя должен проверять MTA, имхо.


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 08-Мрт-08 22:30 
>
>а где по вашему будет хранить пользователей dovecot? ;) Не занимайтесь ерундой,
>проверку существования пользователя должен проверять MTA, имхо.

В том же mysql, была бы поддержка mysql в postfix от RedHat, вопрос бы не возник.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 09-Мрт-08 01:07 
>>
>>а где по вашему будет хранить пользователей dovecot? ;) Не занимайтесь ерундой,
>>проверку существования пользователя должен проверять MTA, имхо.
>
>В том же mysql, была бы поддержка mysql в postfix от RedHat,
>вопрос бы не возник.

Про корпоративную политику я уже высказал свое мнение в другой подветке данного обсуждения.

меняйте либо политику, либо пользуйте правильно то что есть.


"Проверка postfix-ом пользователей в dovecot."
Отправлено ALex_hha , 27-Фев-08 21:34 
>virtual_mailbox_domains = /var/mail/domains

какой то бред. Здесь надо указывать виртуальные домены, например - my.virtual.domain.com


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 27-Фев-08 22:03 
>>virtual_mailbox_domains = /var/mail/domains
>
>какой то бред. Здесь надо указывать виртуальные домены, например - my.virtual.domain.com

А если почитать документацию?

virtual_mailbox_domains - This parameter expects the same syntax as the mydestination configuration parameter.
mydestination - Specify a list of host or domain names, "/file/name" or "type:table" patterns, separated by commas and/or whitespace. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a name matches a lookup key (the lookup result is ignored). Continue long lines by starting the next line with whitespace.


"Проверка postfix-ом пользователей в dovecot."
Отправлено PavelR , 28-Фев-08 07:35 
>>>virtual_mailbox_domains = /var/mail/domains
>>
>>какой то бред. Здесь надо указывать виртуальные домены, например - my.virtual.domain.com
>
>А если почитать документацию?
>

Да кто ж её когда пишет в форум читал ?


ЗЫЖ: я не исключение ...



"Проверка postfix-ом пользователей в dovecot."
Отправлено ALex_hha , 28-Фев-08 19:07 
>[оверквотинг удален]
>
>А если почитать документацию?
>
>virtual_mailbox_domains - This parameter expects the same syntax as the mydestination configuration
>parameter.
>mydestination - Specify a list of host or domain names, "/file/name" or
>"type:table" patterns, separated by commas and/or whitespace. A "/file/name" pattern is
>replaced by its contents; a "type:table" lookup table is matched when
>a name matches a lookup key (the lookup result is ignored).
>Continue long lines by starting the next line with whitespace.

Не эффективно держать список доменов в обчном файле, имхо


"Проверка postfix-ом пользователей в dovecot."
Отправлено stas , 09-Мрт-08 01:35 
>[оверквотинг удален]
>Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute name: reason
>Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute value: delivers to command: /usr/libexec/dovecot/deliver
>
>Feb 25 14:24:16 host postfix/smtpd[7701]: private/verify socket: wanted attribute: (list terminator)
>Feb 25 14:24:16 host postfix/smtpd[7701]: input attribute name: (end)
>Feb 25 14:24:16 host postfix/smtpd[7701]: generic_checks: name=reject_unverified_recipient status=0
>
>================================================================
>
>Спасибо.

Если бы Вы внимательно прочитали как работает проверка адреса в Postfix (http://www.postfix.org/ADDRESS_VERIFICATION_README.html), то не ломали бы копья столько времени.
При такой настройке postfix без использования параметра  virtual_mailbox_maps скорее всего не обойтись, прочтите http://www.postfix.org/VIRTUAL_README.html. Там есть такие строки:
NEVER put a virtual MAILBOX wild-card in the virtual ALIAS file!!
Note: if you specify a wildcard in virtual_mailbox_maps, then you still need to configure the non-Postfix mailbox store to receive mail for any address in that domain.

Что, собственно говоря, Вы и сделали.


"Проверка postfix-ом пользователей в dovecot."
Отправлено andrey , 29-Дек-15 16:43 
Удивительно, спустя столько лет, когда потребовалось снова настроить связку dovecot и postfix, при гуглении решения по такому же вопросу гугл привёл меня сюда в мою же ветку (забыл я, что уже пытался решить такую задачу здесь на форуме). Сейчас судя по всему задача уже решаема, но пока не пойму, что на postfix нужно сделать:
http://wiki.dovecot.org/LDA/Postfix, последний абзац:
Dynamic address verification with LMTP

With Dovecot 2.0 you can also use LMTP and the Postfix setting "reject_unverified_recipient" for dynamic address verification. It's really nice because Postfix doesn't need to query an external datasource (MySQL, LDAP...). Postfix maintain a local database with existing/non existing addresses (you can configure how long positive/negative results should be cached).

To use LMTP and dynamic address verification you must first get Dovecot working. Then you can configure Postfix to use LMTP and set "reject_unverified_recipient" in the smtpd_recipient_restrictions.

On every incoming email Postfix will probe if the recipient address exists. You will see similar entries in your logfile:

Recipient address rejected: undeliverable address: host tux.example.com[private/dovecot-lmtp] said: 550 5.1.1 < tzknvtr@example.com > User doesn't exist: tzknvtr@example.com (in reply to RCPT TO command); from=< cnrilrgfclra@spammer.org > to=< tzknvtr@example.com >

If the recipient address exists (status=deliverable) Postfix accepts the mail.

Info: you can not use "reject_unverified_recipient" with "pipe" so this doesn't work with the Dovecot LDA "deliver".


"Проверка postfix-ом пользователей в dovecot."
Отправлено ezh , 26-Фев-17 22:02 
Млин сколько уже в этом топике побывало криворуких м**ов.

Solution:
doveconf -N
читаем внимательно.
Если видим allow_all_users=yes правим.
Подробный ответ в http://wiki.dovecot.org/UserDatabase/Static
И dovecot начинает отбивать левых пользователей сразу после RCPT TO<a@b.c>
Бедный andrey