Postfix

Zimbra 不再通過 smtp 中繼發送郵件

  • October 2, 2014

從昨天開始,我們的 Zimbra-Server 就無法處理外發郵件了。星期五我安裝了一些更新(用於外殼衝擊和核心更新),重新啟動並且執行良好。但從昨天開始,向外部收件人發送郵件停止工作。內部郵件(不使用中繼 MTA)有效。

由於我沒有更改任何設置,因此我使用 swaks 檢查了遠端伺服器(Strato)並且它有效: swaks -s smtp.strato.de -tls -p 587 -f mail@example.com -t mail@example2.com -a -au mail@example.com -ap xxxxxx

/opt/zimbra/conf/relay_password 中列出了與 -au 和 -ap 列出的相同憑據

通過 Zimbra 發送郵件時,我從 /var/log/zimbra.log 獲得以下資訊:

Oct 2 09:00:10 server postfix/smtp[8144]: 3952465A24A: to=<mail@example2.com>, relay=smtp.strato.de[81.169.145.133]:587, delay=0.55, delays=0.27/0.01/0.26/0, dsn=4.7.0, status=deferred (SASL authentication failed; cannot authenticate to server smtp.strato.de[81.169.145.133]: bad protocol / cancel)

Zimbra main.cf

mail_owner = postfix
bounce_notice_recipient = postmaster
content_filter = smtp-amavis:[127.0.0.1]:10024
smtp_sasl_security_options = noanonymous
relayhost = smtp.strato.de:587
virtual_alias_expansion_limit = 10000
smtpd_sasl_authenticated_header = no
smtp_helo_name = $myhostname
broken_sasl_auth_clients = yes
minimal_backoff_time = 300s
sender_canonical_maps = proxy:ldap:/opt/zimbra/conf/ldap-scm.cf
always_add_missing_headers = yes
smtpd_tls_key_file = /opt/zimbra/conf/smtpd.key
smtpd_helo_required = yes
virtual_transport = error
sendmail_path = /opt/zimbra/postfix/sbin/sendmail
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = reject_non_fqdn_recipient, permit_mynetworks, reject_unlisted_recipient, reject_non_fqdn_sender, permit
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_reject_unlisted_recipient = no
bounce_queue_lifetime = 5d
smtp_sasl_mechanism_filter = 
local_header_rewrite_clients = permit_mynetworks,permit_sasl_authenticated
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_milters = 
smtpd_tls_security_level = may
smtpd_sender_restrictions = check_sender_access regexp:/opt/zimbra/postfix/conf/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, permit_tls_clientcerts, check_sender_access regexp:/opt/zimbra/postfix/conf/tag_as_foreign.re
lmtp_host_lookup = dns
delay_warning_time = 0h
header_checks = 
queue_run_delay = 300s
virtual_mailbox_maps = proxy:ldap:/opt/zimbra/conf/ldap-vmm.cf
notify_classes = resource,software
command_directory = /opt/zimbra/postfix/sbin
smtpd_client_restrictions = reject_unauth_pipelining
smtpd_tls_auth_only = yes
virtual_alias_maps = proxy:ldap:/opt/zimbra/conf/ldap-vam.cf
mailq_path = /opt/zimbra/postfix/sbin/mailq
smtpd_banner = $myhostname ESMTP $mail_name
mynetworks = 127.0.0.0/8 192.168.117.0/24 [::1]/128 [fe80::]/64
lmtp_connection_cache_time_limit = 4s
transport_maps = proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
virtual_alias_domains = proxy:ldap:/opt/zimbra/conf/ldap-vad.cf
smtpd_sasl_auth_enable = yes
smtpd_tls_loglevel = 1
maximal_backoff_time = 4000s
virtual_mailbox_domains = proxy:ldap:/opt/zimbra/conf/ldap-vmd.cf
inet_protocols = ipv4
non_smtpd_milters = 
daemon_directory = /opt/zimbra/postfix/libexec
smtp_tls_security_level = 
alias_maps = hash:/etc/aliases
setgid_group = postdrop
smtp_cname_overrides_servername = no
mydestination = localhost
smtpd_end_of_data_restrictions = 
import_environment = 
myhostname = mail.example.com
message_size_limit = 1048576000
recipient_delimiter = 
in_flow_delay = 1s
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
queue_directory = /opt/zimbra/data/postfix/spool
propagate_unmatched_extensions = canonical
manpage_directory = /opt/zimbra/postfix/man
smtp_fallback_relay = 
smtpd_tls_cert_file = /opt/zimbra/conf/smtpd.crt
smtp_sasl_password_maps = hash:/opt/zimbra/conf/relay_password
lmtp_connection_cache_destinations = 
newaliases_path = /opt/zimbra/postfix/sbin/newaliases
smtp_sasl_auth_enable = yes
mailbox_size_limit = 0
disable_dns_lookups = no

這是 Zimbra 8.04。有什麼提示嗎?

編輯:發送郵件後具有更高的日誌級別,這是我從 zimbra.log 得到的:

Oct  2 09:26:51 server postfix/smtp[21000]: warning: SASL authentication failure: ServerSignature expected in SCRAM-SHA-1 input

正如其他人指出的那樣,您的 SMTP 中繼可能已經改變了一些東西。看起來他們改變了他們宣傳的身份驗證機制。

我不知道它是否swaks會告訴您它在輸出中使用了哪種身份驗證機制,但是您可以嘗試指定身份驗證類型並查看是否通過。

digest-md5 的參數為:

swaks -s smtp.strato.de -tls -p 587 -f mail@example.com -t mail@example2.com -a digest-md5 -au mail@example.com -ap xxxxxx

有關其他身份驗證類型(如 SCRAM-SHA1),請參見 swaks手冊頁。

在 Zimbra main.cf 中,您可以通過設置以下參數(在您的配置中為空)來指定身份驗證類型:

smtp_sasl_mechanism_filter = digest-md5

如果這沒有幫助,也許你的系統上缺少一個包

引用自:https://serverfault.com/questions/632964