web-dev-qa-db-ja.com

postfix SASL認証に失敗しました-内部認証エラー

最近、SMTPリレーをCablevisionからVerizonに変更する必要がありました。 Verizonはポート25をブロックしますが、ポート465を介してSSLを受け入れます( this ごと)。 thisthis を使用して、stunnnelpostfixのデータをポート465に転送させました。

残念ながら、私のメールはうまくいきません。 mail.logに次のエラーが表示されます。

Sep  8 15:16:25 DServ postfix/qmgr[6178]: A9EF9480429: from=<[email protected]>, size=545, nrcpt=1 (queue active)
Sep  8 15:16:25 DServ postfix/smtp[6777]: A9EF9480429: to=<[email protected]>, 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=<[email protected]>, 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 [email protected]:MYPASSWORD

私は実行しました:

Sudo postmap hash:/etc/postfix/sasl_passwd
Sudo service postfix restart

もし私が telnet localhost 12345、verizonサーバーにアクセスできます。

どんな助けでも大歓迎です!ありがとうございました。

[〜#〜] edit [〜#〜]以下の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
---

不明なプロトコルについて文句を言っているようです。ここからどこへ行くかわかりません。

[〜#〜] addition [〜#〜]成功した​​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.
3
Mark Kasson

私は誰かを連れてきて、少し調べてテストした後、_smtp_sasl_mechanism_filter = login_を_main.cf_に追加しました。それで解決しました。

彼はそれがpostfixにAUTH LOGIN(私がtelnetを通してテストしている間に手動で行っていたこと)を強制することを説明した。 smtp_sasl_mechanism_filter doc

私は_tail -F /var/log/mail.log_で見ました、そして、電子メールは出ていました。 mailqの実行は、キューの縮小を示し、良好でした。

皆さんありがとう!

追伸さらに3つのメモ:

1)_smtp_sasl_security_options = noanonymous_を削除しました。これは正しい方向であったかもしれませんが、それはそれを成し遂げませんでした。

2)_smtp_generic_maps_を使用する必要はありませんでした。

記事の1つはこれらの両方を使用していました(そしてCostinは_smtp_sasl_security_options_も提案しました)。

3) この記事 は、telnetPerl -MMIME::Base64 -e 'print encode_base64("john\@example.com\0john\@example.com\0password")';を使用して手動でログインするためのBase64パスワードを取得する方法を示すのに役立ちました

3
Mark Kasson

これをmain.cfに追加してみてください

smtp_sasl_security_options = noanonymous

次にPostfix構成を再ロードします

また、localhostにTelnet接続した後、ここで説明する手順を使用して、verizonへのSMTP認証接続をテストしてみてください。 http://www.ndchost.com/wiki/mail/test-smtp-auth-telnet

置換telnet mailserver.com 25記事からのコマンド
telnet localhost 12345

一部のハウツーでは、libsasl2-modulesパッケージがインストールされました。インストールされているかどうかを確認し、インストールされていない場合はインストールしてください。

0
Costin Gușă

これは、パスワードを変更したときに発生しました。パスワードが再び機能するように、sasl_passwd.dbを削除し、Sudo postmap/etc/postfix/sasl_passwdを使用して再構成してから、postfix systemctl restart postfixを再起動します。

0
Edwin