Я настраиваю резервный сервер в локальной сети с кабельным подключением. Кабельный интернет-провайдер фильтрует весь трафик порта 25 (smtp).
uname -a
Linux myhost 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
В результате у моих исходящих почтовых транзакций истекает время ожидания, потому что (я подозреваю) в конфигурации Postfix по умолчанию используется порт 25. (в основном я использую команду sendmail из оболочки для отправки отчетов о состоянии с этого сервера)
Я подтвердил, что могу подключиться по telnet к порту 587 на моем целевом сервере:
# telnet myserver.net 587
Trying x.x.x.x...
Connected to myserver.net.
Escape character is '^]'.
EHLO 220 myserver.net ESMTP Sendmail 8.14.7/8.14.7; Mon, 7 May 2018 18:16:08
-0500 (CDT)
myhost.net
250-myserver.net Hello hostname [x.x.x.x], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
Как я могу обновить мою установку Postfix, чтобы она использовала порт 587 И была совместима с протоколами указанного выше сервера? (шифрование не требуется / не требуется, если оно еще не поддерживается - не верьте, что TLS включен)
Я пробовал отредактировать /etc/postfix/master.cf и раскомментировать эту строку:
smtpd pass - - y - - smtpd
Но я все еще получаю ошибки тайм-аута, указывающие, что он не использует 587. У меня сейчас не включен ufw, так что это, вероятно, не проблема.
Я предполагаю, что мне нужно добавить дополнительные параметры конфигурации?
Я думаю, вы пытаетесь ретранслировать всю исходящую почту через внешний почтовый сервер, используя подчинение (порт 587
). Все остальное не имеет смысла, потому что подчинение предназначен для предоставления аутентифицированного SMTP клиентам, в то время как обычная связь между MTA осуществляется через порт SMTP 25
.
Конфигурация представления в /etc/postfix/master.cf
предназначен для предоставления smtpd для ваших клиентов и не меняет поведение Postfix при отправке исходящей почты.
Вместо этого вам нужно будет настроить место назначения следующего перехода нелокальной почты т.е. relayhost
в main.cf
и аутентификация для этого соединения, например
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:USERNAME:PASSWORD
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
relayhost = [198.51.100.10]:587
Хотя примеры стандартной конфигурации Postfix для локальная сеть содержит эту информацию, может быть трудно интерпретировать. К счастью, есть много подробных руководств для этого конкретного предполагаемого использования, в том числе:
Вот как я понял, как это сделать. Существует множество страниц, предлагающих отредактировать /etc/postfix/master.cf, но это не решает проблему перенаправления трафика smtp через нефильтрованный порт для интернет-провайдеров, выполняющих фильтрацию.
Итак, чтобы настроить postfix для этого, вам нужно добавить в свой /etc/postfix/main.cf
relayhost = [yourserver.com]:587
Затем настройте другой сервер за пределами DMZ порта 25 для пересылки почты за пределы хоста. (если необходимо)
Я столкнулся с той же проблемой и исправил ее, выполнив следующие действия. этот
smtp 25 / tcp почта
smtp 587 / tcp почта
Примечание: я наткнулся на статью в Интернете, в которой говорится, что модифицировать /etc/services
файлы, поскольку предполагается, что он предварительно назначен для Linux.