Настройка SMTP-реле, которое идет назад и вперед

473
cyllos

У меня дома работает SMTP-сервер Postfix, который не может отправлять или получать почту из-за ограничения интернет-провайдера. (нет входящего порта 25 или исходящего)
У меня есть VPS с общедоступным IP-адресом, который я хочу использовать для ретрансляции моей домашней почты в Интернет.

Это должно происходить так:
получение почты: Интернет> VPS Relay> Homeserver
отправка почты: Homeserver> VPS Relay> Интернет

Мне удалось успешно настроить исходящий постфиксный SMTP-ретранслятор, который работает. Теперь проблема заключается в получении писем: если я говорю ретранслятору отправлять входящие письма на мой домашний сервер, он работает, но он также отправляет всю исходящую почту обратно на мой домашний сервер (который отправляет ее обратно на ретранслятор, который отправляет ее обратно на мой дом). ...)

Я попытался использовать туннель SSH для пересылки входящих писем с моего VPS на мой домашний сервер, который работал, но также сделал его открытым ретранслятором. (Запросы пришли от localhost, поэтому все было разрешено)

Единственное, что мне нужно знать, это как указать postfix отправлять входящие письма на мой домашний сервер и выходить в Интернет, но мне не удалось найти его.

Спасибо, что посмотрели!

Конфигурация соответствующего сервера: postconf -n

myhostname = [*homeservers public dns name*] mynetworks = 127.0.0.0/8, [*my public relay's IP*]/32 mynetworks_style = subnet myorigin = $myhostname relay_domains = $mydestination relayhost = [*my public relay's domain name*]:587

Конфигурация сервера VPS: postconf -n mydestination = localhost myhostname = [*VPS public dns name*] mynetworks = 127.0.0.0/8, [*home server public ip*]/32 mynetworks_style = subnet relay_domains = soft_bounce = yes transport_maps = hash:/etc/postfix/transport

2

2 ответа на вопрос

1
davidgo

Проблема в том, что вы не установили «mydestination», поэтому по умолчанию используется значение моего имени хоста, а не доменных имен, для которых вы пытаетесь получать почту, и отклонение другой почты как не локальной.

Должен ли я установить мое назначение на моем VPS тогда? Мой ретранслятор ретранслирует почту, единственная проблема в том, что исходящая почта также ретранслируется обратно на домашний сервер, который отправляет ее обратно на мой VPS и т. Д. cyllos 5 лет назад 0
Нет, вы должны установить его на своем домашнем сервере, так как это сервер, который должен локально обрабатывать электронную почту. davidgo 5 лет назад 0
Спасибо за помощь, но установка этого не имеет значения. Я могу либо получать письма, но не отправлять их, либо отправлять письма, но не получать, в зависимости от того, отправляет ли мое реле почту на мой домашний сервер или нет. Если я включаю пересылку почты на свой домашний сервер, то все идет туда, не только входящие, но и исходящие. cyllos 5 лет назад 0
Что содержится в / etc / postfix / transport и каковы временные метки в / etc / transport и /etc/transport.db? davidgo 5 лет назад 0
Содержит * smtp: [ip homeserver]: 587 cyllos 5 лет назад 0
Это ваша проблема - согласно http://www.postfix.org/transport.5.html это должен быть ваш домен.name smtp: [IP-адрес домашнего сервера]: 587, поскольку вы хотите отправлять только почту, предназначенную для вашего домена, на тот SMTP сервер - не вся почта. davidgo 5 лет назад 0
0
cyllos

Я нашел решение!

Для тех, кто интересуется: я добавил второй постфиксный сервер на том же хосте и использовал один для получения и один для отправки почты.

Хорошо сделано для получения решения - но вам действительно не нужно (или, на мой взгляд, хотите) 2 сервера на 1 систему. davidgo 5 лет назад 0
Я знаю, что это не лучшее решение, но сейчас это достаточно хорошо. Если кто-нибудь знает лучшее решение, пожалуйста, дайте мне знать cyllos 5 лет назад 0
Исправьте ваш транспортный стол, как указано выше! davidgo 5 лет назад 0
Спасибо за помощь. Установка этого параметра на домашнем сервере не имеет никакого значения, так как мой VPS все еще считает, что он должен пересылать всю почту на мой домашний сервер, даже исходящую почту. cyllos 5 лет назад 0
Можете ли вы показать временные метки файла transport и transport.db - т.е. ты перестроил файл .dB? davidgo 5 лет назад 0
Да, я использовал `postmap` для обновления файла transport.db. cyllos 5 лет назад 0

Похожие вопросы