Я потерялся ... Любая помощь будет оценена по достоинству :)
У меня есть почтовый сервер. К сожалению, провайдер отрицает SMTP 25. Я не хочу использовать ESMTP или VPN.
Итак, вот проект: у меня есть выделенный сервер в Интернете с общедоступным IP.
Входящая часть SMTP
На этом сервере я установил следующие правила:
/sbin/iptables -t nat -I PREROUTING 1 -p tcp --dport 25 -j DNAT --to-destination $IP
/sbin/iptables -t nat -I POSTROUTING 1 -p tcp --dport 25 -d $IP -j MASQUERADE
Примечание. Поскольку у меня есть динамический IP-адрес @home, $ IP является результатом сценария curl.
Он позволяет перенаправлять SMTP-трафик извне на мой почтовый сервер, это работает.
Исходящая часть SMTP:
На своем почтовом сервере я установил такое правило:
iptables --table nat --append OUTPUT --out-interface eth0 --protocol tcp \
--dport 25 --jump DNAT --to-destination dedicatedip:2500
Которые успешно перенаправляют поток smtp на выделенный.
Дело в том ... Я не нахожу правильных правил на посвященном пересылке этого потока в сеть. Я имею в виду, мне нужно повторно перенаправить порт на 25 и переслать эти пакеты на неизвестные серверы smtp.
Я пробовал это на посвященном:
iptables -nat -A PREROUTING -p tcp --dport 2500 --jump SNAT --to 25:37.59.121.101
Но когда порт снова меняется на 25, пакет отправляется @home (из-за первых правил). Есть ли способ сделать это правильно?
Для исходящей электронной почты попробуйте использовать транспорт smarthost на порту отправки (587). Это должно быть разрешено вашим интернет-провайдером. Это может подключиться к минимальному серверу на сервере с выделенным IP-адресом.
Попытка туннелировать трафик с использованием правил NAT вряд ли сможет сделать то, что вы хотите.
Если у вас есть сервер с выделенным IP-адресом, подумайте об использовании его в качестве сервера. Вы все еще можете переслать электронное письмо на свой домашний сервер. Вы можете использовать несколько методов, включая ETRN
.