Ubuntu

幫助調試 Exim4 SMTP AUTH 535 驗證數據不正確

  • June 19, 2020

我按照本指南設置 TLS 和身份驗證。我設置了使用者名(usr)和密碼(pwd),/etc/exim4/passwd並且文件具有正確的權限:

-rw-r----- 1 root        Debian-exim    51 Oct 16 13:11 passwd

如果我刪除該文件中該行的純文字部分並執行:

htpasswd -vb passwd usr pwd

然後我得到一個不錯的

Password for user usr correct.

但是,嘗試openssl s_client -connect $HOST:25 -starttls smtp並粘貼:

ehlo test
250-example.org Hello example.org [1.2.3.4] ← Clearly, redacted…
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-CHUNKING
250-PRDR
250 HELP

auth plain AHVzcgBwd2Q=
535 Incorrect authentication data

base64 取自:

echo -ne '\0usr\0pwd' | base64
AHVzcgBwd2Q=

我已經跑systemctl restart exim4.serviceupdate-exim4.conf好幾次了。

如何調試這個?

文件是謊言,所以不要聽它。

您需要的是取消註釋plain_server驅動程序conf.d/auth/30_exim4-config_examples並註釋掉plain_saslauthd_serverlogin_saslauthd_server垃圾。saslauth 驅動程序不起作用。

從那裡開始,它將按預期工作。

來源

這對我來說很好:

login_saslauthd_server:
  driver = plaintext
  public_name = LOGIN
  server_prompts = "Username:: : Password::"
  # don't send system passwords over unencrypted connections
  server_condition = ${if saslauthd{{${local_part:$auth1}}{$auth2}{}{${domain:$auth1}}}{1}{0}}
  server_set_id = $auth1
#   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
  server_advertise_condition = ${if eq{$tls_in_cipher}{}{}{*}}
#   .endif

引用自:https://unix.stackexchange.com/questions/547912