评估运行自己的电子邮件服务器的安全问题

评估运行自己的电子邮件服务器的安全问题

我在一家小型研究中心工作,需要在预算紧张的情况下独立管理很多事情。其中之一就是 IT 基础设施,包括网站和电子邮件托管。虽然我还没有成为一名系统管理员,但到目前为止,我已经成功地在一家托管公司找到了一台价格合理的根服务器,建立了我们的网站和网络应用程序,并让它们运行了几年。

到目前为止,我们的电子邮件都是外部托管的,这意味着我们付出的少,得到的少:875Mb 电子邮件存储空间,最多可容纳 35 个 POP 邮箱。在由于电子邮件客户端的本地收件箱损坏而导致几次数据丢失之后,我决定至少研究一下使用我们租用的根服务器上的 postfix / qmail 邮件服务器的选项。乍一看,有很多优势:我们可以切换到几乎无限的 IMAP 帐户,将电子邮件帐户中的电子邮件包含在服务器备份中,每个邮箱使用更多的存储空间,等等。最重要的是,邮件服务器已经包含在我们为网络服务器支付的费用中,因此我们可以降低外部电子邮件托管成本,甚至可以花更少的钱获得更多的东西。

技术部分已经足够有趣了:我已经能够设置好一切(发现 Plesk 面板的优点),原则上我们可以立即切换到新的电子邮件服务器。但是,我不确定我能否正确评估管理电子邮件服务器所涉及的安全风险。当然,我已在所有电子邮件帐户上启用了 SpamAssassin 和防病毒软件(Plesk Premium 防病毒软件),设置了 SSH 证书,并在我们的 DNS 中添加了 SPF、DMARC 和 DKIM 记录。我主要担心的是:这是否足够,以及被攻击和整个服务器被入侵的可能性有多大?

例如,我注意到,即使在这个过早的测试阶段,QMail 日志中也充满了如下消息:

Dec 15 17:07:00 server4545 postfix/smtpd[23838]: connect from unknown[91.200.13.5]
Dec 15 17:07:00 server4545 plesk_saslauthd[24512]: Invalid mail address 'albert@'
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: warning: unknown[91.200.13.5]: SASL LOGIN authentication failed: authentication failure
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: lost connection after AUTH from unknown[91.200.13.5]
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: disconnect from unknown[91.200.13.5]
Dec 15 17:07:04 server4545 postfix/smtpd[23838]: connect from 24-35-233-74.fidnet.com[24.35.233.74]
Dec 15 17:07:04 server4545 postfix/smtpd[23838]: lost connection after CONNECT from 24-35-233-74.fidnet.com[24.35.233.74]
Dec 15 17:07:04 server4545 postfix/smtpd[23838]: disconnect from 24-35-233-74.fidnet.com[24.35.233.74]
Dec 15 17:07:20 server4545 postfix/smtpd[23838]: warning: hostname ip-address-pool-xxx.fpt.vn does not resolve to address 118.71.172.216: Name or service not known
Dec 15 17:07:20 server4545 postfix/smtpd[23838]: connect from unknown[118.71.172.216]
Dec 15 17:07:22 server4545 postfix/smtpd[23838]: NOQUEUE: reject: RCPT from unknown[118.71.172.216]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[100.74.205.159]>
Dec 15 17:07:22 server4545 postfix/smtpd[23838]: disconnect from unknown[118.71.172.216]
Dec 15 17:07:22 server4545 /usr/lib/plesk-9.0/psa-pc-remote[8577]: Message aborted.
Dec 15 17:07:22 server4545 /usr/lib/plesk-9.0/psa-pc-remote[8577]: Message aborted.

这似乎表明有很多来自完全不相关的 IP 地址的兴趣,尽管我目前甚至没有使用该工具进行测试。好消息似乎是这些尝试被识别并拒绝,但我仍然想知道它们来自哪里以及我应该有多担心。即使它们是无辜的,我可以想象处理所有这些请求可能会给服务器带来严重的开销。为了测试目的,我在我们的 DNS 中添加了一个优先级较低的 MX 记录;我想知道这是否已经“邀请”这么多请求到我们的邮件服务器?

换句话说:我正在寻找有关运行自己的邮件服务器所涉及的安全风险的合理建议。毕竟,如果出现问题,他们可能会破坏一切,而我必须自己处理。

任何建议都将非常感谢!

罗恩

答案1

作为一名前管理员,后来成为渗透测试员,我理解你的痛苦。然而,事实证明,因为像你一样,我非常关心系统的安全性,找出了 DKIM 和 SPF 是什么,并实施它们,并使用 SSH 密钥等,结果证明我做的大多数事情都是正确的。听起来你就是这样的 ;-)

从您的日志来看,您似乎没有这样做,但最重要的事情之一是确保您没有运行开放中继。以下链接应该允许您进行测试: http://mxtoolbox.com/diagnostic.aspx

您还需要防止用户枚举。您不希望攻击者能够登录到您的 SMTP 服务器并执行:“VRFY bob”或“EXPN joe”,然后让邮件服务器回复告诉您系统中是否存在 joe。可以将邮件服务器配置为不支持这些功能。您也不希望邮件服务器响应“MAIL TO: tom”并立即告诉您 tom 存在。您明白了。查看 smtp/pop3/imap 用户枚举并缓解它。

还有一件事——不要使用没有加密的 pop3 或 imap。密码将以明文形式通过互联网传输——Wifi 通常也很容易被黑客入侵,这会立即泄露未加密邮件服务的凭据。您需要传输层安全性 (TLS)。

与 SMTP 类似,您希望要求发送邮件的远程用户进行身份验证,但这也必须通过 TLS 连接发送。此外,不要忘记要求发送邮件的本地用户进行身份验证,并防止内部开放中继。我最近在一家律师事务所进行了一次渗透测试,我可以通过端口 25 远程登录到他们的邮件服务器,并从公司负责人向一名员工发送一封邮件,告诉他他加薪了或被解雇了。显然我两样都没做,但你不想允许这种可能性。如果可能的话,最好有不可否认性。

很明显,你很擅长自己发现问题,我不会详细介绍,但可以说 - 你需要了解诸如 POP3S 和带有 STARTTLS 的 POP3 的相对优点,端口 25、465、587 等之间的区别。IMAP 和 IMAPS 等。要求客户端 TLS 证书进行身份验证可能太过分了,但不要使用自签名服务器 TLS 证书,你应该获得真正的证书。你可以从 go-daddy 或类似网站以低价获得它们。不要使用 SSL2、SSL3 或 TLSv1.0。如果可能的话,TLSv1.2 应该是所有启用的。

另外,配置您的邮件服务器,使其在您连接到端口时不公布其软件版本(或任何产品详细信息,如果可能)。一个简单的通用横幅就足够了。

要求用户和管理员设置强密码!

还有一件事,为了避免垃圾邮件,如果配置正确,灰名单可以很好地发挥作用。我用了很长时间,从来没有遇到过未送达邮件的问题。

互联网上的机器总是被扫描和攻击。如果你已经安全地配置了它,那么我就不会太担心(虽然如果你担心 DoS,你可以使用 iptables 速率限制 - 或者与你的 ISP 联系),但在 PLESK 等控制面板方面和 SSH,使用 iptables 将需要访问这些端口的 IP 列入白名单,这样攻击者就看不到他们在那里了。在你的服务器上使用 nmap 查看攻击者会看到什么。如果除了你的邮件端口之外,所有端口都对公众进行了过滤,那就太好了。只使用 HTTPS,而不是 HTTP 来连接到 Web 管理内容,并且再次强调,只使用 TLSv1.2。或者更好的是,让它只在本地主机上监听,这样从外部就无法访问它,然后使用 SSH 端口转发来连接到它!

针对您正在使用的每种软件,在 Google 上搜索“服务器强化 PRODUCTNAME”,此外“渗透测试 PRODUCTNAME”、“PRODUCTNAME 漏洞”也会有所帮助。

非常重要-尽可能保持所有软件和 Linux 操作系统得到修补并保持最新。

一个经常被忽视的风险是您自己的工作站被入侵的风险。作为管理员,您是主要目标。如果发生这种情况,攻击者可能会窃取您的密码或 SSH 密钥并找到您的文件,这些文件会告诉他们需要了解的有关您的配置的所有信息。一旦他们掌握了这些信息,他们就可以进入您的邮件系统,无论您对邮件系统的保护有多好,即使它是托管的 Office 365 解决方案。事实上,从某种程度上来说,如果它托管在其他地方并且配置更熟悉,对他们来说会更容易。

除非必要,否则不要以 root 或管理员身份登录您的计算机。不要向同事提供超出他们需要的访问权限。等等。打开电子邮件附件等时要非常小心 - 这些都是常见的东西。

相关内容