Microsoft Exchange. Настройка Sender Based routing.
Периодически у администраторов Microsoft Exchange возникают задачи, которые связаны с необходимостью отправки почты с различных IP адресов, в зависимости от домена или почтового адреса отправителя. Еще совсем недавно данная проблема считалась практически не решаемой, но сегодня все изменилось! Благодаря разработанному мной решению, настроить Sender Based маршрутизацию в Microsoft Exchange сможет даже ваш начальник!Подготовительные работы.
Первым делом надо настроить IP адреса для внешних сетевых интерфейсов. Выполнить это можно различными способами. Самый простой - добавить сетевой интерфейс внутри виртуальной машины. Предположим, что данный шаг мы так или иначе выполнили. Теперь у нашего сервера есть два внешних IP адреса:
199.59.242.150 #для отправки писем от @lin.by, так же используется по умолчанию
199.59.242.200 #для отправки писем от @activecloud.ru
Далее проверим, что Postfix установлен. Если его нет, то эта же строка выполнит установку:
#yum -y install postfix
Теперь надо немного поправить файл main.cf. В первую очередь сохраним текущие настройки:
#mv /etc/postfix/main.cf /etc/postfix/main.cf.ORIG
Создадим новый конфигурационный файл:
#vi /etc/postfix/main.cf
queue_directory = /dev/shm/postfix
bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
#Hostname
myhostname = relay.lin.by
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
#IP адреса Exchange (или подсети), для которых разрешена пересылка
mynetworks = 127.0.0.1 172.217.20.174
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
#дефолтный адрес для исходящих сообщений
smtp_bind_address = 199.59.242.150
#максимальный размер сообщения
message_size_limit = 50240000
#маршруты
sender_dependent_default_transport_maps = regexp:/etc/postfix/sdd_transport_maps.regexp
Теперь создадим файл, в котором будет указан транспорт для доменов и IP адресов:
#vi /etc/postfix/sdd_transport_maps.regexp
/@lin\.by$/ smtp-lin:
/@activecloud\.ru$/ smtp-active:
На следующем этапе необходимо создать SMTP транспорт. Для этого в файле master.cf добавим строки:
smtp-lin unix - - n - - smtp
-o smtp_bind_address=199.59.242.150
-o smtp_helo_name=mail.lin.by
-o syslog_name=maillog-lin
smtp-active unix - - n - - smtp
-o smtp_bind_address=199.59.242.200
-o smtp_helo_name=mail.activecloud.ru
-o syslog_name=maillog-active
Обратите внимание - два пробела перед "-о" обязательны! Когда все готово, вы полним рестарт Postfix:
#service postfix restart
Проверим, что маршруты работают корректно:
# postmap -q tema@activecloud.ru regexp:/etc/postfix/sdd_transport_maps.regexp
smtp-active:
# postmap -q tema@lin.by regexp:/etc/postfix/sdd_transport_maps.regexp
smtp-lin:
Для тестирования будем использовать mailx. Установим его:
#yum install mailx -y
Теперь выполним отправку тестового сообщения и проверим лог:
#echo -e "test message" | /bin/mail -s "test subject" -r "tema@activecloud.ru" "tema@active.by"
#grep maillog-active /var/log/maillog
Mar 30 11:50:05 WAP-WEB maillog-lin/smtp[33180]: 41AD940E6680: to=
Видим, что транспорт использовался корректный. Дополнительно можно проверить тело письма. В нем мы увидим IP адрес отправителя.
На этом предварительную настройку Sender-based routing Exchange можно считать законченной.
Основная часть работ.
Итак, подготовительные работы были успешно завершены. Приступим к основной части - настройке SmartHost в коннекторе отправки (Send Connector). Для большей наглядности будем использовать EAC:
IP сервера Exchange мы ранее указали в параметре mynetworks (Postfix), поэтому аутентификация не требуется. Так же не забудьте после внесения изменений проверить, что все письма уходят и доставляются корректно.
Как видим, в Microsoft Exchange Server, Sender Based routing настраивается очень просто!
Здравствуйте,
ОтветитьУдалитьсушествует вариант решения проблемвы без использования Postfix сервера:
https://ivasoft.com/routebysender2013.shtml
Пробуйте!
Вариант с Postfix намного дешевле (нужна только маленькая ВМ Linux), к тому же не требует установки TransportAgent. Плюс очень надежен, безопасен, прост в обслуживании и развертывании. Еще и работает прозрачно. Вплоть до того, что можно посмотреть исходный код.
УдалитьЛично я не вижу ни одного плюса вашего решения. Еще и дополнительная точка отказа - если что поломается, будет очень сложно разобраться. А у Postfix есть шикарнейшие логи.