我有一个带有自签名 SSL 证书的邮件服务器。
我使用 Thunderbird 访问此服务器,它要求我接受此证书。
所以假设我在一个半安全的位置接受这个,例如在本地网络上。然后继续使用我的证书在 Thunderbird 电子邮件客户端中接受的不安全网络。
Thunderbird 设置为使用 STARTTLS 到电子邮件服务器。
是不是这样,一旦这个证书被接受,就不可能进行中间人攻击了。对于要使用此公共自签名 SSL 证书的人,他们还需要邮件服务器保留的私钥吗?
危险信号是如果有一天 Thunderbird 突然想让我接受来自邮件服务器的新证书。
我配置了 OpenLDAP,今天我按照以下准则配置了 TLS 以提高安全性:使用 TLS=required 配置 OpenLDAP
使用配置文件修改 cn=config.ldif:
dn: cn=config
changetype: modify
add: olcSecurity
olcSecurity: tls=1
Run Code Online (Sandbox Code Playgroud)
和: ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ssl.ldif
现在,当我尝试创建 时ldapsearch,出现以下错误:
ldap_start_tls: Connect error (-11)
additional info: TLS error -8172:Peer's certificate issuer has been marked as not trusted by the user.
ldap_result: Can't contact LDAP server (-1)
Run Code Online (Sandbox Code Playgroud)
例子:
ldapsearch -Z -x -LLL "(uid=user1)" -d -1
Run Code Online (Sandbox Code Playgroud)
日志最相关的部分:
TLS: error: connect - force handshake failure: errno 2 - moznss error -8172 …Run Code Online (Sandbox Code Playgroud) 我不像本网站上的大多数人那样在技术上倾向于,所以请记住这一点。我想了解更多关于电子邮件安全的知识,所以我做了一些研究,一切都根据我的理解,所以请在需要的地方纠正我。客户端和服务器(MSA/MTA?)之间的连接可以加密,但服务器到服务器(MTA 到 MTA?)之间的加密取决于每个支持 STARTTLS 的服务器。STARTTLS 也可以在客户端和服务器之间实现。
我遇到的 STARTTLS 的唯一弱点是连接可以通过加密或纯文本形式被接受,因此它使 MITM 攻击变得微不足道,其中加密可以降级为纯文本。我也知道伪造证书存在问题,尽管我不知道这是否与 MITM 直接相关。
我读到这是一个实施问题,而不是协议本身。我遇到的一些解决方案涉及将客户端配置为在未通过 SSL/TLS 发生连接时发出通知或完全断开连接。是否有一种正确的方法来实现 STARTTLS 以便 MITM 是不可能的(而不是在它发生时对其做出反应,如果有意义的话)以及会在哪里发生?这些修复程序是打算覆盖服务器到服务器的连接还是只是客户端到服务器的连接?我还想更多地了解假证书的问题,这种弱点是如何可能的,以及如何通过实施或其他方式解决它。
我最感兴趣的是服务器到服务器之间的安全性,因为服务器到客户端似乎不是一个问题,并且已经被大多数 ESP 解决了。有没有更好的 STARTTLS 替代方案?正如我所提到的,我对这一切都不熟悉,我需要对其中大部分内容进行全面指导,包括如何实施/配置。如果没有人能在这里提供,就学习资源而言,我会很感激任何正确方向的观点。
另一方面......我也有兴趣了解实际的攻击/利用,我想知道上面提到的 MITM(服务器到服务器)类型是否可以针对特定连接(目标电子邮件地址?)或者更类似于抓住路过的任何东西。
我正在尝试在一个 IP 地址上托管两个单独的域。我希望能够从 STARTTLS 命令确定请求哪个证书并根据域转发到不同的邮件服务器。
从 RFC 看来,这似乎是不可能的,但是有没有其他方法可以在单个 IP 地址上实现这样的目标?
我想在端口 25 上启用 STARTTLS,但由于未知原因,它只能在端口 465 上工作。
大师.cf:
smtp inet n - - - - smtpd
-o syslog_name=postfix/smtp
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
#smtp inet n - - - 1 postscreen
#smtpd pass - - - - - smtpd
#dnsblog unix - - - - 0 dnsblog
#tlsproxy unix - - - - 0 tlsproxy
#submission inet n - - - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING …Run Code Online (Sandbox Code Playgroud) 我最近正在开发一个 C# 客户端,它通过 SMTP 服务器发送电子邮件。然而,我一直在研究不同术语的含义,例如:STARTTLS/TLS/SSL...我对它们在上下文中的含义有一个模糊的想法,但在电子邮件方面我不知道。
经过进一步调查,我发现 SMTP 客户端以 2 种不同的方式与服务器通信(2 种加密方式);显式 SSL/TLS 和隐式 SSL/TLS。
据我了解,显式 SSL/TLS 是 STARTTLS 的工作原理,它询问不安全连接上的服务器是否支持 TLS,如果支持,则继续加密连接。然而,隐式 TLS 从连接开始到结束都是安全的,绝不会不安全。
我可能在这方面有错误,如果我错了,请纠正我。
问题是为什么端口 587(显式 SSL/TLS)是端口 465(隐式 SSL/TLS)的首选端口。
我知道端口 465 已被弃用,并且我可以看到端口 587 的用处,它可以加密和未加密,并且由客户端来了解服务器支持的内容。
但我很少看到有利于易用性的安全更新,这就是我感到困惑的原因。为什么我们从完全安全变成了仅部分安全?
我希望我的问题有意义。
我想知道我的本地 postfix 在 STARTTLS 之后对 Amazon SES smtpd 说了什么。纯文本,所以我可以理解。Amazon SES 需要 TLS,所以我暂时无法关闭它。
我目前用这个技巧记录流量的两条腿:
mkfifo proxypipe
cat proxypipe | nc -l 11111 | tee -a inflow | nc email-smtp.us-east-1.amazonaws.com smtp | tee -a outflow 1>proxypipe
Run Code Online (Sandbox Code Playgroud)
然后我与 localhost:11111 进行 postfix 对话,而不是 email-smtp.us-east-1.amazonaws.com:25。只要他们用明文交谈,这就会产生一个很好的成绩单。一旦 STARTTLS 出现,当然一切都会变得乱七八糟。
有什么技巧可以通过openssl或使用openssl或类似的东西进行后处理,以弄清楚他们彼此之间到底说了些什么?谷歌搜索没有产生任何答案。
我刚刚注意到(通过一些在线检查工具)我的邮件服务器可能允许 SSLv3 并更新了我的配置。
我在 Postfix 2.11.2 中的当前配置:
# inbound
smtpd_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2 !SSLv3
# outbound
smtp_tls_security_level = may
smtp_tls_mandatory_protocols = !SSLv2 !SSLv3
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些工具一直说 SSLv3 已被接受。
如何将所需的(nginx)配置转换为 Postfix(入站和出站)配置?
使用 Debian/7、Postfix/2.11.2、OpenSSL/1.0.1e
我有使用 TLS 选项配置的 postfix SMTP 中继。现在刚刚意识到在使用 Microsoft Outlook 向 gmail 发送电子邮件(例如)时,在收件人的邮件标题上发现此“客户端未提供证书”
Received: from MYCOMPUTER (unknown [100.200.100.150]) (using TLSv1.2 with密码(256/256 位))(客户端未提供证书)由 smtpserver.domain.com(后缀)与 ESMPSA ID ABCDE12345 for user@gmail.com
我使用从 Comodo 购买的通配符 SSL 证书。
我可以知道为什么吗?我配置错了吗?
请帮忙
smtpd_tls_security_level =可以
smtp_tls_security_level =可以
smtpd_use_tls =是
smtp_use_tls =是
smtp_tls_note_starttls_offer =是
smtpd_tls_auth_only =是
smtpd_tls_key_file = /etc/postfix/certs/key.key
smtpd_tls_cert_file = /etc/postfix/certs/crt.crt
smtpd_tls_CAfile = /等/后缀/证书/cabundle.ca-bundle
smtpd_tls_loglevel = 1
smtpd_tls_received_header =是
smtpd_tls_session_cache_timeout = 3600
smtpd_tls_ask_ccert =是
tls_random_source = dev的是:/ dev / urandom的
smtpd_tls_session_cache_database = B树:$ {data_directory} / smtpd_scache
smtp_tls_session_cache_database = B树:$ {data_directory} …
我正在 Ubuntu 12.04 上设置一个新的 OpenLDAP 服务器,其中包含我们当前 LDAP 数据库的副本。我想我已经完成了大部分配置,但是我无法判断 LDAP 查询是否加密。我怀疑证书可能存在错误配置,但我不知道如何判断。
任何建议或意见,不胜感激!
我能够使用 TLS连接我的postfix 服务器。万事俱备。但是当我使用此安全连接发送消息时,目标服务器(例如 gmail)在没有 TLS/SSL 安全连接的情况下接收我的消息。
如果我使用另一台带有 cpanel 的服务器,Gmail 会通过 ESMTP S接收该邮件。但是当我向 gmail 帐户发送消息时,它被 ESMTP 接收(不是使用 TLS 连接。)
真诚地,我发现我的 postfix 服务器没有通过 SSL/TLS 加密连接与目标协商。
http://www.checktls.com报告您的电子邮件已发送,但未使用 TLS 安全发送。
但是为什么我能够通过 TLS 连接我的服务器,但服务器无法通过安全连接发送它?
这是配置文件:
myhostname = **hidden**
myorigin = /etc/mailname
mynetworks_style = host
mydestination = domains here...
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
mailbox_size_limit = 0
message_size_limit = 104857600
mailbox_transport = lmtp:unix:private/dovecot-lmtp
virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_tls_cert_file …Run Code Online (Sandbox Code Playgroud) 在我的主机上运行 kubuntu 10.04,我们称之为alpha. 我有 postfix 作为我的系统 MTA。我有 crons 正在运行alpha,需要向远程主机发送电子邮件,我们称之为mailhost。我无法更改mailhost.
通常我使用 Thunderbird 通过mailhost使用 IMAP over TLS发送/接收电子邮件。Thunderbird 中的 SMTP 设置被配置为使用 STARTTLS。
我希望 cron 作业继续运行alpha以将邮件发送到mailhost,但由于它alpha是住宅 NAT 后面的动态 IP 主机mailhost,alpha由于通常的反垃圾邮件/RBL 启发式方法,很难接受来自NAT的邮件。但是,如果我可以让 postfix 在mailhost将邮件发送到某个地址时使用 TLS 进行连接(dirtside@mailhost例如),那么邮件应该可以正常通过。
我想弄清楚的是如何将 postfix 配置为仅在连接到mailhost.
替代解决方案(例如使用 postfix 以外的其他解决方案)是可以接受的,但最终的任务仍然是允许运行的 cronalpha将电子邮件发送到dirtside@mailhost.com.