拒绝使用postfix的非SSL / TLS连接

我知道的configuration设置smtpd_tls_security_level其中encryption需要传入smtpd连接完成SSL / TLS, 可能只是一个安全连接的首选项。

我想知道的是:

  • 在严格encryption的情况下(即smtpd_tls_security_level = encrypt ),并且进行连接的服务器不支持SSL / TLS,有没有办法通过电子邮件发送被拒绝的电子邮件的发件人来通知失败的原因?
  • smtpd_tls_security_level = may的情况下,是否有一种识别传入连接types(即SSL / TLS或明文)的方法。 如果这个信息可以发送到电子邮件pipe道的处理程序脚本,这将是特别有用的

笔记…我正在使用:

  • Centos下
  • 后缀
  • Plesk(可能不相关)
  • 电子邮件pipe道

是的,你的Postfix会拒绝传入的连接,并生成一个SMTP错误,这将导致错误消息被返回到原始发件人。 通常,SMTP错误是纯文本,限制了非技术发件人将会理解/从中学习多less。
注意在该手册中该选项是坚决不鼓励的:

您可以执行TLS的使用,以便Postfix SMTP服务器宣布STARTTLS并通过设置smtpd_tls_security_level = encrypt接受没有TLSencryption的邮件。 根据RFC 2487,在公共引用的Postfix SMTP服务器的情况下,这不能被应用。 这个选项在默认情况下是closures的,应该只能使用。

传闻证据似乎表明它确实有助于防范垃圾邮件,但是我还没有看到有多less公共域名仍然不支持TLS的数字,从而拒绝了多less真正的邮件。

我手边没有Postfix部署,但是我希望你的SMTP头文件已经提供了关于传入连接是否通过SSL / TLS的信息,比如sendmail的做法

 Received: from mail.example.org (mail.example.org[192.168.0.1]) by example.com (8.14.4/8.14.4) with ESMTP id s96Md0B2019727 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for <[email protected]>; Tue, 7 Oct 2014 00:39:06 +0200 

编辑:获取Postfix中logging的信息需要在main.cfconfiguration文件中设置smtpd_tls_received_header = yes ,并且会导致一个类似的头文件:

 Received: from host.example.com (host.example.com [192.168.0.2]) (using TLSv1 with cipher cipher-name (actual-key-size/raw-key-size bits)) (No client certificate requested) 

只有你自己的邮件基础设施(终点)的头信息应该被认为是可信的,其他头可以在传输中被修改。

如果您有smtpd_tls_security_level = encrypt,并且发送邮件的服务器无法协商TLS会话,则发送服务器有责任通过未送达报告电子邮件通知发件人。 一个服务器不会这样做是非常糟糕的。 在您甚至知道电子邮件的发件人或收件人之前,无法在收件人的服务器上执行SSL / TLS故障。