SecurityGateway 合并了最新的加密技术来保护您的数据。安全套接层(SSL)协议—也叫做传输层安全(TLS)— 通过使用 STARTTLS SMTP 扩展名来防止其他人拦截和读取您的邮件。SecurityGateway 中的 HTTPS 为 web 界面提供了相同的保护。
由 Netscape 通信公司所研发的 SSL 协议是用来保证服务器/客户端进行互联网通信的标准方式。它提供了服务器验证、数据加密和用于 TCP/IP 连接的可选客户端验证。此外,因为 SSL 已构建入当前所有主要浏览器,只需在您的服务器上安装一个有效的数字证书,当连接至 SecurityGateway 时,即可激活连接浏览器的 SSL 功能。若您使用邮件客户端连接,在支持 SSL/TLS 后,SecurityGateway 还要支持 STARTTLS SMTP 扩展名。不过,您必须先将您的客户端配置为会使用 SSL,且其必须支持此扩展名—并非所有邮件客户端都要支持,大部分支持即可。
电子邮件和 HTTPS 加密
启用 SMTP 和 HTTPS 的 SSL 和 STARTTLS 支持
点击此选择框激活 SSL/TLS 协议支持以及 STARTTLS 扩展名,使用下方选则证书框中的”激活“证书。必须启用此选项,而且若您希望使用 HTTPS 登录到 SecurityGateway 的 web 界面,必须激活一个有效的证书。默认情况下,禁用该选项。
尽可能发送带 STARTTLS 的邮件
若您希望 SecurityGateway 为它发送的每一封 SMTP 邮件使用 STARTTLS 扩展名,请点击此选项。若与 SecurityGateway 相连的服务器不支持 STARTTLS,那么邮件将以常规方式投递而不使用 SSL。默认情况下,禁用该选项。
SSL 协商失败将在没有 SSL 的情况下重试一小时
此选项临时列出在 SMTP 会话期间遇到 SSL 错误的主机。将每隔一小时重置白名单。
RequireTLS 允许您标记必须使用 TLS 发送的邮件。如果无法使用 TLS(或者 TLS 证书交换的参数不可接受),则退回邮件,而不是不安全地投递邮件。有关 RequireTLS 的完整说明,请参阅: RFC 8689: SMTP Require TLS Option.
默认情况下,启用 RequireTLS,但是将受 RequireTLS 进程约束的唯一邮件是被使用新的内容过滤器操作, “为 REQUIRETLS 标记邮件...”的“内容过滤器”规则特别标记的邮件,或发送至 <local-part>+requiretls@domain.tld (例如 arvel+requiretls@mdaemon.com)的邮件。将所有其他邮件视为已禁用该服务。此外,必须满足几个要求才能使用 RequireTLS 发送邮件。如果它们中的任何一个失败,该邮件将弹回,而不是以明文形式发送。这些要求是:
•必须启用 RequireTLS。
•必须通过“内容过滤器”操作或“<localpart>+requiretls@...”地址将该邮件标记为需要 RequireTLS 处理。
•收件人域的 MX 记录必须由 MTA-STS 验证。
•指向收件主机的连接必须使用 SSL (STARTTLS)。
•收件主机的 SSL 证书必须与 MX 主机名匹配,并链接到受信任的 CA。
•收件邮件服务器必须支持 REQUIRETLS,并在 EHLO 响应中声明。
•如果这些要求中的任何一个失败,则邮件不会被投递,并退回给发件人。
默认情况下启用 MTA-STS 支持,详细说明请参阅 RFC 8461: SMTP MTA Strict Transport Security (MTA-STS).
SMTP MTA 严格传输安全(MTA-STS)是一种机制,使邮件服务供应商(SP)能够声明其接收传输层安全(TLS)和保护 SMTP 连接的能力,并指定发件 SMTP 服务器是否应拒绝投递给不为 TLS 提供受信任的服务器证书的 MX 主机。
要为您自己的域设置 MTA-STS,您需要创建一个 MTA-STS 策略文件,该文件可以通过 HTTPS 从 URL https://mta-sts.domain.tld/.well-known/mta-sts.txt 下载,其中“domain.tld”是您的域名。策略文本文件应包含以下格式的几行信息:
version: STSv1
mode: testing
mx: mail.domain.tld
max_age: 86400
模式可以是“none”、“testing”或“enforce”。每个 MX 主机名应有一个“mx”行。通配符可用于子域,例如“*.domain.tld”。存在时间最大值以秒为单位。常规值是 86400 (1 天) 和 604800 (1 周)。
还需要 _mta-sts.domain.tld 上的 DNS TXT 记录,其中“domain.tld”是您的域名。它必须具有以下格式的值:
v=STSv1; id=20200206T010101;
每次更改策略文件时,都必须更改“id”的值。通常为这个 id 使用时间戳。
默认情况下禁用 TLS 报告功能,更多详细信息请参阅RFC 8460: SMTP TLS Reporting.
TLS 报告功能允许使用 MTA-STS 的域收到有关检索 MTA-STS 策略或使用 STARTTLS 协商安全通道的任何失败的通知。启用后,SecurityGateway 会每天向已在当天向其发送(或尝试发送)邮件的每个启用 STS 的域发送报告。提供了多个选项来配置报告将包含的信息。
要为您的域设置 TLS 报告,请启用 DKIM 签名,并在 _smtp._tls.domain.tld 创建一个 DNS TXT 记录,其中“domain.tld”是您的域名,具有以下格式的值:
v=TLSRPTv1; rua=mailto:mailbox@domain.tld
其中 mailbox@domain.tld 是您要向其发送域报告的电子邮件地址。
选择证书
此框中列出了您创建的所有 SSL 证书。SecurityGateway 生成的证书是自己签名的,这就表示该证书的发行人,或者说证书颁发机构(CA),与证书的拥有者是同一人。该证书当然有效且允许,不过有可能每当用户连接至 SecurityGateway 的 HTTPS URL 时,有一些用户就会被问道是否希望进入站点并/或安装该证书。因为该 CA 并未列于它们所信赖的 CA 列表中。当用户同意安装证书并信任您的 SecurityGateway 域作为有效 CA 时,在连接时他们将不再看到安全警告邮件。他们是否要通过一切步骤取决于他们所使用的浏览器,他们所放置的安全性限制,等等。
创建 SSL 证书
要创建一个新证书,点击选择证书框顶部工具栏上的新建。将会打开 SSL 证书屏幕。 欲删除一个现有证书,选中该证书然后点击“删除”。
激活一个 SSL 证书
欲激活一个 SSL 证书,在所要的条目上点击”激活“链接。
STARTTLS 白名单
使用此选项可指定您希望从 STARTTLS 免除的任何 IP 地址、主机或域。发送到列出的任何条目时,STARTTLS 将永远不会使用,并且 STARTTLS 从不被通告给列表上的任何连接主机或 IP。
STARTTLS 请求列表
在 STARTTLS 请求列表中的主机或 IP 地址的 SMTP 连接必须使用 STARTTLS。如果 STARTTLS 不可用或失败,则不会发送该消息。
该屏幕用于创建新的 SSL 证书。欲创建一个新证书,点击“加密”页面上选择证书工具栏中的“新建”,然后输入您的证书信息。完成后,点击“保存并关闭”来创建证书。
创建证书
主机名
输入您的用户将会连接的主机名称(例如,“mail.example.com”)。
机构/公司名
在此输入“拥有”此证书的机构或公司。
替换主机名(用逗号分隔多个项目)
SecurityGateway 不支持为各个域服务的分离证书—所有域必须共享一个单一的证书。若用户可能连接的主机名存在着替换主机名,并且您希望该证书同样适用于那些名称,那么请在此输入这些域名,并以逗号隔开。允许通配符,例如”*.example.com“。
加密密钥长度
为此证书选择所需位长度的加密密钥。加密密钥的位数越长,已传输的数据也将越安全。不过请注意,并非所有的应用程序都支持大于 512 的密钥长度。
国家/地区
选择您的服务器所在国家或地区。
如果您从 SecurityGateway 以外的其他渠道购买或者生成了证书,则通过使用 Microsoft 管理控制台将其导入 SecurityGateway 所用证书库,您仍可使用该证书。一旦证书被导入到 Windows 中,它应该出现在 SecurityGateway 中,以便它可以被使用。要导入证书:
1.在 Windows 工具栏上,点击“开始 » 运行...”,然后在文本框中输入“mmc /a”。
2.点击“确定”或按“回车”。
3.在 Microsoft 管理控制台中,点击菜单栏上的“文件 » 添加/删除管理单元...”,(或在键盘上按下“Ctrl+M”)。
4.在“添加或删除管理单元”对话框上,点击“证书”,然后点击“添加”。
5.在“证书管理单元”对话框上,选择“计算机账户”,然后点击“下一步”。
6.在“选择计算机”对话框上,选择“本地计算机”,然后点击“下一步”。
7.点击“确定”。
9. | 在左窗格中的“证书(本地计算机)”下,如果您导入的证书是自签名的,则点击“可靠根证书机构”,然后点击“证书”。如果不是自签名的,则点击“个人”。 |
10. | 在菜单栏上,点击“操作 » 所有任务 » 导入...”,然后点击“下一步”。 |
11. | 输入要导入证书的文件路径(必要时请使用浏览按钮),然后点击“下一步”。 |
12. | 点击“下一步”,然后点击“完成”。 |
要为 SecurityGateway 支持 SSL/TLS 和 HTTPS,您需要 SSL/TLS 证书。证书是由证书颁发机构 (CA)颁发的小型文件,用来验证与其预期的服务器建立连接的客户端或浏览器 并启用 SSL/TLS/HTTPS 来保护与该服务器建立的连接。Let's Encrypt 是一个证书颁发机构,通过专门设计的自动化流程来为“传输安全层(TLS)”加密提供免费的证书,该流程使您可以免于现在复杂的手动创建、验证、签名、安装和续订用于保护网站安全的证书。
支持使用 Let's Encrypt 的自动化流程来管理证书,SecurityGateway 包含一个 PowerShell 脚本,位于“SecurityGateway\LetsEncrypt”文件夹中。ACMESharp 模块是该脚本的从属文件,需要 PowerShell 3.0。这就意味着该脚本不适用于 Windows 2003。此外,SecurityGateway HTTP 服务必须监听 80 端口,否则无法完成 HTTP 挑战,脚本也将无法有效工作。您需要正确设置用于 PowerShell 的执行策略,它才允许您运行这个脚本。运行该脚本将使一切为 LetsEncrypt 准备就绪,包括将一些必要的文件放置在 SecurityGateway HTTP(模板)的目录中来完成 http-01 挑战。它为默认域使用在 SecurityGateway 中配置的 FQDN 作为证书的域,检索证书并将其导入 Windows,并将 SecurityGateway 配置为使用利用 SecurityGateway 的 XMLRPC API 的证书。
如果您默认域的 FQDN 设置不指向 SecurityGateway 服务器,此脚本将无法有效工作。如果您想在证书中设置备用主机名,您可以这样做。您需要在命令行上传递备用主机名称。
使用示例:
.\SGLetsEncrypt.ps1 -UserName admin@domain.com -Password Password1 -AlternateHostNames mail.domain.com,imap.domain.com,wc.domain.com -ErrorEmailTo admin@domain.com
您无需在 AlternateHostNames 列表中包含用于默认域的 FQDN。例如,您的默认域“example.com”被配置成使用“mail.example.com”的 FQDN。您使用“imap.example.com”的备选主机名称。在您运行这个脚本时,您只需传递“imap.example.com”作为备选主机名称。此外,如果您传递了备选的主机名称,将为各个名称完成 HTTP 挑战。如果未完成全部挑战,将无法正确完成这一步。
如果您不愿传递备选的主机名称,就不要在命令行中包含 –AlternateHostNames 这个参数。如果您不想在发生错误时发送电子邮件通知,请勿在命令行中包含 –ErrorEmailTo 这个参数。