【发布时间】:2016-06-11 17:59:34
【问题描述】:
我一直在尝试强化 sendmail 服务器,尝试确保用户必须使用 TLS 连接登录到 smtp 邮件服务器。我的证书是自签名的。
我可以说(其中 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
auth 字符串是由生成的
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 获得任何额外输出的任何建议?
【问题讨论】: