Postfix как frontend для Exchange 2007
Некоторое время назад перевел корпоративную почту на Exchange 2007, но пускать Exchange напрямую в интернет у меня нет ни малейшего желания. Сугубо моё ИМХО, но Linux в плане безопасности намного надежнее (спорить по этому поводу не хочу). В связи с этим было принято решение оставить Linux (а соответственно и Postfix) в качестве шлюза и фаервола. Плюсы (помимо безопасности) в дополнительной фильтрации на спам (и вирусы) на уровне Postfix и отсутствием дополнительных затрат на ПО (если в качестве альтернативы рассматривать дополнительный пограничный сервер на Win2k3+ADAM и Exchange в роли Edge Transport). Опишу только необходимые изменения исходя из того, что Postfix и Exchange 2007 уже установлены и работают.
1. Редактируем main.cf
Имя сервера:
myhostname = mx.test.ru
Имя домена:
mydomain = test.ru
Доверенные сети:
mynetworks = 127.0.0.0/8, 192.168.1.1
(в данном примере 192.168.1.1 это адрес Exchange сервера в нашей сети, которому мы разрешаем отправлять почту через Postfix)
Список локальных получателей оставляем пустым, т.к. локально почта на этот сервер доставляться уже не будет:
local_recipient_maps =
Файл с таблицей маршрутов транспорта:
transport_maps = hash:/usr/local/etc/postfix/transport
2. Редактируем файл transport
Указываем домен и внутренний адрес сервера Exchange 2007, на который должна переправляться вся поступающая для этого домена почта:
test.ru smtp:[192.168.1.1]
Указав адрес в квадратных скобках мы запрещаем Postfix ресолвить это адрес. Если необходимо указать доменное имя сервера, то его надо будет ввести без скобок.
3. Создаем базу данных transport командой postmap transport
.
4. просим Postfix перечитать свои конфиги командой postfix reload
.
5. Создаем SMTP-коннектор в Exchange 2007 для отправки писем.
Для этого открываем Командную консоль Exchange и запускаем:
[PS] C:\>New-SendConnector -Name 'OUT' -Usage 'Internet' -AddressSpaces 'smtp:*;1' -DNSRoutingEnabled $false -SmartHosts '[192.168.1.2]' -SmartHostAuthMechanism 'None' -SourceTransportServers 'EXCHANGE'
Где EXCHANGE это имя сервера с Exchange 2007, а 192.168.1.2 - адрес Postfix сервера.
6. Разрешаем Exchange 2007 получать почту от Postfix сервера без авторизации.
Открываем Командную консоль Exchange:
set-ReceiveConnector “Default EXCHANGE” -permissiongroups: “ExchangeUsers, ExchangeServers, ExchangeLegacyServers, AnonymousUsers”
Где EXCHANGE это имя сервера с Exchange 2007.
Готово!