[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