*ADLogon/DirRep:
主要连接:TCP 出站 50000 端口(需要在后端Exchange服务器上的RPC密钥集);
**Direct Host:
主要连接:TCP 出站 445 端口(需要在此文章中进行讨论);
***RPC Endpoint Mapper
主要连接:TCP 出站 135 端口(需要在此文章中进行讨论);
RPC服务通过在注册表中使用类似于GUID(全局唯一标识符)的UUID(通用唯一标识符)来进行注册,RPC UUID是通用的,并且对于每个服务是唯一的。
当一个RPC服务启动,它将获取一个高位端口,并且使用RPC服务的UUID来注册此端口。一些服务随机选取一个端口,而有些服务使用固定的端口(在此端口空闲的情况下)。当一个和RPC服务通信时,它不知道这个RPC服务使用的高位端口。RPC客户程序和服务器的RPC映射服务TCP 135端口进行连接,然后通过UUID来调用RPC服务。RPC端口映射器返回对应的高位端口号给客户,然后关闭端点映射程序。最后,客户使用从服务器端收到的这个高位端口来和服务器建立新的连接。因为客户不可能知道RPC服务使用什么端口,所以在防火墙上需要允许所有的高位端口通过。
在此,我们限制RPC使用单个端口,这样我们可以在防火墙上配置允许这个端口。或者,我们需要允许DMZ网络访问内部网络的所有高位端口。
我们可以通过在每个域控制器上修改注册表来,注册表键值是:
We can do this by making a Registry change on each domain controller. The Registry Key is:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\
新建一个DWORD值,命名为TCP/IP Port ,然后设置为你想让其使用的端口号。记住,你需要在你所有的域控制器修改。
注意:
其实我们不需要这样做,因为ISA防火墙的RPC过滤器可以自动控制端口的访问。RPC过滤器侦听RPC协商,然后动态开放需要的高位端口。但是,我宁愿选择手动设置端口,这样可以更容易分析日志还有跟踪DMZ网段和内部网络间的RPC通信。这就是为什么我说ISA防火墙没有“开放端口”的原因,因为ISA实际上理解需要的协议,而不仅仅停留在端口的开放上。
例如,在每个域控上执行以下步骤来修改RPC复制端口为 50000:
- 点击开始,然后运行 Regedit ;
- 定位到以下键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\
作为ISA Server 2004的一个重大改进,它允许你控制任何两个网络间的路由关系。在此例中,我们在DMZ和内部网络间使用路由关系。注意如果你使用模板来建立DMZ网段,那么在内部网络和DMZ间的默认关系是NAT。