Добрый день, уважаемые спецы.
Проблема в следующем:
Настроил почтовый сервер на базе доменного имени 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, а может провайдер?)
Очень прошу помощи, затрачено уже очень много сил и времени, обидно будет не доделать.
Хотя бы помогите разобраться в какую сторону копать...
>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 при отправке письма следующая запись (пускай отправляем на 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)Т.е. письмо почему то не проходит через mx2.yandex.ru. Большой вопрос почему?
>проверяйте фаерволчто именно проверять. Судя опять же логам, письмо прошло через наш фаервол нормально.
>или переброс провайдера
как это сделать?
Неужели ни у кого нет никаких мыслей? Help.......
Вы делаете не верный вывод:
>23:03:28 mailserver postfix/smtp[19936]: connect to mx2.yandex.ru[93.158.134.89]:25: Connection refusedВаш сервер не смог соединится на 25 порт к яндексу.
После чего отложил письмо и присвоил ему статус deferred.
>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)
>Вы делаете не верный вывод:
>>23:03:28 mailserver postfix/smtp[19936]: connect to mx2.yandex.ru[93.158.134.89]:25: Connection refused
>
>Ваш сервер не смог соединится на 25 порт к яндексу.
>
>После чего отложил письмо и присвоил ему статус deferred.
>>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)Странно, но команда
telnet mail.провайдер.ru 25
работает нормально.
Скорее всего закрыт 25 порт во внешнюю сеть у провайдера для нашего ip. Пошел звонить.