测试 SMTP 服务器的 STARTTLS 配置

信息安全 tls smtp
2021-09-04 00:29:40

是否有一种简单的方法来测试 SMTP 服务器以检查与 STARTTLS 加密相关的配置问题,并报告它是否已正确配置以便使用 STARTTLS 加密电子邮件?

Qualys SSL 服务器测试器视为一个类比:它是一个很好的工具,可以快速检查 Web 服务器以查看 SSL 的使用是否已正确配置,并确定改进配置以提供更强加密的机会。它知道如何识别许多常见的配置错误并给出评分。SMTP 服务器上的 STARTTLS 有类似的东西吗?

特别是,给定一个 SMTP 服务器,我想告诉你:

  1. 是否支持 STARTTLS,
  2. 其 STARTTLS 配置是否已正确设置,以便与其他主要电子邮件提供商的电子邮件最终会被加密,
  3. 它是否支持完美前向保密以及是否配置为在实践中使用完美前向保密密码套件(在可能的情况下),
  4. 是否提供合适的证书以通过严格的验证检查,
  5. 是否有任何其他配置错误。

我怎样才能做到这一点?

Facebook谷歌最近强调了互联网上 STARTTLS 的使用状态,并呼吁服务器运营商启用 STARTTLS 并对其进行适当配置,以便在传输过程中加密电子邮件。是否有易于使用的工具来支持这一目标?

4个回答

这里有几个提供您可能感兴趣的测试的网站。

如果您只需要检查一两个,请尝试 SSL-Tools 和 StartTLS。

您可以检查对 starttls 的支持openssl s_client -starttls smtp ...

  • 通过 -CAfile/-CApath 的正确设置,您还可以检查证书链。
  • 它不检查的是主机名,例如您必须手动检查它。
  • 它还将打印出使用的密码,因此您可以检查它是 ECDHE 还是 DHE 密码,以查看是否使用了前向保密。
  • 也许您可能希望使用 -cipher 选项显式指定一个密码列表,以查明服务器是否更喜欢 FS 密码,即使客户端将它们放在首选项列表的 and 中。

或者,您可以将 Perl 与最近的 IO::Socket::SSL 一起使用,如下所示:

use strict;
use warnings;
use IO::Socket::SSL 1.968;
use Net::SSLGlue::SMTP;

my $host = 'mx.example.com';
my $smtp = Net::SMTP->new($host, Debug => 1) or die "connect failed";
$smtp->starttls(
    # where your CA are, has usable defaults
    # SSL_ca_file => ...,
    # SSL_ca_path => ....,
    # to restrict ciphers and set preference
    # SSL_cipher_list => '...',
) or die "starttls failed: $@|$SSL_ERROR";
print "cipher=".$smtp->get_cipher."\n";
print "cipher=".$smtp->get_sslversion."\n";

这将进行适当的证书检查,进行主机名验证,为您提供密码以查明它是否为前向保密,并为您提供 SSL 版本。使用最新的 IO::Socket::SSL 版本,您还可以进行 OCSP 检查以查看证书是否被吊销(请参阅 IO::Socket::SSL 中的文档)。

这里有几个工具可以为 Qualys SSL Labs 提供类似结果并支持 STARTTLS

  • 测试ssl.sh ( https://testssl.sh/ )

    它是一个命令行工具,用于检查任何端口上的服务器服务是否支持 TLS/SSL 密码、协议以及最近的加密缺陷等。它非常全面和主要的优点是您也可以扫描您的 Intranet 服务器。

    例如。./testssl.sh -t smtp aspmx.l.google.com:25

  • HTBridge SSL 测试

    这是基于 Web 的工具,允许使用电子邮件和其他端口。

    https://www.htbridge.com/ssl/

  • 密码感知发现

    此工具允许在任何端口上进行扫描。扫描的默认端口(21、22、25、110、143、389、443、465、587、636、993、995、5222、5223、5269)

    https://discovery.cryptosense.com/

CryptCheck 就像 Qualys SSL 服务器测试器一样,只有 SMTP 支持。CryptCheck 检查您的密码套件分级 C/B/A/A+...

CryptCheck:https ://tls.imirhil.fr

该网站是法语https://imirhil.fr