Postfix/SMTP TLS 拒絕授權
我在專用硬體上的 CentOS 7 安裝上設置郵件伺服器,我遇到了讓 Postfix 使用 Dovecot 為 SASL 設置驗證 SMTP 連接的問題。我已經按照我能找到的關於編輯
main.cf
和master.cf
Dovecot.conf
文件的所有指南進行操作。其他一切都執行良好。我已經設置了 Dovecot,並且可以安全地進行身份驗證。如果我設置 SMTP 可以正常工作,
smtpd_tls_auth_only = no
但密碼顯然是明文發送的。我跑去
openssl s_client -connect sub.domain.com:25 -starttls smtp
檢查,它正確地返回了證書,一切似乎都很好。之後執行ehlo sub.domain.com
返回:250-sub.domain.com 250-PIPELINING 250-SIZE 20480000 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
我認為在 TLS“握手”之後正如預期的那樣。
當我嘗試使用郵件客戶端連接時,跟踪日誌會給我以下資訊:請參閱粘貼
當我嘗試發送時,OS X 中的郵件會告訴我以下資訊:
Mail 無法在預設埠上使用 SSL 連接到伺服器“sub.domain.com”。驗證此伺服器是否支持 SSL 以及您的帳戶設置是否正確。
我嘗試通過所有標準埠進行連接。
Roundcube 給我一個錯誤程式碼 250:身份驗證失敗。
**編輯:**下面是輸出
postconf -n
:alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases broken_sasl_auth_clients = yes command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 delay_warning_time = 4 disable_vrfy_command = yes dovecot_destination_recipient_limit = 1 html_directory = no inet_interfaces = all mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man message_size_limit = 20480000 mydestination = localhost.$mydomain, localhost mydomain = domain.com myhostname = sub.domain.com mynetworks = 127.0.0.1, xxx.xxx.xxx.xxx newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.2.2/README_FILES recipient_delimiter = + relay_domains = proxy:mysql:/etc/sentora/configs/postfix/mysql-relay_domains_maps.cf sample_directory = /usr/share/doc/postfix-2.2.2/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtp_tls_loglevel = 4 smtp_tls_security_level = may smtpd_banner = $myhostname ESMTP smtpd_client_restrictions = smtpd_data_restrictions = reject_unauth_pipelining smtpd_helo_required = yes smtpd_helo_restrictions = smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_path = /var/spool/postfix/private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_restrictions = permit_mynetworks, reject_unauth_destination, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem smtpd_tls_key_file = /etc/ssl/private/postfix.pem smtpd_tls_received_header = yes smtpd_use_tls = yes soft_bounce = yes unknown_local_recipient_reject_code = 550 virtual_alias_maps = proxy:mysql:/etc/sentora/configs/postfix/mysql-virtual_alias_maps.cf, regexp:/etc/sentora/configs/postfix/virtual_regexp virtual_gid_maps = static:12 virtual_mailbox_base = /var/sentora/vmail virtual_mailbox_domains = proxy:mysql:/etc/sentora/configs/postfix/mysql-virtual_domains_maps.cf virtual_mailbox_maps = proxy:mysql:/etc/sentora/configs/postfix/mysql-virtual_mailbox_maps.cf virtual_minimum_uid = 996 virtual_transport = dovecot virtual_uid_maps = static:996
並且
postconf -M
位於:此粘貼如果我需要在這裡粘貼更多日誌或配置,請詢問,我很樂意提供。任何讓這個該死的安全工作的東西!啊!
所以,事實證明,我有點傻。我嘗試從工作網路以外的網路(通過我的移動提供商)進行連接,並且連接正常!
錯誤:
Mail 無法在預設埠上使用 SSL 連接到伺服器“sub.domain.com”。驗證此伺服器是否支持 SSL 以及您的帳戶設置是否正確。
當您使用 STARTTLS 但選擇
SSL
OS X Mail 中的選項時會顯示。由於您沒有使用 SSL,因此它應該會失敗。這種情況下的問題不是伺服器或伺服器防火牆的配置錯誤,而是我們網路上執行的Cyberoam設備由於某種原因阻止了連接。它沒有 SMTP 限制,但一定是某個地方存在錯誤配置,因為 SMTP 不適用於除我們的商業郵件之外的任何其他郵件提供商。但是,解決方案超出了這個問題和答案的範圍。
因此,儘管現在看起來這應該是我的第一個故障排除步驟,但如果您遇到這種情況,請首先嘗試從另一個網路連接來檢查您的設置,特別是如果您使用 Cyberoam。