四步帮你打造超级安全的Exchange Server

四步帮你打造超级安全的Exchange Server
2017年11月10日 15:33 51CTO

那时候,双11还是个普通的日子http://t.cn/Rl8VYo5

笔者认为部署一台对于各种敏感信息都足够安全的Microsoft Exchange Server是完全可以实现的。本文将向你展示如何做到这一点。

在耳濡目染了各种有关信息泄露、黑客和加密等方面的新闻之后,信息安全管理人员时常会很自然地幻想去部署一台超级安全的Microsoft Exchange Server,让它服务于任何对外发出的绝密邮件。我会在此尽我所能向您展示如何在Hyper-V的虚拟机环境中部署一台非常实用的Exchange Server 2016。我将和您讨论信息的锁定、静态和传输信息的加密、安全的远程访问、以及针对各种入侵的加固。

  • Exchange Server。我相信很多人都认为Microsoft Exchange是永远无法被恰当地安全加固的,唯有Sendmail或Postfix的定制化编译方可实现。好吧,我暂且接受这个说法。但是您要知道,如果您的团队只有您一个人或是少数几个成员的话,这些定制的方案也许会奏效。但是Exchange却有着它独特的群组软件的功能。

此外,信息存在于电子邮件、日历和联系人之中,而无论是Sendmail还是Postfix,都无法提供集成、统一的解决方案。如果您能成功地加固Exchange的话,那么您的日历、联系人、收件箱、日志条目、即时消息的对话历史记录等也都会得到安全保障。而且,大多数人在使用习惯上都会选择Outlook,而Outlook恰好是Exchange的最佳使用拍档。

  • 一种在办公室和路上都适用的解决方案。移动安全非常重要,我会尽量把重点放在保护Exchange的移动访问接入之上。如果在设计的时候就存在缺陷的话,那么安全就只会流于形式,而无实际作用了。任何在这个领域有经验的人都会告诉您:安全性和便利性永远是一对相爱相杀的两方面。因此,我们在搭建的过程中要作出明智且理智的选择,在允许适当的便利性的同时,尽量不去影响系统的整体完整性。

  • 一个简单的一站式解决方案。我并不打算为了达到高可用性而部署多台Exchange服务器;我也不打算实现Windows Server的群集;我更不会使用附加存储;或试图去管理SAN的连接。相反,我只想保持一种简单模式:将存储、服务器和Exchange都放置在一起。您可以搭建一台单独的虚拟机,将它要么运行在自己的网络内,要么部署到像亚马逊Web Services或是微软Azure的服务环境基础设施中。

因此,我的三步走操作顺序是:首先部署Exchange。其次从Windows Server和Exchange两方面出发进行基础加固。最后加固网络,并实施最新的加密和审计技术,从而让您获得最为安全的Exchange Server的单机实现。事实上,我已经着手将这个系统部署到我们组织的生产环境之中,我们组织的日常运营就是依赖于这个部署的架构。

在您的服务器上安装Exchange Server 2016

在安装Exchange时,我建议使用Michel de Rooij’s的卓越PowerShell脚本(译者注:https://eightwone.com/2013/02/18/exchange-2013-unattended-installation-script/)来逐步在您的系统上搭建Exchange Server 2016。虽然也有许多其他的脚本可以被用到,但是这个脚本更胜一筹。因为它能够涉及到所有的先决条件,包括各式各样的过滤包。

根据您所要安装到的操作系统的不同(鉴于该脚本支持从Windows Server 2008 R2的Service Pack 1一直到当前最新的版本,我将使用的是Windows Server 2016,因为它是最新“出炉”的系统版本,而且有着良好的技术支持),它会根据所处的架构方案进行调整,从而对Active Directory进行安装准备。而且它会巧妙地处理各种错误和异常。注意:该脚本的更新比较频繁,在撰写本文时,它在2017年6月28日已有过一次最近的更新。

该脚本需要您在手边具有Exchange ISO或者其他类型的源文件。Exchange 2013及其更高版本(当然其中也包括2016版),都有一个不错的功能:每一次所有的累积更新实际上都是一套完整的Exchange副本。这就意味着您可以提取累积更新文件目录中的各种文件,另放到一个文件夹中,然后从那里去运行一个Exchange的全新安装。这样的方式可以帮助您节省对现有服务器进行补丁和更新所花费的额外时间和精力,同时也节省了对于已部署的服务器维护的各种工作量。截至发稿时,Exchange 2016的最新版本是累积更新第7版,它于2017年9月19日发布。

以下是运行PowerShell脚本的命令:

Install-Exchange15.ps1 -InstallBoth -SourcePath c:\exchange2016cu7 -Organization EightyTwoVentures -AutoPilot -Credentials

您一旦运行了该命令,就会有一个提示您输入管理员身份凭据的对话框弹出。注意:这些身份凭证会被一直保存到脚本运行完毕才被删除掉。也就是说,即使有系统的重新启动,该脚本也会保留该身份凭据。在该脚本将Exchange以“逐位”的方式安装到虚拟机的期间,您会碰到五到六次的系统重启,并会花费大约一个小时左右的时间。最终您将会得到一台功能完备但尚未定制配置的Exchange,至此各项部署工作已经准备就绪了。

一、设置BitLocker加密

安全的一个重要部分就是加密,而且它意味着既要加密静态的数据(即当它们被存储在磁盘上时),也要加密运输过程中的数据(比如当它们通过网线进行发送的时候)。既然我们正在讨论的是Exchange,这就意味着我们已拥有Windows Server,而且上面具有Bitlocker。Bitlocker是一个工业级强度的驱动器加密机制,它正好可以满足我们的部署要求。

事实上,Bitlocker在Exchange首选体系结构的指导中是这么被提到的:在微软的“理想”部署情景中,如果你想使用到Exchange的所有优势,并消减其所有的产品弱点的话,Exchange必须有一件“防弹衣”。您可以在Windows Server上开启BitLocker,然后让它完成对整个磁盘驱动器的加密过程--就这么简单的两步走的过程。(当然,请不要丢失您的备份密钥)。

二、用安全传输层协议创建传输规则(TLS)

安全的Exchange部署强制要求在传输过程中使用TLS。TLS与HTTPS和在邮件传输的SSL等效,它会对邮件服务器之间的任何SMTP会话的整体数据传输予以加密。当一封电子邮件被发送的时候,参与该事务的双方邮件服务器都会交换数字证书,然后对加密通道、以及邮件标题、正文包括任何附件传输的安全通道进行统一地协商。

如今大多数的SMTP服务器都支持随机传输层安全(opportunistic TLS),这就意味着它们会默认使用TLS来联系远程的邮件服务器,和接收从外部发向本组织内用户的各种入站邮件。但是如果对方不支持TLS的话,它们将自动切换回传统的SMTP--这种不安全的明文模式。

您必须用TLS来创建传输的规则。这里给大家列举出Exchange 2016(和2013版)与其以前较早版本(如2007和2010版)的不同之处(如果您使用该规则的话,证书在此已不重要了,因此不必过分苛求之),因此就算您是Exchange的“老司机”,也请认真阅读下方的文字。

1. 在Exchange控制面板中创建一条传输规则:首先登录,然后在左侧点击“邮件流(mail flow)”,之后在顶部选择“规则”,并且点击“+”图标,最后选择“创建一条新规则...”

2. 因为您需要将此规则应用于所有的消息,所以最好给它起一个容易理解的名称。然后在“应用此规则如果...”的下方找到并选中“[应用于所有邮件]。”的选项,之后在“执行以下操作:”处,将鼠标移到“修改消息的安全性...”并点击“需要TLS加密”。

3. 确保在“为此规则选择一种模式”下方的“强制(Enforce)”单选按钮被选中,然后输入任何更改信息,以便你在将来参考的时候能从注释文字里找到提示。

4. 最后,单击窗体底部的保存按钮。在弹出一条“你想把该规则应用于将来所有的消息吗?”的警告时,点击“是”便可。

三、通过SSL VPN设置远程访问

作为Exchange服务器安全部署的一个关键部分,我们应该确认任何与Exchange Server交互人员的身份、数量或物理位置(更高版本可以实现)。SSL VPN通常被认为是在任何服务的远程访问中最为安全的可行方案。它不需要你在防火墙上开启特殊的端口,却可以用一个加密层对会话进行封装,它支持对发起服务连接的当前状态进行评估,以确认连接是否已被攻破。

SSL VPN的另一个优势是它可以将你的远程客户端纳入,作为本地的安全网络的一部分,以便您可以安全放心地管理和处置它们。因此对于咱们所讨论的超安全Exchange部署,我就是使用SSL VPN来作为唯一的远程系统的访问方式。当然在本地网络中,我还是会允许各个Outlook的客户端以标准的ActiveSync进行连接。如今有许多厂商都能够方便地提供各种各样的SSL VPN设备。您手头也许已经有一个了,那就赶快部署它吧。

四、设置防火墙

安全的Exchange意味着您需要有一个安全的网络。在Hyper-V上,您需要从物理主机的各个适配器上移除网络绑定,从而消除你的主机操作系统受到威胁的可能性,并阻止各种其他的负载在主机上运行。

在该安全邮件服务器的边界上,您只需要开启两个端口:25号端口,用来进行SMTP传输;和典型的443号端口,用于建立SSL VPN会话的各种HTTPS连接。为了增加安全效果,您可以适当采用一些模糊的手法:比如可以变更您的SSL VPN端口号为一个随机数,不过其具体的实现过程还是取决于您的SSL VPN厂商。通常,您可以选取一个大于1024的数字作为备用端口号。您也需要培训您的用户来使用该端口连接到SSL VPN进行邮件的收发。

那么有没有办法能让25号端口变得更加安全呢?这里介绍两种不同的观点:

  • 一种是“皮带和背带类型”(译者注:背带裤上的背带为皮带多提供了一种防止裤子掉下的保护):他们将各种风险,即恶意软件、病毒、垃圾邮件和本地邮件服务器的攻击视为正常且不可避免的现象。因此他们会选择使用第三方的邮件“保健服务”(hygiene service)。我偏向使用Mailprotector(译者注:一种邮件安全、管理的运营服务平台),当然,微软的Exchange在线保护(Exchange Online Protection)也是非常实用的。

如果您选择使用第三方“保健服务”来阻断垃圾邮件和病毒的话,那么您会进一步在边界防火墙上阻断25号端口,以限制“保健服务”所用到的IP范围。这样一来,你的防火墙就会悄悄地丢弃那些不明来源的数据包,以确保只有通过了“保健服务”的邮件才会传到您的手上。此外,您要确保您的服务提供商支持所需的TLS,以便执行传输加密,并且能够将他们的服务用作一台智能主机(相对于TLS的基本功能而言),进而保证您能够获取出站方向的安全。

  • 一些非常偏执的人可能不愿意相信那种邮件经历了多个云服务节点,才最终发到手中的方式,因此他们更崇尚所有的邮件能够直接地发送过来。面对这种情况的要求,您肯定会强制要求在连接的全程进行TLS加密。可是,它并不是一个绝对万无一失的加密机制。因为大多数邮件服务器(包括Exchange在内)在传输开始的时候,并不会为了防止相互之间直接传送明文,而进行任何形式的交换证书的验证。由此可见,您会在这种情况下,随着时间的推移而收到越来越多的垃圾邮件。

最后的想法

搭建和部署一台安全的单机Exchange是一个探索过程,而不是一个既定的任务清单。在此,我给您提供了构建和加固一台邮件服务器的一些基本要点,包括对静态和传输中数据的加密,和如何尽量减少被攻击的可能性。当然,威胁的种类是在持续发展的,我这里所提到的知识只是一个良好的开端,管理好邮件服务器,乃至其他服务器是企业的一项长治久安的工作。

原文标题:Build an ultra-secure Microsoft Exchange Server

作者: Jonathan Hassell

那时候,双11还是个普通的日子http://t.cn/Rl8VYo5

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部