Sendmail

sendmail smtp 驗證簡單,為什麼驗證失敗?

  • November 5, 2015

在 sendmail 上,我這樣做是因為 smtp auth sasl 正在執行

root      1609     1  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1610  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1611  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1612  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1613  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5

Sasl sendmail 已配置(/usr/lib/sasl2/sendmail.conf)

pwcheck_method: saslauthd
mech_list: LOGIN PLAIN

我已將 sendmail smtp 配置為這樣

define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl

當然我已經編譯了文件並重新啟動 sendmail smtp auth 似乎正在工作(telnet localhost)

250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 2097152
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP

當我這樣做時,身份驗證登錄要求輸入base64編碼的使用者,然後輸入密碼,然後輸入並給出

535 5.7.0 authentication failed

為了轉換為 base64,我使用這個腳本

#!/usr/bin/perl
use strict;
use MIME::Base64;
print encode_base64("$ARGV[0]");
exit 0;

當然首先給出了 saslpasswd2 使用者有什麼建議嗎?

在這裡找到的解決方案

而不是使用 -a pam 為 saslauthd 使用 -a sasldb 像這樣

saslauthd  -a sasldb

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