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

Исходное сообщение
"Postfix milter и virtual_alias_maps"

Отправлено _Slt , 08-Окт-15 16:26 
Коллеги, доброго дня.

Имеем:
%uname -sr
FreeBSD 9.3-RELEASE-p26

%pkg info | egrep -E "(postfix|rspamd|rmilter|clam)"
clamav-0.98.7                  Command line virus scanner written entirely in C
postfix-2.11.6,1               Secure alternative to widely-used Sendmail
rmilter-1.6.1_1                Milter that performs spamd, clamav, and spf checks
rspamd-1.0.2                   Fast spam filtering system

Пытаюсь настроить postfix с  фильтрацией почты на спам и вирусы через rmilter и у меня возникла проблема с  адресами пересылки.
На адрес tnoc@example.ru приходит письмо и дальше оно должно быть доставлено нескольким получателям, но этого не происходит.

main.cf
#[VIRUS_SPAM_CHECK]
smtpd_milters = unix:/var/run/rmilter/rmilter.sock
milter_protocol = 6
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
milter_default_action = accept

virtual_alias_maps = ldap:valiasexample
valiasexample_query_filter = (&(objectClass=qmailUser)(|(mail=%s)(mailAlternateAddress=%s)))
valiasexample_result_attribute = mail, mailForwardingAddress


Приходит письмо на адрес рассылки tnoc@example.ru
...
Oct  8 14:56:16 aid postfix/smtpd[53201]: >>> CHECKING RECIPIENT MAPS <<<

ищем адрес в LDAP-е

Oct  8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_lookup: Using existing connection for LDAP source valiasexample
Oct  8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_lookup: valiasexample: Searching with filter (&(objectClass=qmailUser)(|(mail=tnoc@example.ru)(mailAlternateAddress=tnoc@example.ru)))
Oct  8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: Search found 1 match(es)
Oct  8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: search returned 1 value(s) for requested result attribute mail
Oct  8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: search returned 3 value(s) for requested result attribute mailForwardingAddress
Oct  8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: Leaving dict_ldap_get_values
Oct  8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_lookup: Search returned tnoc@example.ru,user1@example.ru,user2@example.ru,user3@example.ru
Oct  8 14:56:16 aid postfix/smtpd[53201]: maps_find: virtual_alias_maps: ldap:valiasexample(0,lock|fold_fix): tnoc@example.ru = tnoc@example.ru,user1@example.ru,user2@example.ru,user3@example.ru
Oct  8 14:56:16 aid postfix/smtpd[53201]: mail_addr_find: tnoc@example.ru -> tnoc@example.ru,user1@example.ru,user2@example.ru,user3@example.ru
...

Нашли адрес и тут же получили адреса пересылки, тут проблем нет.

В конце концов письмо отдаётся LDA, но только на адрес tnoc@example.ru, а рассылки на остальные адреса не происходит.  Вот в этом и проблема.

Oct  8 14:56:16 aid postfix/pipe[53341]: 97E1F1800B: to=<tnoc@example.ru>, relay=nolocal, delay=0.27, delays=0.26/0.01/0/0, dsn=2.0.0, status=sent (delivered via nolocal service)
Oct  8 14:56:16 aid postfix/qmgr[52904]: 97E1F1800B: removed

На другом сервере (настройки почти идентичные), где фильтрация настроена иначе postfix→clamsmtpd→spamd->postfix,  лог следующий:

Oct  8 11:01:27 soap postfix/pipe[96049]: C8C3A3AD0D: to=<tnoc@example.ru>, relay=nolocal, delay=0.19, delays=0.16/0.02/0/0, dsn=2.0.0, status=sent (delivered via nolocal service)
Oct  8 11:01:28 soap postfix/pipe[12334]: C8C3A3AD0D: to=<user1@example.ru>, orig_to=<tnoc@example.ru>, relay=dovecot, delay=0.35, delays=0.16/0.02/0/0.17, dsn=2.0.0, status=sent (delivered via dovecot service)
Oct  8 11:01:28 soap postfix/pipe[89204]: C8C3A3AD0D: to=<user2@example.ru>, orig_to=<tnoc@example.ru>, relay=dovecot, delay=0.35, delays=0.16/0.03/0/0.16, dsn=2.0.0, status=sent (delivered via dovecot service)
Oct  8 11:01:28 soap postfix/pipe[89206]: C8C3A3AD0D: to=<user3@example.ru>, orig_to=<tnoc@example.ru>, relay=dovecot, delay=0.36, delays=0.16/0.04/0/0.15, dsn=2.0.0, status=sent (delivered via dovecot service)

Иными словами, если я использую для фильтрации milter на postfix-е, то  при передаче письма LDA postfix напрочь забывает про  virtual_alias_maps .
Почему так происходит?
Заранее благодарен за Ваш ответ.


Содержание

Сообщения в этом обсуждении
"Postfix milter и virtual_alias_maps"
Отправлено _Slt , 08-Окт-15 17:01 
> Коллеги, доброго дня.

Разобрался. Нужно было закомментировать

#receive_override_options = no_address_mappings

Oct  8 16:54:28 aid postfix/smtpd[50545]: before input_transp_cleanup: cleanup flags = enable_header_body_filter enable_automatic_bcc enable_address_mapping enable_milters
Oct  8 16:54:28 aid postfix/smtpd[50545]: after input_transp_cleanup: cleanup flags = enable_header_body_filter enable_automatic_bcc enable_address_mapping enable_milters


"Postfix milter и virtual_alias_maps"
Отправлено sergicus , 12-Дек-15 18:48 
>> Коллеги, доброго дня.
> Разобрался. Нужно было закомментировать
> #receive_override_options = no_address_mappings
> Oct  8 16:54:28 aid postfix/smtpd[50545]: before input_transp_cleanup: cleanup flags =
> enable_header_body_filter enable_automatic_bcc enable_address_mapping enable_milters
> Oct  8 16:54:28 aid postfix/smtpd[50545]: after input_transp_cleanup: cleanup flags = enable_header_body_filter
> enable_automatic_bcc enable_address_mapping enable_milters

Уважемый _Slt спасибо за то что вы ответили о там как решили проблему. Была похожая проблема, решил благодоря Вам