2016-06-11 80 views
0

我一直在試圖加強sendmail服務器,試圖確保用戶必須使用TLS連接登錄到smtp郵件服務器。我的證書是自簽名的。調試ubuntu上的sendmail AUTH設置16.10

我可以說(其中foobar的是服務器的名稱)

ELHO foo 
250-foobar Hello public [xx.xx.xx.xx], pleased to meet you 
250-ENHANCEDSTATUSCODES 
250-PIPELINING 
250-EXPN 
250-VERB 
250-8BITMIME 
250-SIZE 
250-DSN 
250-ETRN 
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN 
250-DELIVERBY 
250 HELP 
AUTH PLAIN AGRwNDJAc2VydmVyLmRwMjY0Mi5mb3JjZTkuY28udWsAdmFkZXI0Mg==^M 
535 5.7.0 authentication failed 

中的驗證字符串由

perl -MMIME::Base64 -e 'print encode_base64("\000use\@foobar\000password")enter code here 

產生我已經使用了複製和粘貼,以確保該字符串沒有錯誤輸入。

TLS握手正在工作,支持auth命令。用戶代碼和密碼是正確的。我試圖找出爲什麼它不起作用。

我的sendmail.mc

define(`confAUTH_OPTIONS',`A p')dnl 
define(`confAUTH_MECHANISMS', `EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl 
define(`CERT_DIR', `MAIL_SETTINGS_DIR`'certs')dnl 
define(`confCACERT_PATH', `CERT_DIR')dnl 
define(`confCACERT', `CERT_DIR/cacert.pem')dnl 
define(`confSERVER_CERT', `CERT_DIR/sendmail-cert.pem')dnl 
define(`confSERVER_KEY', `CERT_DIR/sendmail-key.pem')dnl 
define(`confCLIENT_CERT', `CERT_DIR/sendmail-cert.pem')dnl 
define(`confCLIENT_KEY', `CERT_DIR/sendmail-key.pem')dnl 

任何試圖連接報告爲 Jun 11 18:32:23 server sm-mta[30179]: STARTTLS=server, relay=public [84.92.92.26], version=TLSv1.2, verify=NOT, cipher=ECDHE-RSA-AES256-GCM-SHA384, bits=256/256

上什麼錯誤或如何我從sendmail的任何額外的輸出有什麼建議?

回答

0

我似乎未能建立SASL2 要找出這樣做

service sendmail stop 

使用下面的命令Sendmail服務器

/usr/sbin/sendmail -d95.99 -bD -X /tmp/test.log 

這將轉儲出什麼是在關機去整個發送郵件對話

在我的情況下,我用strace來找出哪些sendmail資源正在訪問,它似乎有一個去sasl,沒有安裝。

這是一個安裝sasl2-bin軟件包,編輯/ etc/default/saslauthd以在系統引導並將身份驗證方法更改爲shadow時啓動的情況。做完這些,sendmail很高興做我想做的事情。