Smtp

TLS 連接失敗:錯誤:140943FC:SSL 常式:SSL3_READ_BYTES:sslv3 在通過 Qmail 發送郵件時警告錯誤記錄 mac

  • November 3, 2019

我正在嘗試向波蘭最大的託管公司之一發送電子郵件,但他們的伺服器拒絕接收帶有消息的郵件:

TLS connect failed: error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac; connected to 89.161.199.168.
I'm not going to try again; this message has been in the queue too long.

我已經聯繫了這家公司並得到了回复:

“我們的驗證表明伺服器 mail.domainhere.pl 正在嘗試通過 SSL/TLS 協議連接到我們的伺服器。我們的伺服器不支持這種形式的連接,但我想指出我們的伺服器配置正確並且匹配目前RFC 標準。以下建立連接的方法對於伺服器之間的通信是非標準的。

我在 CentOS 6.5 64 位上使用 Qmailtoaster。即使我不在郵件客戶端中使用 SSL,也會發生這種情況!

我的 SMTP 配置範例:

   #!/bin/sh

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
BLACKLIST=`cat /var/qmail/control/blacklists`
SMTPD="/var/qmail/bin/qmail-smtpd"
TCP_CDB="/etc/tcprules.d/tcp.smtp.cdb"
RBLSMTPD="/usr/bin/rblsmtpd"
HOSTNAME=`hostname`
VCHKPW="/home/vpopmail/bin/vchkpw"
RECORDIO="/usr/bin/recordio"

### MR -- incresing SOFTLIMITVAR if not enough (example: because 'login fail')
if [ `uname -m` = 'x86_64' ] ; then
       SOFTLIMITVAR="72000000"
else
       SOFTLIMITVAR="18000000"
fi

IP=0
PORT=25

### MR -- SSL must using SMTPS=1 and SSL=1 but non-SSL only SSL=0 (without SMTPS=0)
export SMTPAUTH="!" \
       SSL=0 \
       REQUIRE_AUTH=0 \
       FORCE_TLS=0 \
       DENY_TLS=0 \
       AUTH=1 \
       REQUIRE_AUTH=0 \
       ALLOW_INSECURE_AUTH=1

### MR -- spamhaus.org recommended for not using $RBLSMTPD $BLACKLIST entry before $SMTPD
exec /usr/bin/softlimit -m $SOFTLIMITVAR \
       /usr/bin/tcpserver -v -R -H -l $HOSTNAME -x $TCP_CDB -c "$MAXSMTPD" \
       -u "$QMAILDUID" -g "$NOFILESGID" $IP $PORT $RECORDIO \
       $SMTPD $VCHKPW /bin/true 2>&1

如何糾正這個?

解決方法很簡單:

mkdir /var/qmail/control/tlshosts/exhaustivelist

這將關閉所有域的 TLS:

  tlshosts/exhaustivelist
       if this file exists no TLS will  be  tried  on  hosts
       other than those for which a file tlshosts/<FQDN>.pem
       exists.

甚至不需要重新啟動 qmail ;)

如果 /var/qmail/control/notlshosts/host.dom.ain 存在,則不會在此主機上嘗試 TLS。

添加一個帶有您要發送到的 mx 域名稱的文件到 /var/qmail/control/notlshosts/ 以僅禁用該域的 TLS。

(如果 notlshosts 不存在):

mkdir /var/qmail/control/notlshosts

然後,創建文件:

touch /var/qmail/control/notlshosts/example.com

編輯:Superbiji 是正確的,文件名應該是域的 mx 主機名,而不僅僅是域。

所以

touch /var/qmail/control/notlshosts/mx.example.com

是一個更合適的例子,或者其他

dig example.com MX 

返回

引用自:https://serverfault.com/questions/559536