Вы здесь

[amavisd-new] Доставка нескольким администраторам. [solved]

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

Скажите, amavis умеет доставлять предупреждения о вирусах сразу по нескольким адресам? Пробовал $virus_admin = "user\@domain1.dom, user\@domain2.dom";, и $virus_admin = "user\@domain1.dom user\@domain2.dom";, и $virus_admin = "user\@domain1.dom,user\@domain2.dom"; — ничто не помогает. В логах почтового сервера светится один большой адрес вида "user@domain1.dom, user"@domain2.dom". Как заставить его сделать то, что надо?

Думал, что хеши помогут, но там, как и ожидалось, письмо отправляется по единственному адресу, соответствующему совпадению. Использование алиасов, к сожалению, затруднительно.

upd Смотреть надо конфиги вниматочнее. myorigin

HolyBoy написал:
Как заставить его сделать то, что надо?

Думал, что хеши помогут, но там, как и ожидалось, письмо отправляется по единственному адресу, соответствующему совпадению. Использование алиасов, к сожалению, затруднительно.

В смысле "алиасов"?
Используй списки рассылки (Или это то, что ты называешь "алиасами"?):
Локальный MTA в режиме форвардинга, amavisd отдаёт ему письмо на адрес admin@mydomain.ru (по факту являющийся списком адресов) и уже MTA рассылает извещение по адресам из списка.

—

:wq
--
Live free or die

Ага. Это я и делал. Потому приписка в исходном посте была такая.

В /etc/mail/aliases добавил:

user:
 ,
 

и сделал newaliases, при этом, relay_domains = domain.ru.

При отправке письма echo 123 | mail user, оно валится туда, куда указывает transport_maps, т.е. на сервер, который является конечным пунктом назначения на адрес

. А надо, чтобы он слал по адресам, указанным для этого алиаса.

Можно поподробней ?

П.С на крайний случай можно заюзать для transport_maps любую lookup table

—

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Можно подробней.

main.cf

alias_database = hash:/etc/mail/aliases
alias_maps = hash:/etc/mail/aliases
bounce_queue_lifetime = 1d
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
daemon_directory = //usr/lib/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
default_destination_concurrency_limit = 20
disable_vrfy_command = yes
home_mailbox = .maildir/
html_directory = /usr/share/doc/postfix-2.6.5/html
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
maximal_backoff_time = 6h
maximal_queue_lifetime = 3d
minimal_backoff_time = 180s
myhostname = host.domain.ru
mynetworks = 127.0.0.0/8, 10.3.0.11
myorigin = domain.ru
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.5/readme
receive_override_options = no_address_mappings
relay_domains = domain.ru
relay_recipient_maps = hash:/etc/postfix/relay_recipients
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtp_always_send_ehlo = yes
smtp_helo_timeout = 60s
smtp_mail_timeout = 60s
smtp_rcpt_timeout = 90s
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_restrictions = permit_mynetworks,   check_client_access regexp:/etc/postfix/spamers,   reject_unknown_client_hostname,   reject_rbl_client http.dnsbl.sorbs.net,   reject_rbl_client soks.dnsbl.sorbs.net,   reject_rbl_client smtp.dnsbl.sorbs.net,   reject_rbl_client dul.dnsbl.sorbs.net,   reject_rbl_client xbl.spamhaus.org,   permit
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = yes
smtpd_etrn_restrictions = reject
smtpd_hard_error_limit = 1
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,   reject_invalid_helo_hostname,   reject_non_fqdn_helo_hostname,   reject_unknown_helo_hostname,   permit
smtpd_recipient_limit = 10
smtpd_recipient_restrictions = permit_mynetworks,   reject_non_fqdn_recipient,   reject_unknown_recipient_domain,   reject_unlisted_recipient,   reject_unauth_destination,   permit
smtpd_reject_unlisted_recipient = yes
smtpd_sender_restrictions = permit_mynetworks,   reject_non_fqdn_sender,   reject_unknown_sender_domain,   reject_rhsbl_sender http.dnsbl.sorbs.net,   reject_rhsbl_sender soks.dnsbl.sorbs.net,   reject_rhsbl_sender smtp.dnsbl.sorbs.net,   reject_rhsbl_sender dul.dnsbl.sorbs.net,   reject_rhsbl_sender xbl.spamhaus.org,   permit
smtpd_timeout = 120s
strict_rfc821_envelopes = yes
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550

transport

domain.ru  smtp:[10.3.0.11]

Ну а список рассылки постами выше.

смысл transport_maps вкупе с relay_domains вам точно понятен ?

я пока не понимаю конфигурацию схему с релеями, потому вопросы:
и так: есть сервер с MX example.com.

сервер , указанный в relay_domains - он кто по отношению к данному серверу ?
есть адрес вида

- надо при посылке писма на этот адрес рассылать на

и

? я правильно понимаю задачу ?

П.С легче все таки в конфе порешать

—

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga написал:
смысл transport_maps вкупе с relay_domains вам точно понятен ?

Редиско, почто обрываешь изложение на самом интересном месте?

—

:wq
--
Live free or die

Anarchist написал:
Редиско, почто обрываешь изложение на самом интересном месте?

А у тебя, как понимаю, вопросов на тему: как можно одному и тому же пользователю класть локально письмо и сделать рассылку не осталось? Сам подкорректировал своё видение на тему как оно должно быть?

slepnoga написал:
смысл transport_maps вкупе с relay_domains вам точно понятен ?

После твоих слов я и сам засомневался. Посмотрел маны. Решил слегка поправить по итогам конфиги, чтобы было как положено. Итак: терзаемый мною сейчас сервер является релеем для domain.ru. Этот домен указывается в relay_domains, чтобы разрешить MTA пересылать письма, относящиеся к нему. Список пересылаемых адресов берётся из relay_recipient_maps. Далее, в transport_maps указываем, куда именно засылать письма (вот тут и поправил): domain.ru relay:[10.3.0.11]

Но, по сути, это всё косметические штрихи. Если ты что-то другое имел в виду, не останавливайся, расскажи, пожалуйста.

slepnoga написал:
я пока не понимаю конфигурацию схему с релеями, потому вопросы:
и так: есть сервер с MX example.com.

Да. Это то, что я называл domain.ru.

slepnoga написал:
сервер , указанный в relay_domains - он кто по отношению к данному серверу ?

Конечный получатель. И не в relay_domains, а в transport_maps.

slepnoga написал:
есть адрес вида

- надо при посылке писма на этот адрес рассылать на

и

? я правильно понимаю задачу ?

Да.

Задача простая, но я не пойму, почему почтовик ведёт себя именно так. Кстати, после вышеуказанных изменений снова попробовал список рассылки: echo test | mail virusadmin. И снова он заслал не по указанным в /etc/mail/aliases адресам, а по

. И даже когда отключил relay.

slepnoga написал:
П.С легче все таки в конфе порешать

Да, но в конфе надо ещё, чтобы время совпало. А тут, во-первых, другим почитать есть что, во-вторых, каждый собеседник пишет тогда, когда удобно.

Впрочем, ещё раз пробежался по конфигурации и нашёл свой косяк: myorigin = domain.ru. После исправления на myorigin = $myhostname, всё заработало, как и положено.

HolyBoy написал:
При отправке письма echo 123 | mail user, оно валится туда, куда указывает transport_maps, т.е. на сервер, который является конечным пунктом назначения на адрес

. А надо, чтобы он слал по адресам, указанным для этого алиаса.

А ты назвал группу реальным пользователем твоего почтового сервера?
ИМХО это вопрос к конфигурации сервера электронной почты.
По настройке postfix'а обращайся к slepnoga, не моя тема.

—

:wq
--
Live free or die

Да, пользователь существует.

HolyBoy написал:
Да, пользователь существует.

ИМХО причина того, что трансляция через группу у тебя не работает именно в этом.
Вообще в моём представлении о здравом смысле список рассылки (группа), совпадающая с неким системным пользователем... выглядит очень странно.
Попробуй исправить этот момент.

—

:wq
--
Live free or die

Никакого эффекта, точнее, результат тот же. Более того, если я укажу даже не существующего ни в таблице алиасов, ни в списке релейных пользователей testuser, то МТА исправно допишет ему @domain.ru и отправит по transport_maps. Вопросов к тому, почему принимается — нет, ибо permit_mynetworks, но вот почему вот так вольно обращается с пользователем — неясно до сих пор.

HolyBoy написал:
Никакого эффекта, точнее, результат тот же. Более того, если я укажу даже не существующего ни в таблице алиасов, ни в списке релейных пользователей testuser, то МТА исправно допишет ему @domain.ru и отправит по transport_maps. Вопросов к тому, почему принимается — нет, ибо permit_mynetworks, но вот почему вот так вольно обращается с пользователем — неясно до сих пор.

Ты меня извини, но это --- вопрос к тебе.
Точнее --- к глубине понимания тобой принципов работы (и соответственно степени настройки настройки) почтового сервера.

Только что проверил, при использовании sendmail'а оно работает в точности как я и говорил.

—

:wq
--
Live free or die

На другом сервере прекрасно работает доставка писем для существующего пользователя как в пользовательский ящик, так и в другие, соответственно указанному алиасу. Правда, там сделано немного по-другому.

А здесь вот такие пироги.

HolyBoy написал:
На другом сервере прекрасно работает доставка писем для существующего пользователя как в пользовательский ящик, так и в другие, соответственно указанному алиасу. Правда, там сделано немного по-другому.

Какой SMTP-сервер используется там, где работает?
Конфиги?

—

:wq
--
Live free or die

У меня работает. В организации. Используется postfix.

Вот, кусок main.conf, который делает то, о чём я говорю:

virtual_mailbox_base = /
virtual_mailbox_maps = ldap:ldapvirtual
virtual_uid_maps = static:207
virtual_gid_maps = static:12
virtual_minimum_uid = 200
virtual_transport = virtual
virtual_alias_maps = ldap:ldapalias


ldapvirtual_server_host = mainserv
ldapvirtual_server_port = 389
ldapvirtual_version = 3
ldapvirtual_bind = yes
ldapvirtual_bind_dn = cn=bind,ou=Users,dc=domain,dc=com
ldapvirtual_bind_pw = 1
ldapvirtual_search_base = ou=Mail,dc=domain,dc=com
ldapvirtual_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(|(AccountStatus=active)(accountStatus=shared)))
ldapvirtual_result_attribute = mailMessageStore

ldapalias_server_host = mainserv
ldapalias_server_port = 389
ldapalias_version = 3
ldapalias_bind = yes
ldapalias_bind_dn = cn=bind,ou=Users,dc=domain,dc=com
ldapalias_bind_pw = 1
ldapalias_search_base = ou=Mail,dc=domain,dc=com
ldapalias_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(|(AccountStatus=active)(AccountStatus=shared)))
ldapalias_result_attribute = mail

Соответственно, если в каталоге для mail указано несколько адресов, не обязательно, причём, относящихся к моему домену, то при посылке этому пользователю письма, оно не только ему в ящик кладётся локально, но и отсылается туда, куда сказано. А вот когда приходит письмо на один из mailAlternateAddress, то оно попадает в mailMessageStore, описанный для соответствующего mail и рассылается, опять же, по другим адресам, если они там, для этого mail перечислены.

Я не пойму, почему для моей проблемы не работает практически то же самое, за исключением того, что сервер является релеем и пользователи реальные или перечислены в соответствующем файле.

PS Кстати, что мне нравится в решениях с LDAP и прочим: если я захочу, я могу указать ещё один mailMessageStore и все письма пользователям будут складываться ещё куда-то локально. В общем, всё это очень здорово.

@*_admin_maps?

—

Не грусти, товарищ! Всё хорошо, beautiful good!

Т.е.?

У amavisd есть опции @*_admin_maps (spam, virus, badh), куда можно загонять адреса администраторов доменов. Проверь посмотри, может, там можно списком через запятую можно указать все админов для одного домена.

—

Не грусти, товарищ! Всё хорошо, beautiful good!

А, понял.

Я это уже пробовал с самого начала, когда начал разбираться. К сожалению, это хэш. Посему, оно не сработает: я могу указать один и тот же аргумент при разных результатах, но выполнится только первый встречный. В самом начале написал.

Осталось только через алиасы, но с ними тоже проблемы обнаружились. Тогда сюда и обратился.