Назад | Перейти на главную страницу

Постфикс как смарт-хост? Это возможно

У нас есть 3 SMTP-сервера на 3 отдельных публичных статических ip. У нас есть вторичное резервное соединение на одном статическом ip. Я хотел бы разместить все 3 SMTP-сервера за маршрутизатором и отключить общедоступные IP-адреса, использовать postfix для приема почты как при основном подключении к Интернету, так и при отказе, а затем перенаправить всю электронную почту на теперь внутренние SMTP-серверы. Это 3 разных домена электронной почты. Как мне настроить Postfix cnfg для этого? Я погуглил и не нашел подходящего решения. У меня есть существующая система Ubuntu 16.04, которая в настоящее время действует как шлюз SSH, и я бы хотел использовать эту же машину для smtp-gateway / smarthost.

Маршрутизация входящей почты через основное и резервное интернет-соединение так же просто, как установка правильных записей приоритета MX в DNS:

example.com.        86400   IN      MX      10 mx1.example.com.
example.com.        86400   IN      MX      20 mx2.example.com.
mx1.example.com.    86400   IN      A       <ip-on-primary-internet-connection>
mx1.example.com.    86400   IN      A       <ip-on-secondary-internet-connection>

То же самое и для других ваших доменов:

example.net.        86400   IN      MX      10 mx1.example.com.
example.net.        86400   IN      MX      20 mx2.example.com.

В Postfix вам нужна конфигурация, которая будет принимать входящую почту для example.com и example.net для ретрансляции, а не для локальной доставки, и которая будет направлять ее на правильный внутренний сервер. Примерно следующее:

добавить example.com и example.net в relay_domains параметр:

[...]
relay_domains = $mydestination, example.com, example.net
[...]

Настройте транспортную карту, также в /etc/postfix/main.cf :

[...]
transport_maps = hash:/etc/postfix/transport
[...]

И карта /etc/postfix/transport будет направлять почту для каждого домена на определенный SMTP-сервер:

example.com       smtp:[internalhost1.example.com]
example.net       smtp:[internalhost2.example.com]