Добрый день, уважаемые спецы.
Проблема в следующем:
Настроил почтовый сервер на базе доменного имени domain.ru (Postfix, FreeBSD).
Прием почты работает, отправка писем на локальные ящики работает, но во внешку почта не отправляется.В логах Postfix при отправке письма следующая запись (пускай отправляем на test@yandex.ru, с любым внешним ящиком одина проблема):
23:03:25 mailserver postfix/qmgr[16171]: 459745D09: from=<anton@domain.ru>, size=678, nrcpt=1 (queue active)
23:03:28 mailserver postfix/smtp[19936]: connect to mx2.yandex.ru[93.158.134.89]:25: Connection refused
23:03:28 mailserver postfix/smtp[19936]: 459745D09: to=<test@yandex.ru>, relay=none, delay=17216, delays=17213/0.04/3/0, dsn=4.4.1, status=deferred (connect to mx2.yandex.ru[93.158.134.89]:25: Connection refused)
Архитектура сети такая:
Есть сайт www.domain.ru, который располагается на сервере провайдера. Есть наш шлюз с iptables(внешний адрес: 87.249.x.x, внутренний адресс 192.168.0.9) и есть настроенный почтовый сервер на FreeBSD(192.168.0.4).
Провайдер сделал перенаправление с domain.ru на наш 87.249.x.x по 25 и 110 порту.
На 87.249.x.x с помощью iptables сделан NAT по 25 и 110 порту.
Вот правила, касающиеся 25 и 110 портов:
(прием и отправка почты не с нашего почтового сервера)
$IPTABLES -A INPUT -p TCP -s 0/0 --dport 110 -j ACCEPT # POP3
$IPTABLES -A INPUT -p TCP -s 0/0 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A INPUT -p UDP -s 0/0 --dport 110 -j ACCEPT # POP3
$IPTABLES -A INPUT -p UDP -s 0/0 --dport 25 -j ACCEPT # SMTP
(NAT 110 порта на наш почтовый сервер)
$IPTABLES -t nat -A PREROUTING -p tcp --dst 87.249.236.2 --dport 110 -j DNAT --to-destination 192.168.0.4:110
$IPTABLES -t nat -A OUTPUT -p tcp --dport 110 -j DNAT --to-destination 192.168.0.4:110
(NAT 25 порта)
$IPTABLES -t nat -A PREROUTING -p tcp --dst 87.249.236.2 --dport 25 -j DNAT --to-destination 192.168.0.4:25
$IPTABLES -t nat -A OUTPUT -p tcp --dport 25 -j DNAT --to-destination 192.168.0.4:25
(Маскарадинг)
$IPTABLES -A FORWARD --dst 192.168.0.4 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o eth1 --dst 192.168.0.4 -j MASQUERADE
(?)
$IPTABLES -A OUTPUT -p TCP -s 0/0 --dport 110 -j ACCEPT
$IPTABLES -A OUTPUT -p TCP -s 0/0 --dport 25 -j ACCEPT
Пробую команду:
telnet mx2.yandex.ru 25
На шлюзе 87.249.х.х эта команда работает на ура.
Пробую эту же команду на почтовом сервере 192.168.0.4:
telnet mx2.yandex.ru 25
Trying 93.158.134.89...
telnet: connect to address 93.158.134.89: Connection refused
telnet: Unable to connect to remote host
Судя по логам постфикса при отправке письма оно доходит до адреса назначения, но там почему-то застревает.
Не могу понять, кто виноват (Postfix, iptables, а может провайдер?)
Очень прошу помощи, затрачено уже очень много сил и времени, обидно будет не доделать.
Хотя бы помогите разобраться в какую сторону копать...