Мне нужно управлять двумя почтовыми серверами (postfix и dovecot на разных машинах), используя один общедоступный IP-адрес. Я думал, что решил, поставив нестандартные порты на второй экземпляр postfix, но я не получаю почту из-за пределов моей сети.
Мой подход правильный? Как мне этого добиться?
Вы можете запустить только один MTA на каждом IP-адресе. Это связано с тем, что записи MX, в отличие от записей SRV, не позволяют указывать порт. Письма с других сайтов всегда поступают через стандартные порты (25, 465 устарело и 587 - для отправки). Эти порты ни в коем случае не должны переходить к разным MTA, иначе у вас возникнут странные проблемы с доставкой, хотя на самом деле вам нужно обслуживать только 25.
Все это не имеет ничего общего с dovecot, который является сервером IMAP и POP3. В данном случае все дело в SMTP-сервере, или MTA, postfix. Вы можете запускать IMAP и POP3 на нестандартных портах, если вы готовы передать их своим пользователям.
Вы должны настроить MTA на новом сервере с IP-адресом, а два существующих MTA использовать адреса RFC1918. Пусть новый MTA действует как ретранслятор для этих двух доменов и предоставит ему внутренний DNS, чтобы он видел адреса RFC1918 в записях MX. Убедитесь, что он может ретранслировать только эти два домена, и ваши проблемы будут решены. Он не нужен для ретрансляции исходящей почты, а внутренние клиенты SMTP могут отправлять почту через существующие почтовые серверы.
Задайте в записях MX для обоих доменов имя домена, указывающее на ваш единственный IP-адрес, и настройте записи SPF для этих доменов, чтобы разрешить FQDN, указанному в общедоступном DNS этого IP-адреса, отправлять им почту. Убедитесь, что ваш NAT настроен так, что SNAT ваших SMTP-серверов использует этот IP-адрес.
Это оно! После этого он должен работать, без каких-либо проблем с управлением ИТ.
postfix способен ретранслировать сообщения на другой сервер для определенных доменов.
Взгляните на эту настройку для примера: Прокси-почта на другой smtp-сервер с Postfix