У меня ранее был установлен Postfix на CentOS (несколько месяцев назад), и он работал нормально. Из-за множества попыток перебора и того, что я почти не использовал его, я выключил Postfix. Теперь мне нужно было его использовать, и когда я запустил и протестировал его: он может нормально получать электронные письма, но не отправлять. Я пробовал отправлять письма на yahoo, google, hotmail, mail.ru, yandex.ru, и результат был тот же:
postfix/smtp[30799]: 3EA0C11A82FD: to=<i********@gmail.com>, relay=alt4.gmail-smtp-in.l.google.com[74.125.93.27]:25, delay=0.56, delays=0.02/0.01/0.53/0, dsn=4.4.2, status=deferred (lost connection with alt4.gmail-smtp-in.l.google.com[74.125.93.27] while receiving the initial server greeting)
Также есть такие строки:
postfix/smtp[31728]: C792711A82EB: conversation with gmail-smtp-in.l.google.com[74.125.39.27] timed out while performing the EHLO handshake
Единственное место, где я мог отправлять электронные письма, это mail.md
Я переустановил Postfix, но ничего не изменилось. Безуспешно пытался отключить брандмауэр. Мой IP не указан / заблокирован. Конфигурация почти стандартная, только изменения описаны на http://wiki.centos.org/HowTos/postfix который работал раньше.
Проверил SMTP-сервер на mxtoolbox.com. Результат:
220 host-static-x-x-x-x.moldtelecom.md ESMTP Postfix
OK - x-x-x-x resolves to host-static-x-x-x-x.moldtelecom.md
OK - Reverse DNS matches SMTP Banner
0 seconds - Good on Connection time
Not an open relay.
1.139 seconds - Good on Transaction time
Session Transcript:
HELO please-read-policy.mxtoolbox.com
250 host-static-x-x-x-x.moldtelecom.md [172 ms]
MAIL FROM: <supertool@mxtoolbox.com>
250 2.1.0 Ok [172 ms]
RCPT TO: <test@example.com>
554 5.7.1 <test@example.com>: Relay access denied [172 ms]
QUIT
221 2.0.0 Bye [172 ms]
Есть одна странность (а может, и нет?). Когда я подключаюсь к своему smtp-серверу через telnet и пытаюсь выполнить команду HELO, я в первый раз генерирую ошибку. Но второй раз отвечает нормально:
220 host-static-x-x-x-x.moldtelecom.md ESMTP Postfix
HELO somedomain.com
502 5.5.2 Error: command not recognized
HELO somedomain.com
250 host-static-x-x-x-x.moldtelecom.md
Кто-нибудь знает, что может быть не так?
ОБНОВИТЬ
Я повысил уровень отладки. Вот несколько журналов:
postfix/master[3433]: daemon started -- version 2.3.3, configuration /etc/postfix
postfix/qmgr[3436]: AF95C11A82ED: from=<a****n@i***d.com>, size=597, nrcpt=1 (queue active)
postfix/qmgr[3436]: 89DE011A82EB: from=<a****n@i***d.com>, size=597, nrcpt=1 (queue active)
postfix/smtp[3439]: vstream_buf_get_ready: fd 11 got 45
postfix/smtp[3439]: < gmail-smtp-in.l.google.com[74.125.39.27]: 220 mx.google.com ESMTP a13si2222396fak.134
postfix/smtp[3439]: > gmail-smtp-in.l.google.com[74.125.39.27]: EHLO host-static-x-x-x-x.moldtelecom.md
postfix/smtp[3439]: vstream_fflush_some: fd 11 flush 49
postfix/smtp[3438]: smtp_get: EOF
postfix/smtp[3438]: AF95C11A82ED: lost connection with d.mx.mail.yahoo.com[209.191.88.254] while receiving the initial server greeting
postfix/smtp[3438]: smtp_get: EOF
postfix/smtp[3438]: AF95C11A82ED: lost connection with e.mx.mail.yahoo.com[67.195.168.230] while receiving the initial server greeting
postfix/smtp[3438]: smtp_get: EOF
postfix/smtp[3438]: AF95C11A82ED: lost connection with b.mx.mail.yahoo.com[74.6.136.65] while receiving the initial server greeting
postfix/smtp[3438]: smtp_get: EOF
postfix/smtp[3438]: AF95C11A82ED: lost connection with g.mx.mail.yahoo.com[98.137.54.238] while receiving the initial server greeting
postfix/smtp[3438]: smtp_get: EOF
postfix/smtp[3438]: connect to subsystem private/defer
postfix/smtp[3438]: send attr nrequest = 0
postfix/smtp[3438]: send attr flags = 0
postfix/smtp[3438]: send attr queue_id = AF95C11A82ED
postfix/smtp[3438]: send attr original_recipient = ib****ri@yahoo.com
postfix/smtp[3438]: send attr recipient = ib****ri@yahoo.com
postfix/smtp[3438]: send attr offset = 448
postfix/smtp[3438]: send attr dsn_orig_rcpt = rfc822;ib****ri@yahoo.com
postfix/smtp[3438]: send attr notify_flags = 0
postfix/smtp[3438]: send attr status = 4.4.2
postfix/smtp[3438]: send attr diag_type =
postfix/smtp[3438]: send attr diag_text =
postfix/smtp[3438]: send attr mta_type =
postfix/smtp[3438]: send attr mta_mname =
postfix/smtp[3438]: send attr action = delayed
postfix/smtp[3438]: send attr reason = lost connection with a.mx.mail.yahoo.com[67.195.168.31] while receiving the initial server greeting
postfix/smtp[3438]: private/defer socket: wanted attribute: status
postfix/smtp[3438]: vstream_fflush_some: fd 12 flush 353
postfix/smtp[3438]: vstream_buf_get_ready: fd 12 got 10
postfix/smtp[3438]: input attribute name: status
postfix/smtp[3438]: input attribute value: 0
postfix/smtp[3438]: private/defer socket: wanted attribute: (list terminator)
postfix/smtp[3438]: input attribute name: (end)
postfix/smtp[3438]: AF95C11A82ED: to=<ib****ri@yahoo.com>, relay=a.mx.mail.yahoo.com[67.195.168.31]:25, delay=214, delays=213/0.03/0.77/0, dsn=4.4.2, status=deferred (lost connection with a.mx.mail.yahoo.com[67.195.168.31] while receiving the initial server greeting)
postfix/smtp[3438]: flush_add: site yahoo.com id AF95C11A82ED
postfix/smtp[3438]: match_list_match: yahoo.com: no match
postfix/smtp[3438]: flush_add: site yahoo.com id AF95C11A82ED status 4
ОБНОВЛЕНИЕ 2
Кажется, что Postfix может отправлять сообщения на все серверы в моей стране, но не может отправлять сообщения на серверы за пределами моей страны. Единственная разница (обнаруженная с помощью mailq) между внешним и внутренним серверами заключается в том, что трассировка на внешние серверы проходит через 10.1.74.xx, а на внутренние - нет. Я связался со своим интернет-провайдером, и они сказали, что ничего не блокируют / не фильтруют, и единственное, что они предложили, это то, что мне нужна запись PTR (что не может быть проблемой).
traceroute:
[root@in-md ~]# traceroute mail.google.com
traceroute to mail.google.com (74.125.39.19), 30 hops max, 40 byte packets
1 host-static-109-185-171-1.moldtelecom.md (109.185.171.1) 0.334 ms 0.330 ms 0.264 ms
2 46.74.1.10.in-addr.arpa (10.1.74.46) 0.792 ms 0.795 ms 0.733 ms
3 host-static-86-106-213-29.moldtelecom.md (86.106.213.29) 1.005 ms 0.875 ms 0.928 ms
4 host-static-86-106-213-30.moldtelecom.md (86.106.213.30) 0.829 ms 0.807 ms 0.811 ms
5 host-static-212-0-199-5.moldtelecom.md (212.0.199.5) 3.959 ms 3.935 ms 3.896 ms
6 host-static-212-0-200-146.moldtelecom.md (212.0.200.146) 2.116 ms 2.133 ms 2.145 ms
7 core1.ams.net.google.com (195.69.144.247) 46.458 ms 46.559 ms 46.499 ms
8 209.85.248.88 (209.85.248.88) 47.109 ms 209.85.248.93 (209.85.248.93) 47.279 ms 209.85.248.88 (209.85.248.88) 47.119 ms
9 209.85.250.141 (209.85.250.141) 54.194 ms 209.85.248.183 (209.85.248.183) 53.980 ms 54.124 ms
10 209.85.254.118 (209.85.254.118) 53.251 ms 53.448 ms 53.849 ms
11 209.85.249.162 (209.85.249.162) 53.631 ms * *
12 fx-in-f19.1e100.net (74.125.39.19) 53.941 ms 54.141 ms 53.749 ms
[root@in-md ~]# traceroute mail.md
traceroute to mail.md (178.17.163.132), 30 hops max, 40 byte packets
1 host-static-109-185-171-1.moldtelecom.md (109.185.171.1) 0.302 ms 0.319 ms 0.243 ms
2 host-static-212-0-192-114.moldtelecom.md (212.0.192.114) 0.986 ms 0.983 ms 0.938 ms
3 host-static-212-0-192-113.moldtelecom.md (212.0.192.113) 1.499 ms 1.366 ms 1.294 ms
4 in-orange.ch.md.trabia.net (195.22.253.10) 1.113 ms 1.080 ms 1.112 ms
5 mx3.mail.md (178.17.163.132) 1.115 ms 1.084 ms 1.043 ms
tcptraceroute:
[root@in-md ~]# tcptraceroute mail.google.com
traceroute to mail.google.com (74.125.39.17), 30 hops max, 40 byte packets
1 host-static-109-185-171-1.moldtelecom.md (109.185.171.1) 0.292 ms 0.267 ms 0.252 ms
2 46.74.1.10.in-addr.arpa (10.1.74.46) 0.812 ms 0.735 ms 0.727 ms
3 host-static-86-106-213-29.moldtelecom.md (86.106.213.29) 0.949 ms 0.861 ms 0.906 ms
4 host-static-86-106-213-30.moldtelecom.md (86.106.213.30) 0.810 ms 0.783 ms 0.828 ms
5 host-static-212-0-199-9.moldtelecom.md (212.0.199.9) 3.766 ms 3.451 ms 3.306 ms
6 host-static-212-0-200-146.moldtelecom.md (212.0.200.146) 2.404 ms 2.243 ms 2.057 ms
7 * * *
8 209.85.248.93 (209.85.248.93) 47.100 ms 46.942 ms 46.986 ms
9 209.85.250.141 (209.85.250.141) 54.503 ms 209.85.248.183 (209.85.248.183) 55.067 ms 54.148 ms
10 209.85.254.114 (209.85.254.114) 53.423 ms 209.85.254.116 (209.85.254.116) 54.150 ms 209.85.254.118 (209.85.254.118) 53.800 ms
11 209.85.254.134 (209.85.254.134) 3060.001 ms * 209.85.254.134 (209.85.254.134) 53.877 ms
12 * * *
13 * * *
14 * * *
15 * * *
16 fx-in-f17.1e100.net (74.125.39.17) 54.176 ms 54.156 ms 54.656 ms
[root@in-md ~]# tcptraceroute mail.md
traceroute to mail.md (178.17.163.132), 30 hops max, 40 byte packets
1 host-static-109-185-171-1.moldtelecom.md (109.185.171.1) 0.371 ms 0.302 ms 0.231 ms
2 host-static-212-0-192-114.moldtelecom.md (212.0.192.114) 0.998 ms 1.011 ms 0.968 ms
3 host-static-212-0-192-113.moldtelecom.md (212.0.192.113) 1.456 ms 1.184 ms 0.977 ms
4 in-orange.ch.md.trabia.net (195.22.253.10) 1.167 ms 1.143 ms 1.391 ms
5 mx3.mail.md (178.17.163.132) 1.908 ms 2.439 ms 2.252 ms
У вас проблемы не с вашим демоном SMTP, а с вашим клиентом SMTP. Это не проблема, когда вы подключаетесь к ВАШЕМУ серверу, но когда вы подключаетесь к ДРУГИМ серверам.
Так что попробуй telnet 74.125.39.27 25
и посмотри, как далеко ты зашел. Поскольку другие могут подключиться к Google или что-то еще, это должно быть что-то в вашей сети. У вас есть брандмауэр, блокирующий исходящий SMTP на 25-м порту? Ваш провайдер блокирует 25 порт?
Postfix пытается подключиться к другим серверам, и соединение не может быть установлено. Либо ваша сторона блокирует соединение, либо, с другой стороны, целевой сервер отказывает в соединении. Но, как я уже сказал, это связано не с Postfix, а с сетью.
Редактировать: Я не буду никого винить. Но после короткого удаленного сеанса можно было увидеть, что кто-то блокирует SMTP-трафик к хостам за пределами .md. И дело не в межсетевом экране! Дальнейшая диагностика невозможна даже с самого сервера.
Похоже, что это связано с сетью (не с постфиксом), и определенно кто-то (или что-то) блокирует трафик порта 25 для всех, кроме «доверенного хоста». Вам нужно будет: A) выполнить трассировку на mail.google.com и точно определить, через какие сети проходит (может быть, не ваш интернет-провайдер, а ваш интернет-провайдер?) Или B) интеллектуальный хост всей вашей почты на почтовый сервер вашего интернет-провайдера.
Вы пробовали tcptraceroute?
Можете ли вы поделиться маршрутами трассировки с «рабочим» почтовым сервером по сравнению с «неработающим» почтовым сервером?