在 Thunderbird(我也假设在许多其他客户端中)中,我可以选择在“SSL/TLS”和“STARTTLS”之间进行选择。
据我了解,“STARTTLS”简单来说就是“如果两端都支持 TLS 则加密,否则不加密传输”。而“SSL/TLS”简单来说就是“始终加密或根本不连接”。这样对吗?
或者换句话说:
STARTTLS 是否不如 SSL/TLS 安全,因为它可以在不通知我的情况下回退到纯文本?
根据STARTTLS 规范第 5 节:
公共引用的 SMTP 服务器不得要求使用
STARTTLS 扩展来在本地传送邮件。此规则
可防止 STARTTLS 扩展破坏 Internet SMTP 基础结构的互操作性。公开引用的 SMTP 服务器是在
Internet 邮件地址右侧的域名的 MX 记录(如果不存在 MX 记录,则为 A 记录)中列出的 Internet 主机的端口 25 上运行的 SMTP 服务器.
然而,这个规范是在 1999 年编写的,考虑到它是 2014 年,我希望大多数 SMTP 客户端、服务器和中继都有某种 STARTTLS 实现。
如果我需要 STARTTLS 接收传入的邮件,我预计会丢失多少电子邮件?
尝试使用 zend mail smtp 从我的 php 应用程序登录发送电子邮件经过身份验证并给我这个持续错误我不必处理我在 serverfault.com 上查看 de 36 问题这里更改参数,因为他们解释没有成功。
数据:
Telnet 到 587 看起来像这样:
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.mydomain.com ESMTP Postfix
ehlo localhost
250-mail.mydomain.com
250-PIPELINING
250-SIZE …Run Code Online (Sandbox Code Playgroud) 我开始构建我的第一个云服务器:带有 postfix 的 Ubuntu 16.04。
问题是当我从网上商店发送邮件时,如何配置 postfix 以使用 TLSv1.2?
当我的网店向我的 postfix 服务器发送邮件时,它使用 TLSv1 以下是日志:
postfix/submission/smtpd[19111]: Anonymous TLS connection established from domainname.com[xxx.xxx.xxx.xxx]: TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)
Run Code Online (Sandbox Code Playgroud)
在我的网店中,我在配置中设置:使用:TLS 端口:587
谢谢 J
My server info:
Ubuntu 16.04
postfix:
Installed: 3.1.0-3
openssl:
Installed: 1.0.2h-1+deb.sury.org~xenial+1
Run Code Online (Sandbox Code Playgroud)
这是来自 postfix 的日志:可以看到带有 TLSv1 的邮件...... :(
Sep 19 19:10:56 ubuntu postfix/master[6992]: daemon started -- version 3.1.0, configuration /etc/postfix
Sep 19 19:11:04 ubuntu postfix/submission/smtpd[7126]: connect from domainname.com[xxx.xxx.xxx.xxx]
Sep 19 19:11:04 ubuntu postfix/submission/smtpd[7126]: Anonymous TLS connection established from domainname.com[xxx.xxx.xxx.xxx]: TLSv1 …Run Code Online (Sandbox Code Playgroud) 我已经设置了一个 Postfix + Courier 服务器,并且有一个使用 SMTP 服务器设置配置的 Rails 应用程序。每当 Rails 应用程序尝试发送电子邮件时,这就是 Postfix 日志中显示的内容(在 master.cf 中设置的其他日志详细程度)
Feb 22 03:57:24 alpha postfix/smtpd[1601]: Anonymous TLS connection established from localhost[127.0.0.1]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
Feb 22 03:57:24 alpha postfix/smtpd[1601]: smtp_get: EOF
Feb 22 03:57:24 alpha postfix/smtpd[1601]: match_hostname: localhost ~? 127.0.0.0/8
Feb 22 03:57:24 alpha postfix/smtpd[1601]: match_hostaddr: 127.0.0.1 ~? 127.0.0.0/8
Feb 22 03:57:24 alpha postfix/smtpd[1601]: lost connection after STARTTLS from localhost[127.0.0.1]
Feb 22 03:57:24 alpha postfix/smtpd[1601]: disconnect from localhost[127.0.0.1]
Feb 22 03:57:24 alpha …Run Code Online (Sandbox Code Playgroud) 我试图通过 StartTLS 连接 LDAP,但我遇到了一个问题。我已经逐步遵循本指南https://help.ubuntu.com/12.04/serverguide/openldap-server.html#openldap-tls和 LDAP 它工作正常以及“ldapsearch -xZZ -h 172.25.80.144”在我的 Ubuntu 服务器 12.04 上
但是,在我的 Ubuntu 桌面 11.04 客户端中,我收到此错误:
ldapsearch -x -H 172.25.80.144 -ZZ
ldap_start_tls: Connect error (-11)
additional info: **TLS: hostname does not match CN in peer certificate**
Run Code Online (Sandbox Code Playgroud)
服务器 /etc/ldap/ldap.conf
BASE dc=prueba,dc=borja
URI ldap://prueba.borja
SIZELIMIT 12
TIMELIMIT 15
DEREF never
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)
客户端 /etc/ldap.conf
ssl start_tls
tls_checkpeer no
Run Code Online (Sandbox Code Playgroud)
/etc/ldap/ldap.conf
BASE dc=prueba,dc=borja
URI ldap://prueba.borja
SIZELIMIT 12
TIMELIMIT 15
DEREF never
TLS_REQCERT allow
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何解决这个问题?我认为主机名没问题。
谢谢!
为了进行故障排除,我需要查看电子邮件通过 SMTP 发送到我的 sendmail 服务器时的样子。上游服务器需要 SMTP 连接才能使用 STARTTLS,因此数据包捕获仅显示加密数据。
有没有办法使用wireshark来解密传输并查看?当然,假设我在我的 sendmail 服务器上使用了私钥?
我看到有几个程序可以在线参考RSA key listswireshark 中的功能(例如:https : //support.citrix.com/article/CTX116557)。但这似乎仍然对我不起作用。
这与前向保密有关吗?我可以不在较新的协议/密码上执行此操作吗?
我用 postfix 2.7.1 和 dovecot 1.2.15 设置了我的邮件服务器,一切似乎都很好,但现在我发现使用 @gmx.net 地址的人无法向我发送电子邮件,而是收到错误消息
Connected to <MYIPADDRESS> but sender was rejected.
Remote host said: 530 5.7.0 Must issue a STARTTLS command first
Run Code Online (Sandbox Code Playgroud)
/var/log/mail.log 显示:
postfix/smtpd[22743]: connected to mailout-de.gmx.net[213.165.64.23]
postfix/smtpd[22743]: disconnect from mailout-de.gmx.net[213.165.64.23]
Run Code Online (Sandbox Code Playgroud)
更详细的日志告诉我:
postfix/smtpd[22743]: match_hostname: mailout-de.gmx.net ~? 127.0.0.0/8
postfix/smtpd[22743]: match_hostaddr: 213.165.64.23 ~? 127.0.0.0/8
postfix/smtpd[22743]: match_hostname: mailout-de.gmx.net ~? [::ffff:127.0.0.0]/104
postfix/smtpd[22743]: match_hostaddr: 213.165.64.23 ~? [::ffff:127.0.0.0]/104
postfix/smtpd[22743]: match_hostname: mailout-de.gmx.net ~? [::1]/128
postfix/smtpd[22743]: match_hostaddr: 213.165.64.23 ~? [::1]/128
postfix/smtpd[22743]: match_list_match: mailout-de.gmx.net: no match
postfix/smtpd[22743]: match_list_match: 213.165.64.23: no match
postfix/smtpd[22743]: auto_clnt_open: …Run Code Online (Sandbox Code Playgroud) 我正在使用 Postfix TLS 策略来强制外发电子邮件使用 TLS。不幸的是,在某些情况下,证书验证失败,我不知道为什么。
例如,这是我的 TLS 政策的摘录
#/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
facebook.com secure ciphers=high
hearst.com secure match=gslb.pphosted.com ciphers=high
fastmail.fm secure ciphers=high
Run Code Online (Sandbox Code Playgroud)
所有这 3 个提供程序都使用相同的根 CA。我可以毫无问题地向 facebook.com 发送电子邮件。对于hearst.com,我必须指定一个CN 匹配项,因为证书没有正确的SAN 字段。我不明白的是为什么我还必须为 fastmail.fm 添加匹配 CN。否则证书验证失败。证书受信任,目标服务器名称为 smtp.messagingengine.com 并且证书具有与其匹配的 SAN 字段 (*.messagingengine.com)
Feb 25 21:57:22 mail postfix/smtp[25291]: Trusted TLS connection established to in1-smtp.messagingengine.com[66.111.4.74]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Feb 25 21:57:22 mail postfix/smtp[25291]: D33A02504112: to=<rttttxxxxxxxxxxx@fastmail.fm>, relay=in1-smtp.messagingengine.com[66.111.4.74]:25, delay=8.4, delays=0.02/0/8.4/0, dsn=4.7.5, status=deferred (Server certificate not verified)
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么证书不被接受?无需指定匹配规则即可强制执行“安全”TLS 策略的任何建议?
root@mail:/etc/postfix# …Run Code Online (Sandbox Code Playgroud) 我不像本网站上的大多数人那样在技术上倾向于,所以请记住这一点。我想了解更多关于电子邮件安全的知识,所以我做了一些研究,一切都根据我的理解,所以请在需要的地方纠正我。客户端和服务器(MSA/MTA?)之间的连接可以加密,但服务器到服务器(MTA 到 MTA?)之间的加密取决于每个支持 STARTTLS 的服务器。STARTTLS 也可以在客户端和服务器之间实现。
我遇到的 STARTTLS 的唯一弱点是连接可以通过加密或纯文本形式被接受,因此它使 MITM 攻击变得微不足道,其中加密可以降级为纯文本。我也知道伪造证书存在问题,尽管我不知道这是否与 MITM 直接相关。
我读到这是一个实施问题,而不是协议本身。我遇到的一些解决方案涉及将客户端配置为在未通过 SSL/TLS 发生连接时发出通知或完全断开连接。是否有一种正确的方法来实现 STARTTLS 以便 MITM 是不可能的(而不是在它发生时对其做出反应,如果有意义的话)以及会在哪里发生?这些修复程序是打算覆盖服务器到服务器的连接还是只是客户端到服务器的连接?我还想更多地了解假证书的问题,这种弱点是如何可能的,以及如何通过实施或其他方式解决它。
我最感兴趣的是服务器到服务器之间的安全性,因为服务器到客户端似乎不是一个问题,并且已经被大多数 ESP 解决了。有没有更好的 STARTTLS 替代方案?正如我所提到的,我对这一切都不熟悉,我需要对其中大部分内容进行全面指导,包括如何实施/配置。如果没有人能在这里提供,就学习资源而言,我会很感激任何正确方向的观点。
另一方面......我也有兴趣了解实际的攻击/利用,我想知道上面提到的 MITM(服务器到服务器)类型是否可以针对特定连接(目标电子邮件地址?)或者更类似于抓住路过的任何东西。