译自 Thomas W Shinder MD, MVP,Enabling Full Outlook Client access Anywhere using the ISA Firewall's Secure Exchange RPC Filter 内容概述:通过ISA防火墙强大的RPC过滤器,你可以安全的发布Exchange RPC服务,让外部网络的Outlook MAPI客户端可以访问Exchange服务器的全部服务而不用担心安全性问题。 你可以允许远程Outlook 2000/2002/2003客户通过Internet连接到你内部网络的Exchange服务器上来使用Outlook MAPI客户的全部功能。和OWA(Outlook Web Access)不一样,完全的Outlook MAPI客户允许远程用户使用Exchange服务器提供的邮件和协作软件特性;并且和Outlook RPC over HTTP不一样,你不需要使用Exchange 2003和Outlook 2003。 这些都可以通过ISA防火墙的安全Exchange RPC发布特性来实现。你可以通过安全Exchange RPC发布来授权远程用户访问Exchange的全部服务。 发布的Exchange RPC服务的安全性是通过Exchange RPC过滤器来实现,更为安全可靠。
对于RPC连接的一般印象都认为它不够安全,去年的冲击波等病毒也是通过RPC的一个问题来进行入侵的。但是通过ISA防火墙的Exchange RPC过滤器,你可以不用担心RPC的安全性问题。
Exchange RPC过滤器处理远程Outlook MAPI客户和内部Exchange服务器之间的连接,并且为指定的Outlook客户创建动态的包过滤器。同时,Exchange RPC过滤器只允许有效的Exchange服务器的相关RPC连接,其他连接都将被丢弃。这个是只在ISA防火墙里面存在的特性。
Outlook MAPI客户和Exchange服务器之间的连接是加密的,未加密的连接将被ISA防火墙拒绝
Outlook客户客户配置为在Exchange服务器和它之间加密传输的数据,但是,这个是客户端的设置,并且依赖于客户的配置。ISA防火墙的安全Exchange RPC过滤器允许你强制远程Outlook MAPI客户使用加密的通信。非加密通信的连接请求将会被ISA防火墙的Exchange RPC丢弃。 发布Exchange RPC服务器是非常简单的
发布Exchange RPC是非常简单的。一个服务器发布规则允许你的远程Outlook MAPI客户访问内部的Exchange服务器。你不需要创建目的集或指定协议定义。内建的Exchange RPC协议可以和RPC过滤器很好的配合,提供受保护的、安全的发布归则。 访问只是限定于邮件服务,不是访问全部的网络服务
为了让用户可以访问完全的Exchange服务,传统的防火墙管理员允许VPN连接访问整个公司网络。这样带来了安全上的风险,事实上你只是想让用户访问Exchange的服务而已。ISA防火墙的安全RPC发布特性允许你只是让Outlook MAPI客户访问完全的Exchange服务而不给予其他额外的权限。 用户可以继续使用他们熟悉的Outlook 2000/2002/2003客户端
用户常抱怨他们在公司网络和远程站点间移动时需要使用不同的邮件客户端,而用户喜欢使用固定的客户端程序,如Outlook 2000/2002/2003。Exchange RPC发布可以让他们无论在家还是路上都使用熟悉的Outlook 2000/2002/2003。
安全Exchange RPC发布是如何工作的? 典型的情况下,远程Outlook MAPI客户通过本地的ISP或者宽带服务提供商向Internet上的Exchange服务器建立连接。当打开Outlook时,会执行以下动作: Outlook客户连接ISA防火墙的外部ip上的TCP 135端口(RPC终点映射器),在连接请求中包含Exchange服务器指定的UUIDs(Universal Unique Identifiers)。
ISA防火墙上的Exchange RPC过滤器接受此连接请求,然后转发到内部网络中的Exchange服务器。但是,在转发连接请求之前,安全Exchange RPC过滤器执行RPC协议的协议状态识别和应用层过滤。只有有效的RPC通信才能转发到内部的Exchange服务器。
内部网络中的Exchange服务器通过回复一个Outlook客户可以与之进行通信的端口号来进行响应。ISA防火墙上的安全Exchange RPC 过滤器接受此回复,然后在自己的外部接口上开放一个动态包过滤器,让Outlook MAPI客户可以和Exchange服务器进行通信。这个动态的包过滤器在ISA防火墙的外部接口上指定一个端口,只有指定的Outlook客户才能和它进行通信。其他Internet主机是不能使用这个端口来和内部的Exchange服务器进行通信。另外,当Outlook客户登录后,它将从Exchange服务器上注册一个用于接收邮件 通知的端口,ISA防火墙的RPC过滤器同样会为此端口开放一个动态包过滤器,然后允许从内部Exchange服务器到Internet上的Outlook客户的邮件通知。
ISA防火墙转发Exchange服务器的回复给Outlook客户。Outlook客户接收到它可以用于和Exchange服务器进行通信的位于ISA防火墙的外部接口上的端口号;
Outlook MAPI客户通过ISA防火墙映射的端口和内部网络中的Exchange服务器建立连接。
下图显示了上述步骤的过程:

注意:
对于更为深入的关于Exchange RPC过滤器是如何工作的技术资料,请参见http://www.microsoft.com/technet/PRodtechnol/isa/2000/maintain/rpcwisa.mspx
准备Exchange RPC发布的网络基础服务 在你成功发布Exchange RPC之前,你需要预先部署一些网络基础服务,包括: 允许Outlook MAPI客户正确解析Exchange服务器名字的DNS服务;
允许从内部网络中的Exchange服务器发出的出站DNS和SMTP协议访问;
Exchange服务器上配置了代理客户身份验证;
NAT路由器或者防火墙配置支持出站的安全Exchange RPC连接;
建立支持的DNS基础服务 为了让Outlook MAPI客户正确的解析Exchange服务器的名字,必须建立DNS服务。为了让客户在不同的地点使用相同的名字来访问Exchange服务,你必须使用分离DNS。分离DNS需要你在不同的地点保持独立的DNS服务,例如,在外部网络和内部网络都部署DNS服务,然后内部的DNS解析Exchange服务器名字到内部网络中的Exchange服务器的IP,而外部网络中的DNS解析Exchange服务器的名字到发布Exchange服务器的IP地址上。 分离DNS服务需要包含所有的Exchange服务器。例如,你有两个Exchange服务器,exchange.domain.com和exchange2.domain.com,你需要在分离DNS服务上为这两个名字建立对应的名字解析项和服务器发布规则。 使用HOSTS文件来做名字解析不具有扩展性,并且对用户的要求也很高。你需要为Exchange服务器计算机的Netbios名字来建立HOSTS文件,注意,你不需要为Exchange服务器建立FQDN的名字解析项,只需要Netbios名字。 注意:
FQDN的主机名字部分(最左边的部分)必须和Exchange RPC服务器发布规则使用的Exchange服务器名字一致。Outlook MAPI 客户必须配置为使用Exchange服务器的计算机名字,并且可以正确的解析此名字。而Outlook客户计算机必须使用一个域名或者网络适配器指定域名来正确的限定Exchange服务器的Netbios名字。
通过上述内容,你可能会觉得名字解析有点麻烦。Outlook 2003是更为Internet化的,使用FQDNs,但是旧版本的Outlook要求客户计算机可以正确的限定名字。关于客户端更为详细的配置信息,请参见ISA Server 2000 Exchange部署工具包http://isaserver.org/news/exchangekit.html。
建立DNS和SMTP协议规则 Exchange服务器需要转发从Outlook MAPI客户收到的邮件到Internet上的SMTP服务器,这需要建立允许它访问的访问规则,需要允许它访问以下协议: DNS (TCP and UDP 53)
SMTP (TCP 25)
DNS访问规则允许Exchange SMTP服务解析MX域名。不过你应该根据DNS服务器和SMTP服务器的位置来配置访问规则。 配置认证方式 当Outlook客户登录到Exchange服务器,Exchange服务器指示Outlook MAPI客户通过DC来进行身份验证;但是,对于远程客户来说,活动目录是不可以访问的。你可以通过配置Exchange服务器为客户代理进行身份验证来避免这个问题。 修改Exchange服务器上的这个注册表键值来让Exchange服务器为Outlook MAPI客户代理身份验证: HKLM\System\CurrentControlSet\Services\MSExchangeSA\Parameters Add the following:
Value: NoRFRService
Type: REG_DWord
Data: 1
添加键值后重启Exchange服务器。
Outlook MAPI客户位于NAT路由器/防火墙/ISA Servers后 如果Outlook客户位于NAT路由器或者类似设备后,它可能不能接收到邮件通知或者根本不能访问Exchange服务器。自从冲击波病毒后,许多ISP封锁了TCP 135端口,这样也阻止了Outlook MAPI客户端的连接。 新邮件通知并不和存在的RPC会话有任何关系,对于客户端的防火墙来说,新邮件通知是未知的连接,所以会将其拒绝。如果Outlook MAPI客户位于应用层过滤防火墙(如ISA防火墙)之后,Outlook MAPI客户就可以接收到新邮件通知。 这并不是说位于NAT路由器或者类似设备后的Outlook客户不能接收到新邮件通知。当Outlook客户向Exchange服务器发送邮件时,Exchange服务器会通过现存的会话通道向客户发送新邮件通知,此时客户就可以接收到新邮件通知了。 如果你在Outlook MAPI客户前使用常规的包过滤防火墙,防火墙管理员需要允许进入的TCP 135主要连接,然后设置辅助连接。这点就显示出了ISA防火墙的RPC过滤器的优秀之处。 如果你使用ISA防火墙,你可以建立一个访问规则来允许Outlook MAPI客户访问;执行以下步骤来建立访问规则: 打开ISA Server 2004管理控制台,展开服务器,点击防火墙策略节点,然后点击任务面板中的新建访问规则链接;
在欢迎使用新建访问规则向导页,输入规则的名字,在此我们命名为Outbound Exchange RPC,点击下一步;
在规则动作页,选择允许,点击下一步;
在协议页,选择选择的协议,然后点击添加按钮;
在添加协议对话框,点击所有协议目录,双击RPC (all interfaces) 协议,点击关闭;

在协议页,点击下一步;
在访问规则源页,点击添加按钮;
在添加网络实体对话框,点击网络目录,然后双击内部网络,点击关闭;点击下一步;

在访问规则目的页,点击添加按钮;
在添加网络实体对话框,点击网络目录,然后双击外部网络,点击关闭;点击下一步;
在用户集页,接受默认的所有用户,点击下一步;
在正在完成新建访问规则向导页,点击完成;
新建的规则在防火墙策略面板中显示了出来。
建立Exchange RPC服务器发布规则 Exchange RPC Server发布规则使用RPC过滤器提供的协议定义,所以你必须首先确定RPC过滤器是否启用。你可以在ISA管理控制台的配置的插件节点下进行检查,看RPC过滤器是否启用。 记得为每一个提供邮件服务的Exchange服务器建立一个安全Exchange RPC服务器发布规则。例如,如果你有四个Exchange服务器在提供邮件服务,你需要发布这四个服务器。注意如果你有前端Exchange服务器,你不需要发布它,因为它不能代理本质的RPC协议。与之对比的是,前端Exchange服务器可以代理基于HTTP隧道的RPC连接(RPC over HTTP)。 执行以下步骤来建立一个安全Outlook MAPI客户访问服务器发布规则: 打开ISA Server 2004管理控制台,展开服务器,点击防火墙策略节点,然后点击任务面板中的新建服务器发布规则链接;
在欢迎使用新建 服务器发布规则向导页,输入规则的名字,在此我们命名为Publish Secure Exchange RPC,点击下一步;
在选择服务器页,输入Exchange服务器的IP地址,点击下一步;
在选择协议页,选择Exchange RPC Server 项,注意如果你想使用进入的SMTP过滤,你需要使用SMTP邮件筛选器,点击下一步;

在IP地址页,选择外部。因为DMZ网络也被认为是外部网络,在此我们需要进行选择,点击地址按钮。

在外部网络侦听器IP选择对话框,选择Specified IP addresses on the ISA Server computer in the select network ,在可用的IP地址列表,点击ISA防火墙计算机的外部接口的IP地址,在此例中是192.168.1.70,点击添加按钮,然后点击确定;

在IP地址页,点击下一步;

在正在完成新建服务器发布规则向导页,点击完成;新建的服务器发布规则将会在防火墙策略列表中显示出来。
配置Outlook 2003客户使用安全Exchange RPC进行连接 1、配置名字解析 你可以使用微软Outlook MAPI客户端的任何版本来测试刚才建立的服务器发布规则。在此例中,我们使用Outlook 2003客户进行测试,Outlook 2000和Outlook 2002 MAPI客户端的配置基本一致。 在以下的测试中,我们使用HOSTS文件来映射Exchange的IP地址到ISA防火墙的外部IP地址上。 注意:
在商用网络中,你应该部署分离的DNS服务。
执行以下步骤来在Outlook 2003 MAPI客户计算机EXTCLIENT上建立HOSTS文件: 使用记事本打开%systemroot%\system32\drivers\etc\HOSTS 文件,
在文件结尾添加下面这项: 192.168.1.70 exchange2003be.msfirewall.org 这项将Exchange计算机的名字映射到ISA防火墙的外部IP地址上。记得在此行的最后敲个回车,这样才能让Windows正确识别你输入的这项。

关闭记事本,保存修改。
你可以通过Ping此名字来进行验证。
2、配置Outlook 2003客户 接下来是配置Outlook客户端连接Exchange服务器的配置文件,执行以下步骤来配置Outlook客户端: 点击开始,然后右击E-mail Microsoft Office Outlook,再点击属性;
在邮件对话框,点击添加按钮;
在新建配置文件对话框,在配置文件名对话框,输入Administrator,然后点击确定;
在E-mail账户页,选择添加一个新的e-mail账户,然后点击下一步;
在Exchange服务器设置页,在Microsoft Exchange Server文本栏输入Exchanege服务器的Netbios名字,勾选Use Cached Exchange Mode,在用户名栏输入Administrator,点击Check Name;
注意现在Microsoft Exchange Server 名字修改为Exchange服务器的FQDN,点击More Settings按钮;

在Microsoft Exchange Server对话框,点击安全标签;在安全标签,勾选Encrypt data between Microsoft Office Outlook and Microsoft Exchange Server ,点击应用再点击确定;

在Exchange Server Settings页点击下一步;
在Congratulations!页点击完成,最后在Mail点击确定。
现在我们可以通过安全Exchange RPC服务器发布规则和Exchange服务器建立连接了,执行以下步骤: 点击开始-E-mail Microsoft Office Outlook;
在选择配置文件对话框,确认Administrator显示了出来,然后点击确定;
在连接到对话框,在用户名栏输入msfirewall\Administrator,然后在密码栏输入密码,点击确定;
此时,Administrator的邮箱在Outlook中打开了。
,