LINUX.ORG.RU
ФорумAdmin

Postfix, Zimbra, split domain

 , ,


0

1

Приветствую, настало время мигрировать со старого почтового сервера (Postfix, MYSQL, VirtualMailBox, postfixadmin) (наследство на FreeBSD, socket 478, постепенно загибается по производительности,функционалу, так и по техническому состоянию железа) на Зимбу, чтобы было все по фен-шую.

Хочется настроить плавную миграцию пользователей внутри одного почтового домена - чтобы почта ходила внутри одного домена на оба почтовых сервера так называемый Split Domain/

Как планирую: настроить Zimbry как Secondary System (https://wiki.zimbra.com/wiki/Split_Domain#Configuring_Zimbra_as_the_Secondary_System) Входящая почта будет первоначально поступать на Zimbra, если почтовый адрес на ней существует, то письмо поступает в него; если нет то отправляется на старый почтовый сервер.

$ zmprov md example.com zimbraMailCatchAllAddress @example.com
$ zmprov md example.com zimbraMailCatchAllForwardingAddress @example.com
$ zmprov md example.com zimbraMailTransport smtp:mail.example.com

Протестировал, все работает, но каким способом также настроить старый Postfix не вкурил пока. Правило transport_map для такого вида доставки не работае, так postfix в данном случае использует virtual_transport. Подскажите как быть. Заранее спасибо

конфиг старого postfix

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = mail.example.com
mydomain = example.com
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
relay_domains =
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
message_size_limit = 524288000
mailbox_size_limit = 1012000000
mynetworks_style = host 
mynetworks = 127.0.0.0/8
#alias_maps = hash:/usr/local/etc/postfix/aliases
#alias_database = hash:/usr/local/etc/postfix/aliases
smtpd_banner = CORPMAIL ESMTP MIF
#debug_peer_level = 2
debug_peer_level = 1
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
#content_filter = scan:[127.0.0.1]:10025
#receive_override_options = no_address_mappings         
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix

virtual_mailbox_base = /var/mail/virtual/
virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid             = 65534
virtual_uid_maps                = static:65534
virtual_gid_maps                = static:65534
virtual_transport               = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = 
		permit_mynetworks,
		permit_sasl_authenticated,
		reject_unauth_destination,
		reject_unauth_pipelining,
		reject_rbl_client cbl.abuseat.org,
#		reject_rbl_client combined.njabl.org,
#		reject_rbl_client dnsbl.njabl.org,
#		reject_rbl_client dul.ru,
#		reject_rbl_client dynablock.njabl.org,
#		reject_rbl_client opm.blitzed.org
#		reject_rhsbl_client blackhole.securitysage.com,
#		reject_rhsbl_client rhsbl.sorbs.net,
#		reject_rhsbl_sender blackhole.securitysage.com,
#		reject_rhsbl_sender rhsbl.sorbs.net
virtual_mailbox_domains = mif76.ru mif.yaroslavl.ru
sender_bcc_maps = hash:/usr/local/etc/postfix/sender_bcc
recipient_bcc_maps = hash:/usr/local/etc/postfix/recipient_bcc

UPD собственно не могу понять в каком месте базы прописывать:

transport_maps = hash:/etc/postfix/transport

/etc/postfix/transport
uniq_mail1@mydomain.com smtp:[remote.postfix.ip.address]
uniq_mail2@mydomain.com smtp:[remote.postfix.ip.address]
uniq_mail3@mydomain.com smtp:[remote.postfix.ip.address]
...
uniq_mail20@mydomain.com smtp:[remote.postfix.ip.address]

Судя по предоставленному конфигу, transport_maps в базе не представлен.
добавь в main.cf
transport_maps = mysql:$config_directory/mysql-transport.cf нужно будет указать структуру базы и параметры подключения
или без использования базы
transport_maps = hash:$config_directory/transport

/etc/postfix/transport
uniq_mail1@mydomain.com smtp:[remote.postfix.ip.address]
uniq_mail2@mydomain.com smtp:[remote.postfix.ip.address]
etc...

не забудь про postmap

samarin ()
8 февраля 2016 г.
Ответ на: комментарий от raikkonen

А вот все же касаемо transport. У меня он настроен.Но у меня там более 4 тысяч пользователей. Зимбра так же настроена из вики. Сам postfix используется как релей, он по файлу transport перенаправляет почту на комунигейт, если не нашел ящик, то отправляет извещение, что ящик не найден идите в опу. Сейчас я внедряю зимбру, много что надо протестить, и переношу все частями. И вот так опять же туда переписывать всех да пипец просто. Как-нибудь можно настроить постфикс как зимбру? Зимбра не нашла ящик, отослала на постфикс, постфикс не нашел ничего отправил на зимбру. Как вот это реализовать?

AlexGig ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.