Исходная ситуация: у меня была общая учетная запись хостинга cpanel (веб-сайт + электронная почта). Назовем его mydomain.com с ip: a.b.c.d
DNS-ЗАПИСИ были такими:
mydomain.com A a.b.c.d
mail.mydomain.com A a.b.c.d
mydomain.com MX 0:mydomain.com
mail.mydomain.com MX 10:mydomain.com
Все нормально работало.
Затем мы перестроили наш веб-сайт на python и разместили его на DigitalOcean (IP: e.f.g.h) и обновили DNS-ЗАПИСИ следующим образом:
mydomain.com A e.f.g.h
mail.mydomain.com A a.b.c.d
mydomain.com MX 0:mail.mydomain.com
mail.mydomain.com MX 10:mail.mydomain.com
Теперь электронная почта работала только с доменом mail.mydomain.com и по техническим причинам (сотни принтеров, отправляющих ежемесячный индекс страниц, уже настроены для отправки электронных писем с использованием mydomain.com (не mail.mydomain.com), поэтому нам абсолютно необходимо иметь mydomain.com тоже работает).
Для этого мы использовали iptables для перенаправления трафика электронной почты из капли digitalocean на сервер cpanel, используя следующие правила (порты: 110, 143, 993, 25, 465, 587):
iptables -t nat -A PREROUTING -p tcp --dport <port> -j DNAT --to-destination a.b.c.d:<port>
iptables -t nat -A POSTROUTING -p tcp --dport <port> -j MASQUERADE
/etc/sysctl.conf:
net.ipv4.ip_forward = 1 # is enabled
Теперь все работало нормально, пока дроплет не перезапустился вчера, потому что я не знал, что настройки iptables непостоянны, и мне пришлось их сохранить.
Теперь я попытался использовать те же настройки, но перенаправление больше не работает. Я попытался сбросить iptables и снова добавить правила. Я использовал несколько почтовых клиентов, и электронная почта работает нормально, если я использую mail.mydomain.com, но говорю, что настройки неверны, если mydomain.com используется в качестве почтового сервера.
Затем я очистил все настройки iptables, используя:
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
и установил rinetd. Это мой конфигурационный файл rinetd:
# bindadress bindport connectaddress connectport
# SMTP
0.0.0.0 25 a.b.c.d 25
# Secure SMTP
0.0.0.0 465 a.b.c.d 465
# POP3
0.0.0.0 110 a.b.c.d 110
# IMAP
0.0.0.0 143 a.b.c.d 143
# STARSSL
0.0.0.0 587 a.b.c.d 587
# IMAP over TLS
0.0.0.0 993 a.b.c.d 993
# POP3 over TLS
0.0.0.0 995 a.b.c.d 995
и это журнал, когда я пытаюсь связать электронную почту с thunderbird:
25/Apr/2020:08:14:30 x.x.x.x 0.0.0.0 993 a.b.c.d 993 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 143 a.b.c.d 143 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 143 a.b.c.d 143 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 587 a.b.c.d 587 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 25 a.b.c.d 25 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 587 a.b.c.d 587 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 25 a.b.c.d 25 0 0 opened
Thunderbird по-прежнему говорит, что не может найти никаких настроек.
Затем я попытался перенаправить http-трафик через порт 80 на другой веб-сайт с помощью rinetd, и он работает нормально, поэтому rinetd работает. Я думаю, где-то застревает только почтовый трафик.
РЕДАКТИРОВАТЬ: РЕШЕНО, спасибо за помощь. Пересылка работала, но хостинговая компания CPANEL занесла мой IP в черный список (например, h) из-за слишком большого трафика. Теперь они внесли его в белый список.