後綴 SASL 身份驗證失敗 - 內部身份驗證錯誤
我最近不得不將 SMTP 中繼從 Cablevision 更改為 Verizon。Verizon 阻止埠 25,但他們將通過埠 465 接受 SSL(根據this)。我已經使用了 this和this來將數據
stunnnel
轉發postfix
到埠 465。不幸的是,我的郵件沒有發送出去。我在 mail.log 中收到以下錯誤:
Sep 8 15:16:25 DServ postfix/qmgr[6178]: A9EF9480429: from=<mark.kasson@docsmit.com>, size=545, nrcpt=1 (queue active) Sep 8 15:16:25 DServ postfix/smtp[6777]: A9EF9480429: to=<markkasson@gmail.com>, relay=127.0.0.1[127.0.0.1]:12345, delay=231428, delays=231428/0.01/0.4/0, dsn=4.7.0, status=deferred (SASL authentication failed; server 127.0.0.1[127.0.0.1] said: 500 5.7.0 Unknown AUTH error -1 (Internal authentication error).)
Dovecot 發出消息,但是,它們似乎都不是錯誤消息。我還看到了以下內容:
Sep 8 17:26:26 DServ postfix/error[7112]: D0B944801A9: to=<mkasson@sigmgt.com>, relay=none, delay=197679, delays=197679/0.01/0/0.03, dsn=4.7.0, status=deferred (delivery temporarily suspended: SASL authentication failed; server 127.0.0.1[127.0.0.1] said: 500 5.7.0 Unknown AUTH error -1 (Internal authentication error).)
在我的 main.cf 中,我有:
relayhost = [127.0.0.1]:12345 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
在 /etc/postfix/sasl_passwd 我有
[127.0.0.1]:12345 MYUSERNAME@verizon.net:MYPASSWORD
我跑了:
sudo postmap hash:/etc/postfix/sasl_passwd sudo service postfix restart
如果我
telnet localhost 12345
,我可以到達verizon 伺服器。任何幫助將不勝感激!謝謝你。
編輯 下面的每個 Costin,我執行 openssl 並得到:
CONNECTED(00000003) 3073435324:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:787: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 305 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE ---
看起來它在抱怨未知協議。我不知道從哪裡拿它。
添加 成功的 telnet 成績單:
telnet localhost 12345 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 vms173023pub.verizon.net -- Server ESMTP (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) EHLO verizon.net 250-vms173023pub.verizon.net 250-8BITMIME 250-PIPELINING 250-CHUNKING 250-DSN 250-ENHANCEDSTATUSCODES 250-HELP 250-XLOOP 80E3E78D42E6EE2FDAB2C28EB1AA64CD 250-AUTH DIGEST-MD5 PLAIN LOGIN CRAM-MD5 250-AUTH=LOGIN PLAIN 250-ETRN 250-NO-SOLICITING 250 SIZE 20971520 AUTH LOGIN 334 VXNlcm5hbWU6 MYUSERNAME-IN-64 334 UGFzc3dvcmQ6 MYPASSWORD-IN-64 235 2.7.0 LOGIN authentication successful.
我帶了一個人進來,經過一番檢查和測試,我們添加
smtp_sasl_mechanism_filter = login
到main.cf
. 這清除了它。他解釋說它強制 postfix 執行 AUTH LOGIN(我在通過 telnet 測試時手動執行)。 smtp_sasl_mechanism_filter 文件
我看著
tail -F /var/log/mail.log
和電子郵件出去了。mailq
執行顯示隊列正在縮小,這很好。謝謝大家!
PS另外三個注意事項:
1)我刪除了
smtp_sasl_security_options = noanonymous
. 這可能是在正確的方向,但它沒有完成。2)我不需要使用
smtp_generic_maps
.其中一篇文章使用了這兩種方法(Costin 也建議
smtp_sasl_security_options
使用)。3)本文有助於展示如何獲取 Base64 密碼以使用
telnet
with手動登錄perl -MMIME::Base64 -e 'print encode_base64("john\@example.com\0john\@example.com\0password")';