在实际中,多数公司会有很多流动性的工作人员(例如销售员、出差人员等),他们长年不在公司定点办公,多数情况下都是全国出差,而且他们的工作又需要使用公司的内部邮箱。而公司内部的Exchange使用的域名默认情况下只能在内部使用,这时候就需要将Exchange发布到外网出去,使得内部Exchange服务器能够正常跟互联网联通,并且开启Exchange外部的相应服务,这样才能够让处于公网的内部员工通过多种方式来连接到公司内部邮箱,完成正常的邮件收发工作。

------------------------------------------------------------------------------------------------------

实验拓扑:

wKiom1NBW8yTX5qTAAR6s7uCQP0982.jpg

        根据拓扑图,可以看出实验使用微软软件防火墙Forefront TMG 2010来发布Exchange服务器,这不是唯一的途径。也可以使用硬件防火墙、当然也可以使用路由器NAT,就是安全性不高而已。其实上图拓扑完全可以直接应用到小型企业Exchange的部署,但这种部署方式严格来说高可用性不足,安全性不够。安全性体现在TMG上直接发布内部Exchange服务器,也就意味着需要通过TMG来打通内部Exchange服务器响应的端口,这样会导致Exchange服务器端口是直接面对公网的,而且内部Exchange服务器是AD中的重要成员,一旦被外部***或***,将会影响整个内部网络安全。高可用性体现在内部Exchange服务器是单一的,没有任何的容错,一旦Exchange服务器停止工作,将影响所有Exchange业务。想解决上诉两个问题,在安全方面,可以考虑TMG的三向架构,使用DMZ区域来架设Exchange边缘传输服务器。而在高可用性方面,可以通过架设多台集线器传输服务器来实现负载均衡NLB,通过创建数据库高可用性DAG来实现邮箱数据库的高可用性。这些如果有机会的话,我会在后面一一呈现。

--------------------------------------------------------------------------------------------------------

1.公网IP申请和公网域名注册。

这个没有什么好讲的,公网IP通过电信运营商来提供,而公网域名通过权威域名注册服务商来授权使用。一般建议Exchange公网域名跟内部域名一致。

2.公网DNS主机A记录和MX邮件交换器与逆向域名解析。

        a)在公网DNS上添加内部Exchange服务器对应使用的公网域名的A记录是至关重要的,这是一个必须操作的过程。A记录是使得公网用户能够通过域名去解析对象的公网IP地址。这步操作需要由电信运营商去操作。

        b)对于MX邮件交换器,在本节中,没有涉及内部与外部邮件服务器(邮局)之间邮件的收发,对于仅仅为了能让公司内部员工在外网访问邮件服务器,MX记录并非必须步骤。MX邮件交换器是用于在公网上两台邮件服务器之间相互发送和接收邮件时通过收件人地址后缀@domain.com来关联完整的邮件服务器对外域名,再通过主机A记录来关联邮件服务器对外的公网IP地址,实现正常的收发工作。所以在正常情况下,一旦一台内部Exchange服务器搭建完成后,并且对外提供了服务,将会同时完成DNS主机A记录和MX邮件交换器的添加。

        c)对于逆向域名解析,很多Exchange教程在Exchange公网操作这部分没有讲述到这点,我个人认为是有必要的,逆向域名解析对邮件服务器影响巨大,在域名系统中,IP和域名之间是可以多对多的关系。所以很容易造成邮件伪造等垃圾邮件,逆向域名解析是邮件交换记录中的一种解析方法,通过IP地址来解析唯一的域名。很多邮件服务器会启用逆向域名解析记录,一旦验证该域名在公网权威DNS机构上没有做验证,将视为垃圾邮件处理被屏蔽。逆向域名解析使用的是DNS服务中的反向查找区域PTR记录。

3.准备TMG。

        TMG的安装和网络配置这里就不列举,TMG在企业中作为内外网的隔离边界,起到安全屏障的作用。TMG在安装完之后对将网络隔离为内部网络、外部网络、外网网络DMZ、本地主机以及×××客户端。默认情况下,分隔开的网络之间无法相互联系,所以当Exchange服务器需要对外提供服务时,需要在TMG服务器上开启内部网络Exchange相应的端口来接受其它网络的访问。本节实验主要是详解通过TMG开启内部Exchange服务器服务端口来接受外部网络客户端访问。

4.在TMG上发布POP3。

wKioL1NBW97gk2QYAAT2NUXN5Aw985.jpg

wKiom1NBXAmyeaDOAAIFgVZ-yXc338.jpg

wKioL1NBW-KieGJ5AAD0zrqa2zA514.jpg

wKiom1NBXAuSsSpkAAEt-0PcFqM893.jpg

wKioL1NBW-OhH_JjAAEDeghRdd8699.jpg

wKiom1NBXBDjxwHwAAGXP4z7r5o035.jpg

wKioL1NBW-rgEAwFAAHk2Cww4hg997.jpg

使用公网客户端来测试标准的POP3访问,不需要做特殊设置,当然,在Exchange服务器POP3登陆是否设置加密和服务器端SMTP权限组“匿名登录”跟outlook客户端会有冲突,需要做一边的调整。

wKiom1NBXD3wD4W0AAPFl7my7hw046.jpg

wKioL1NBXBjg2mL8AARX4WNg4jI391.jpg

5.在TMG上发布IMAP4。

wKiom1NBXI3gBhVpAATkE358ogg217.jpg

wKioL1NBXGjSOqy9AAH1bZ5dJ-w245.jpg

wKiom1NBXJKDXGyyAADvBVA0aOA820.jpg

wKioL1NBXGvxDDadAAE7TcVIdkY518.jpg

wKiom1NBXJmChAfbAADsfr9KvpE100.jpg

wKioL1NBXHXwJQLKAAGkwlyyDIA279.jpg

wKiom1NBXKDQFsFHAAHlVX_iunU694.jpg

wKioL1NBXHrgdCP-AAOxNtJxzQg598.jpg

wKioL1NBXHuRx7GtAAHS6uOi960077.jpg

6.在TMG上发布POP3S和SMTPS。

        这里要特别注意,POP3S使用标准的加密端口995,而SMTPS一般情况下标准的加密端口号跟不加密端口号一样是25,但是在Exchange中,微软定义SMTPS端口为587。而在Forefront TMG 2010中微软定义SMTPS的端口为465。因为发布端口和目标exchange端口不一样,所以需要另外设置TMG端口发布的手动转换,而不能使用默认匹配端口号转换。

wKiom1NBXNvSwwFeAAT02ivQbLQ138.jpg

wKioL1NBXLbQWA-hAAH6i-ZOlak702.jpg

wKiom1NBXODyjxT_AADx6U-8iQg357.jpg

wKioL1NBXLrzTwQ5AAExxzWJAT4434.jpg

wKiom1NBXOahtAvSAADmPEgLGgs473.jpg

wKioL1NBXL-iSN8pAAGubUOj-no547.jpg

wKiom1NBXPCjr2i5AAHfomBWYJg885.jpg

wKioL1NBXMrCRaRKAAGGgiNV3nc404.jpg

wKiom1NBXPaTTuPAAAI6Q20r-Ss709.jpg

原因是因为SMTP加密端口的不一致性导致,标准的SMTP加密端口跟未加密的SMTP都是25号端口,而微软在exchange中定义了加密的SMTP端口是587,在TMG中定义了加密的SMTP端口是465。

当在TMG中发布了SMTP的加密端口时,其实发布的是465端口,那如何去将TMG上的465映射到Exchange上的587呢,默认情况下,TMG是使用发布端口去匹配相同的映射端口号,也就是默认情况下TMG发布的SMTP加密端口其实是映射到Exchange服务器上的465。应该改为映射到587。

wKioL1NBXQbDxYZJAAD02vf51mM390.jpg

wKiom1NBXTCz2odzAAGplkg4tyU336.jpg

wKioL1NBXQ3yTXIGAAKu-2yegvY966.jpg

wKiom1NBXTbTwEaXAAHk_2LWc94980.jpg

这里又有另外一个问题,用户使用肯定是不会愿意去调SMTP端口为465,IT支持可能都记不住,最好还是能使用默认的25端口来加密,这就需要将TMG上发布SMTP加密端口的465映射到发布25端口上去。

wKioL1NBXSjg6yz1AAEClTIu_wQ973.jpg

wKiom1NBXVXg8T5uAAG_NdeHZZc604.jpg

wKioL1NBXS6Ts4uwAAGUbTrOUsY352.jpg

wKiom1NBXVnR3S_WAAHdvv1qEvQ246.jpg

7.在TMG上发布IMAP4加密端口和SMTP加密端口。

wKioL1NBXVajtUZRAATY2LmPRtM503.jpg

wKiom1NBXYXjSL3QAAH61itVqOw057.jpg

wKiom1NBXYnTtRqRAADtOXv-fXU231.jpg

wKioL1NBXWOCAdOaAAEssSMh6Mo298.jpg

wKiom1NBXY6TAltJAADYdtO0aAc245.jpg

wKioL1NBXWng-lt5AAGrwEwCBZ0927.jpg

wKiom1NBXZjwDiY8AAHjhl9GdWo062.jpg

wKioL1NBXXTwbuy9AAI0OICZMYM093.jpg

wKiom1NBXZ-DwK_bAAHa2aImr7w283.jpg

8.在TMG上发布HTTPS(非WEB服务器发布规则)。

        非WEB服务器协议发布规则原理是将TMG上的HTTPS端口443直接打开,然后映射到内部Exchange服务器上的443端口。

wKiom1NBXczTrAkDAAUpWAGxyDY576.jpg

wKiom1NBXdDCYucNAAG7j_1YEEk190.jpg

wKioL1NBXamxsXskAADggiZEt0k608.jpg

wKioL1NBXanB-VcsAAD7GQoGRyk134.jpg

wKiom1NBXdOS_Cv5AAGeEwokem4000.jpg

wKioL1NBXbHxaYTBAAHqh5n0c_c412.jpg

wKioL1NBXffQEyTWAANeoOzLd50245.jpg

9.在TMG上发布HTTPS(Exchange Web客户端发布规则)。

        这种发布HTTPS的方法最为安全,也是最为合适的。整个过程是TMG将外部收到的SSL加密的数据包进行拆包扫描,一旦满足TMG所要求的安全性时,TMG将SSL包转发至Exchange服务器上,这种形式的发布规则,有个非常重要的步骤,就是需要为TMG添加Exchange服务器的私钥,使得TMG能够使用私钥来解开SSL的加密包。

发布SSL桥接模式前要确保三个步骤:

1.务必确保TMG服务器信任CA。

2.必须要把Exchange证书私钥导入到TMG服务器中,私钥证书是导入到个人信任中。

3.在TMG中要能够解析出Exchange访问的域名。----------------------------------------------------------------------------------------------------

导出Exchange私钥证书,并且导入到TMG中去。

wKioL1NBXjmBBLzGAASgfPF1xis167.jpg

导出带有私钥的证书,这种后缀为PFX的证书是带有私钥的,必须要添加私钥密码。

wKiom1NBXt7SLJkrAANDuFTMpB4532.jpg

wKiom1NBXuXBUHzrAAOFdjlku9A343.jpg

拷贝证书至TMG服务器,将私钥证书导入到个人信任中去。

wKioL1NBXtGTYyITAAJuOuqFFQI401.jpg

wKiom1NBXwDRUfpnAAFs5GSkfKw346.jpg

wKioL1NBXuGTecz0AAH4w6Jkdew234.jpg

wKioL1NBXuKTp7miAAFUycCcRy0444.jpg

wKiom1NBXwuDvDOSAAFBZGldioY477.jpg

wKiom1NBXxCzRuSLAAFROerz-WQ138.jpg

测试是否能够解析出exchange的域名。

显示很正常,因为我的TMG是加域的,所以证书信任和DNS解析都是很正常的,如果TMG是属于工作组,必须要手动申请CA信任和添加DNS解析,添加DNS解析的最好方法就是手动添加hosts记录。

wKioL1NBXwfBmpWIAANATgDsUN8574.jpg

wKioL1NBXwrjjp24AAVNkkCSSL8689.jpg

wKiom1NBXzbwg-zZAAH2dwVPFAY298.jpg

wKioL1NBXw_iMWWOAAFVfNqy3ZY518.jpg

wKiom1NBXzmj38oxAAGpyi9ghWE134.jpg

wKioL1NBXxKiUWZqAAHjqSooHXo862.jpg

这里最好是填写Exchange内部的FQDN,因为如果是IP地址,一旦DNS解析有问题,必定是报错的,因为证书关联的是域名。如果DNS有问题,IP地址没办法去解析为域名,将无法去调用相应分配的证书。

wKiom1NBX07SmGeFAAIVYwyXu5c038.jpg

wKioL1NBXyrxcoDIAAE9W2RbK3A568.jpg

规则需要添加web侦听器。该侦听器将使用证书去解压收到的加密邮件数据包。

wKioL1NBX0GiRiPUAAHMPaJOcMQ166.jpg

这里选择从TMG到Exchange服务器之间的连接是否选择SSL加密,最好是选择SSL加密。

wKioL1NBX-_RaH3zAAHJL_jmYEk112.jpg

wKioL1NBX46xJuKxAAGmv_m7_Wk960.jpg

wKioL1NBX5CSfi2tAAFNOUKK_l4619.jpg

wKiom1NBX7zhpWkSAAGIjy95AOQ279.jpg

wKioL1NBX5TwHl4fAAFayf9qc38107.jpg

wKiom1NBX76TdhyUAAGTwvmByhg771.jpg

wKioL1NBX5qDHjprAAH3Hed7S8k916.jpg

wKiom1NBX8nTZCidAAF4IR4V9-4733.jpg

wKioL1NBX6ORQi5CAAG_viQHGxQ870.jpg

wKiom1NBX86ju-QmAAEgFL772YA713.jpg

wKiom1NBX9KB7GrHAAINvYJ4Vwk104.jpg

wKioL1NBX6-DLk3EAAJ_OXfI118778.jpg

10.Anywhere功能。

        对于Exchange来说,想要体现出完善的体验效果,只能是使用outlook来访问邮箱,outlook是使用MAPI协议,默认就是一种加密协议,使用MAPI来连接exchange服务器使用的是动态端口,而在外网没法使用动态端口来直接使用MAPI连接到exchange服务器,第一种解决方法可以使用×××+outlook来实现,如果没有×××,可以通过outlook的anywhere功能来实现。anywhere是将mapi动态端口始终封装在HTTPS的443端口中。

wKioL1NBYEvQAL1tAAR_ieh9IJo327.jpg

wKiom1NBYHrTqHmqAANRapnKg7I312.jpg

wKioL1NBYFXBBJ3jAAN8575yXSw918.jpg

wKioL1NBYFaQi_ouAAHCX_kxzKE643.jpg

wKiom1NBYH-ycJRWAAFu5bDY6zc548.jpg

wKiom1NBYIDAjtZ8AAILYklYwrc055.jpg

wKiom1NBYLeBRgLwAADOIEJPtYs557.jpg

wKioL1NBYJSBsa2-AAH6NjVSG6A768.jpg

不能够连接到exchange,原因是anywhere在连接时调用的是Exchange服务器上面的IIS中的RPC目录。虽然在TMG中已经发布了HTTPS 443端口,但是TMG默认却不会把RPC目录进行发布。

wKiom1NBYPKwok0nAAHgohQH03c471.jpg

解决这个问题是需要在TMG上对anywhere使用的RPC目录进行发布的。

wKioL1NBYPDR20iQAAVs9frobw0592.jpg

wKioL1NBYPPwxC3gAAIJqf7tPpw958.jpg

wKiom1NBYR2jfXSDAAFQw20KvSQ989.jpg

wKioL1NBYPaw66uRAAGq2L_i47o310.jpg

wKiom1NBYSHR69ybAAH5Bj09lvM867.jpg

wKioL1NBYPnyD7QXAAH__dXC9mU681.jpg

wKiom1NBYSKDuCiuAAFD0qF6rzc642.jpg

wKioL1NBYPqAn2PfAAFxsd3RcH8656.jpg

wKiom1NBYSTxRnaVAAGzT-1P1ho533.jpg

wKiom1NBYSWh0SCpAAEqAJMe1js798.jpg

wKioL1NBYP7gCNpQAAIPPigeglY600.jpg

wKioL1NBYP_RsgBYAAG4gCj_9AM583.jpg

这样就成功了。