Debian
無法使用郵件客戶端連接到 postfix
我一直在嘗試在我的伺服器中設置 MX,並且能夠使用 Dovecot 讓 IMAP 部分在 SSL 下工作,但是我無法使用 Dovecot 作為 SASL 身份驗證讓 SMTP 部分工作。
當 I
telnet example.com 587
時,ehlo
給了我以下資訊:250-example.com 250-PIPELINING 250-SIZE 30720000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
ehlo 中沒有身份驗證,但是如果我做
ehlo
overopenssl s_client -starttls smtp -connect example.com:587
,我會得到以下資訊:250-example.com 250-PIPELINING 250-SIZE 30720000 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
而普通登錄,使用 ‘\0username\0password’ 的 base64,返回OK。我認為這裡的問題不是 SASL,因為使用者通過了身份驗證並且問題出在連接中,但我不知道是什麼導致了這樣的問題。由於我的收件人限制不允許非 SASL 身份驗證的使用者通過,預設 telnet 給我一個錯誤。如何將 SASL 添加到預設的非 STARTTLS 連接,以便我可以將它與我的郵件客戶端一起使用?
這是我的 main.cf:
## SASL smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes ## SSL/TLS smtpd_tls_received_header = yes smtpd_tls_auth_only = yes smtpd_tls_cert_file=/etc/postfix/ssl/smtpd.cert smtpd_tls_key_file=/etc/postfix/ssl/smtpd.key smtpd_tls_ask_ccert = yes smtpd_use_tls=yes smtp_use_tls=yes smtpd_tls_log_level = 2 smtp_tls_note_starttls_offer = yes smtpd_tls_session_cache_timeout = 3600s smtp_tls_protocols = SSLv3, TLSv1 tls_random_source = dev:/dev/urandom message_size_limit = 30720000 smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit smtpd_sender_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit smtpd_data_restrictions = reject_unauth_pipelining smtpd_sender_restrictions = reject_unknown_sender_domain mydestination = localhost, example.com mynetworks = 127.0.0.0/8 inet_interfaces = all virtual_transport = lmtp:unix:private/dovecot-lmtp virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domain_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
- 編輯:使上一個問題更具體。*
- 更新:我安裝了 roundcube 並通過客戶端發送郵件並且它有效,但是,我仍然無法使用外部伺服器進行身份驗證。
- 更新#2:當我嘗試在埠 587 上通過 SSL 連接到伺服器時,我在日誌文件中發現了這些行
warning: dict_nis_init: NIS domain name not set - NIS lookups disabled connect from 93.88.82.66 SSL_accept error from 93.88.82.66: lost connection lost connection after STARTTLS from 93.88.82.66 disconnect from 93.88.82.66
- 更新#3:在我重新啟動 postfix 和 dovecot 後它工作了(不重新載入)
我知道這並不能真正回答您的問題,但是:
不。
將您的郵件客戶端與 STARTTLS 一起使用,正如您所說,它可以與您的伺服器正常工作。通過未加密的連接發送憑據不是一個好主意。
您根本沒有說明您想要進行未加密的 SMTP 身份驗證的原因,所以我只能猜測 - 如果您有一個無法執行 STARTTLS 的郵件客戶端(或者,TLS 從一開始就連接,即 SMTPS,到埠465),您應該致力於保護客戶端,而不是削弱您的伺服器端。