Centos

Postfix/SMTP TLS 拒絕授權

  • August 18, 2016

我在專用硬體上的 CentOS 7 安裝上設置郵件伺服器,我遇到了讓 Postfix 使用 Dovecot 為 SASL 設置驗證 SMTP 連接的問題。我已經按照我能找到的關於編輯main.cfmaster.cfDovecot.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 但選擇SSLOS X Mail 中的選項時會顯示。由於您沒有使用 SSL,因此它應該會失敗。

這種情況下的問題不是伺服器或伺服器防火牆的配置錯誤,而是我們網路上執行的Cyber​​oam設備由於某種原因阻止了連接。它沒有 SMTP 限制,但一定是某個地方存在錯誤配置,因為 SMTP 不適用於除我們的商業郵件之外的任何其他郵件提供商。但是,解決方案超出了這個問題和答案的範圍。

因此,儘管現在看起來這應該是我的第一個故障排除步驟,但如果您遇到這種情況,請首先嘗試從另一個網路連接來檢查您的設置,特別是如果您使用 Cyber​​oam。

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