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

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

实验拓扑:

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP

        根据拓扑图,可以看出实验使用微软软件防火墙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。

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_02

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_03

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_04

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_05

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_06

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_07

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_08

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_09

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_10

5.在TMG上发布IMAP4。

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_11

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_12

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_13

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_14

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_15

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_16

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_17

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_18

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_19

6.在TMG上发布POP3S和SMTPS。

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_20

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_21

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_22

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_23

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_24

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_25

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_26

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_27

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_28

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

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_29

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_30

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_31

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_32

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_33

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_34

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_35

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_36

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_37

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_38

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_39

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_40

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_41

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_42

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_43

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_44

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_45

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

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_46

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_47

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_48

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_49

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_50

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_51

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_52

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中去。

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_53

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_54

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_55

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_56

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_57

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_58

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_59

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_60

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_61

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

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_62

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_63

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_64

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_65

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_66

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_67

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_68

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_69

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_70

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_71

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_72

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_73

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_74

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_75

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_76

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_77

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_78

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_79

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_80

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_81

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_82

10.Anywhere功能。

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_83

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_84

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_85

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_86

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_87

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_88

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange 2010_89

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_90

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_91

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

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_92

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_93

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_94

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_95

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_96

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_97

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_98

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_pop3_99

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_MAPI_100

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Outlook_101

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_Exchange_102

Exchange Server 2010 LAB Part4.公网发布和外网客户端访问_IMAP_103

这样就成功了。