使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

概要

本文描述了如何配置 RPC 以使用特定的动态端口范围,以及如何利用 Internet 协议安全 (IPsec) 策略帮助保护该范围内端口的安全。默认情况下,RPC 在为必须侦听 TCP 终结点的 RPC 应用程序分配端口时,使用的是临时端口范围 (1024-5000) 内的端口。该行为会限制对这些端口的访问,从而给网络管理员造成困难。本文讨论了减少 RPC 应用程序可用端口数量的方法,以及如何利用基于注册表的 IPsec 策略来限制对这些端口的访问。

由于本文所介绍的步骤涉及到需要重新启动计算机的整个计算机范围内的更改,因此,应首先在非生产环境中执行所有这些步骤,以便确定由这些更改所导致的任何应用程序兼容性问题。

更多信息

要重定位、减少和限制对 RPC 端口的访问,必须完成多项配置任务。

首先,应将 RPC 动态端口范围限制在更小、更易管理、更容易利用防火墙或 IPsec 策略阻止的端口范围内。默认情况下,RPC 在 1024 到 5000 的范围内为没有指定侦听端口的终结点动态分配端口。

注意:本文使用的是 5001 到 5021 的端口范围,从而避免用完临时端口,并将 RPC 终结点的可用端口数量从 3,976 个减少到 20 个。

接下来,必须创建一个 IPsec 策略以将访问限制在此端口范围内,从而拒绝对网络上所有主机的访问。

最后,可对 IPsec 策略进行更新,以便向特定 IP 地址或网络子网授予对已阻止 RPC 端口的访问权限,并排除所有其他地址和子网。

要开始重新配置 RPC 动态端口范围的任务,请下载 RPC 配置工具 (RPCCfg.exe),然后将其复制到工作站或即将重新配置的服务器上。若要执行此操作,请访问下列 Microsoft 网站:

http://www.microsoft.com/downloads/details.aspx?FamilyID=0f9cde2f-8632-4da8-ae70-645e1ddaf369&DisplayLang=en若要执行创建 IPsec 策略的后续任务,请下载 Internet Protocol Security Policies Tool (Ipsecpol.exe),然后将其复制到工作站或复制到将要配置的服务器上。若要执行此操作,请访问下列 Microsoft 网站:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7D40460C-A069-412E-A015-A2AB904B7361注意:若要创建适用于 Microsoft Windows XP 或更新版本的 Windows 操作系统的 IPsec 策略,请使用 lpsecmd.exe。lpsecmd.exe 是 Windows XP 支持工具的一部分。IPseccmd.exe 的语法和用法与 Ipsecpol.exe 的相同。有关 Windows XP 支持工具的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

838079Windows XP Service Pack 2 支持工具

使用 RPCCfg.exe 来重定位并减小 RPC 动态端口范围

若要使用 RPCCfg.exe 来重定位并减小 RPC 动态端口范围,请执行下列步骤:

  1. 将 RPCCfg.exe 复制到要配置的服务器上

  2. 在命令提示符处,键入 rpccfg.exe -pe 5001-5021 -d 0。
    注意:建议将此端口范围用于 RPC 终结点,因为不可能将此范围内的端口分配给其他应用程序使用。默认情况下,RPC 使用 1024 到 5000 端口范围为终结点分配端口。但是,此范围内的端口也会被动态分配给 Windows 操作系统上的所有 Windows 套接字应用程序使用,并且在一些极度繁忙的服务器(如向远程系统发出许多传出调用的终端服务器和中间层服务器)上,可能会用完这些端口。

    例如,当 Internet Explorer 在端口 80 上联系某台 Web 服务器时,它将侦听 1024-5000 范围内的某个端口,看是否有来自该服务器的响应。向其他远程服务器发出传出调用的中间层 COM 服务器也会使用此范围内的一个端口,以实现对该调用的传入答复。将 RPC 用于其终结点的端口范围移到 5001 端口范围,可减少这些端口被其他应用程序使用的机会。
    有关 Windows 操作系统中临时端口用法的更多信息,请访问以下 Microsoft 网站。

使用 IPsec 或防火墙策略来阻止对受影响主机上有漏洞端口的访问

在以下部分的命令中,百分号 (%) 之间显示的任何文本都用来表示命令中的文本,该命令必须由 IPsec 策略的创建者输入。例如,无论“%IPSECTOOL%”文本出现在什么位置,策略创建者都应按如下所示替换该文本:

  • 对于 Windows 2000,用“ipsecpol.exe”替换“%IPSECTOOL%”。

  • 对于 Windows XP 或更高版本的 Windows,用“ipseccmd.exe”替换“%IPSECTOOL%”。

有关如何使用 IPsec 阻止端口的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

813878如何使用 IPSec 阻止特定网络协议和端口

阻止所有 IP 地址对 RPC 终结点映射程序的访问

要阻止所有 IP 地址对 RPC 终结点映射程序的访问,请使用以下语法。

注意:在 Windows XP 和更高版本的操作系统上,使用 Ipseccmd.exe。在 Windows 2000 上,使用 Ipsecpol.exe (Windows 2000)。

%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK

注意:不要在该命令中键入“%IPSECTOOL%”。“%IPSECTOOL%”用来表示必须自定义的命令部分。例如,在 Windows 2000 上,从包含 Ipsecpol.exe 的目录中键入以下命令,以阻止所有对 TCP 135 的传入访问:

ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK

在 Windows XP 和更高版本的操作系统上,从包含 Ipseccmd.exe 的目录中键入以下命令,以阻止所有对 TCP 135 的传入访问:

ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK

阻止所有 IP 地址对 RPC 动态端口范围的访问

要阻止所有 IP 地址对 RPC 动态端口范围的访问,请使用以下语法。

注意:在 Windows XP 和更高版本的操作系统上,使用 Ipseccmd.exe。在 Windows 2000 上,使用 Ipsecpol.exe (Windows 2000)。

%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP %PORT% Rule" -f *=0:%PORT%:TCP -n BLOCK

注意:不要在该命令中键入“%IPSECTOOL%”或“%PORT%”。“%IPSECTOOL%”和“%PORT%”用来表示必须自定义的命令部分。例如,在 Windows 2000 主机上键入以下命令,以阻止对 TCP 5001 的所有传入访问:

ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK

要阻止对 TCP 5001 的所有传入访问,请在 Windows XP 主机和更高版本的 Windows 操作系统的主机上键入以下命令:

ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK

对每一个必须通过更改此命令中所列端口号来阻止的 RPC 端口重复此命令。必须阻止的端口在 5001-5021 范围内。

注意:不要忘记更改规则名称(-r 开关)和筛选器(-f 开关)中的端口号。

可选:授予特定子网对 RPC 终结点映射程序的访问权限(如果需要访问)

如果必须授予特定子网对受限 RPC 端口的访问权限,则必须首先授予这些子网对以前被阻止的 RPC 终结点映射程序的访问权限。要授予特定子网对 RPC 终结点映射程序的访问权限,请使用以下命令:

%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP 135 from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:135:TCP -n PASS

注意:在该命令中,下列语句适用:

  • “%IPSECTOOL%”代表要使用的命令。该命令是“ipsecpol.exe”或“ipseccmd.exe”。具体使用哪个命令取决于要配置的操作系统。

  • “%SUBNET%”代表要授予其访问权的远程 IP 子网,例如,10.1.1.0。

  • “%MASK%”代表要使用的子网掩码,例如,255.255.255.0。

    例如,以下命令可使 10.1.1.0/255.255.255.0 子网内的所有主机连接到端口 TCP 135。所有其他主机的连接将被以前为该端口所创建的默认阻止规则拒绝。

    %IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP Port 135 from 10.1.1.0 Rule" -f 10.1.1.0/255.255.255.0=0:135:TCP -n PASS

可选:授予特定子网对新的 RPC 动态端口范围的访问权限(如果需要访问)

每个以前获准访问 RPC 终结点映射程序的子网也都应获得对新的 RPC 动态端口范围 (5001-5021) 内所有端口的访问权限。

如果只允许子网访问 RPC 终结点映射程序,而不能访问动态端口范围,则该应用程序可能停止响应,或者出现其他问题。

以下命令授予特定子网对新的 RPC 动态端口范围内某个端口的访问权限:

%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP %PORT% from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:%PORT%:TCP -n PASS

注意:在该命令中,下列语句适用:

  • “%IPSECTOOL%”代表要使用的命令。该命令是“ipsecpol.exe”或“ipseccmd.exe”。具体使用哪个命令取决于要配置的操作系统。

  • “%PORT%”代表要赋予其访问权的动态端口范围内的端口。

  • “%SUBNET%”代表要授予其访问权的远程 IP 子网,例如,10.1.1.0。

  • "“%MASK%”代表要使用的子网掩码,例如,255.255.255.0。

    例如,以下命令可使 10.1.1.0/255.255.255.0 子网内的所有主机连接到端口 TCP 5001。所有其他主机的连接将被以前为该端口所创建的默认阻止规则拒绝。

    %IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP Port 5001 from 10.1.1.0 Rule" -f 10.1.1.0/255.255.255.0=0:5001:TCP -n PASS

注意:应对新 RPC 动态端口范围内的每个子网和端口重复此命令。

分配 IPsec 策略

注意:此部分中的命令会立即生效。

为配置的 RPC 端口创建所有阻止规则和可选允许规则后,使用以下命令指定策略:

%IPSECTOOL% -w REG -p "Block RPC Ports" –x

注意:要立即取消指定该策略,请使用以下命令:

%IPSECTOOL% -w REG -p "Block RPC Ports" –y

注意:要从注册表中删除该策略,请使用以下命令:

%IPSECTOOL% -w REG -p "Block RPC Ports" -o

您必须重新启动主机,才能更改生效。

注意

  • RPC 配置更改要求重新启动。

  • IPsec 策略更改会立即生效且无需重新启动。

工作站或服务器重新启动后,对于任何使用 ncacn_ip_tcp 协议序列且未指定要绑定的特定 TCP 端口的 RPC 接口,在 RPC 服务器启动时,都会拥有 RPC 运行时从此范围分配的一个端口。

注意:该服务器可能需要 20 个以上的 TCP 端口。可以使用 rpcdump.exe 命令来计算绑定到 TCP 端口的 RPC 终结点数,必要时还可增大该数量。有关如何获得 RPC 转储工具的详细信息,请访问下面的 Microsoft 网站:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid = 9d467a69-57ff-4ae7-96ee-b18c4790cffd

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×