[Sysadmins] local recipient table for postfix via dovecot passdb
Anton Kvashin
=?iso-8859-1?q?foo_=CE=C1_junior=2Eesoo=2Eru?=
Пт Ноя 16 12:47:05 MSK 2007
Aleksey Avdeev пишет:
> Vladimir V. Kamarzin пишет:
>>>>>>> On 15 Nov 2007 at 02:52 "AA" == Aleksey Avdeev writes:
>>>> В принципе можно вообще не использовать таблицы, а обойтись лишь recipient
>>>> verification, заведя отдельный restriction_class, в котором бы осуществлялась
>>>> проверка reject_unverified_recipient для локальных доменов. См. пример
>>>> http://www.freesource.info/wiki/Dokumentacija/Postfix/BackupMX/recipientverification/rejectunverifiedrecipient?v=ze5&
>>>>
>>>> Допустим, SMTP-клиент пытается залить нам мыло для юзера user на domain. Постфикс
>>>> генерирует конверт и пытается доставить его допустим по lmtp dovecot-у. Если
>>>> Dovecot говорит 550 user unknown, постфикс SMTP-клиента посылает тоже с 550, а
>>>> точнее, клиенту будет процитирован ответ dovecot-а. Соответственно, если
>>>> Dovecot говорит 450, SMTP-клиенту отдаётся тоже 450.
>> AA> А можно ли вклиниться в эту идиллию так, чтобы при этом (срыве
>> AA> доставки по lmtp) сообщения о недоставке (от MAILER-DAEMON@),
>> AA> отправителю не уходили (кроме списка доменов заданного руками)?
>>
>> Гмм, я вижу только один вариант "срыва доставки по lmtp", приводящий к
>> генерации баунсов: если в кэше результат проверки конкретного
>> реципиента положительный (status=deliverable), а MDA по какой-либо причине
>> перестал принимать почту для данного реципиента (например исчерпана квота,
>> юзера удалли, и т.п.), то постфикс будет слать баунсы на envelope-from до тех
>> пор, пока не истечёт время address_verify_positive_refresh_time (default:
>> 7d). В общем, тут важно правильно подобрать параметры кэширования.
>
> Распишу подробнее:
>
> 1. В качестве imap сервера использую cyrus (не dovecot), и списком
> пользователей владеет именно он.
Он может видеть/использовать список пользователей из sql/ldap, т.е.
не единоличное владение.
> 2. Всю приходящую на домен почту (после всех поверок) -- postfix
> пересылает cyrus`у по lmtp.
Не использую postfix, но по памяти virtual_table можно направить в
sql/ldap. И он на этапе rcpt to (если postfix может такое) говорить
550 unknown user.
> 3. В качестве одного из промежуточных фильтров (до передачи по lmtp) --
> используется amavis-new (который тоже в какой-то момент перестал
> проставлять заголовки, но вирусы по прежнему ловит)...
>
> Пока писал, подумал что наблюдаемое вполне может быть из-за amavis`а
> (и/или любого другого фильтра с отложенной обработкой), т. к. он
> обрабатывает сообщения уже находящиеся в очереди postfix`а, _после_
> завершения входящей SMTP сессии. Т. е. из-за использования в процессе
> доставки фильтра обрабатывающего очередь, postfix получает отлуп от
> принимающего по lmtp не в момент существования входящей SMTP сессии, а
> уже после её завершения...
Посмотрите exim. Он позволяет делать контентную фильтрацию в
SMTP-сессии на этапе DATA, без прослоек.
--
Anton Kvashin
Подробная информация о списке рассылки Sysadmins