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

 

来源:http://support.microsoft.com/

概要

Internet 协议安全 (IPSec) 筛选规则可用于帮助保护基于 Windows 2000 的 计算机免遭 病毒及蠕虫等威胁带来的、基于网络的 攻击。本文介绍如何为入站和出站网络通信筛选特定的 协议和端口组合。本文还包括用于确定当前是否为基于 Windows 2000 的 计算机指定了 IPSec 策略的步骤、用于创建和指定新的 IPSec 策略的步骤以及用于取消指定和删除 IPSec 策略的步骤。

更多信息

IPSec 策略可以在本地应用,也可以作为域的组策略的一部分应用于该域的成员。本地 IPSec 策略可以是 静态的(重新启动后一直有效),也可以是 动态的(易失效)。静态 IPSec 策略被写入本地 注册表并在操作系统重新启动后一直有效。 动态 IPSec 策略没有被永久性地写入 注册表,并且在操作系统或 IPSec Policy Agent 服务重新启动后被删除。

重要说明:本文包含有关使用 Ipsecpol.exe 编辑 注册表的信息。编辑 注册表之前,一定要知道在发生问题时如何还原 注册表。有关如何备份、还原和编辑 注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
注意:IPSec 筛选规则会导致网络程序丢失数据和停止响应网络请求,包括无法对用户进行身份验证。只有当您清楚地了解阻止特定端口对您的环境具有的影响之后,才应将 IPSec 筛选规则作为一种迫不得已的防护措施加以采用。如果您按照本文列出的步骤创建的 IPSec 策略对您的网络程序有不利影响,请参阅本文稍后的“取消指定和删除 IPSec 策略”一节,了解有关如何立即禁用和删除该策略的说明。

确定是否已指定 IPSec 策略

在为基于 Windows 2000 的 计算机创建或指定任何新的 IPSec 策略之前,请确定是否有通过本地 注册表或组策略对象 (GPO) 应用的任何 IPSec 策略。为此,您需要:
1.从 Windows 2000 CD 上的 Support/Tools 文件夹中运行 Setup.exe,安装 Netdiag.exe。
2.打开命令提示窗口,然后将工作文件夹设置为 C:/Program Files/Support Tools。
3.运行以下命令以验证“尚未”为该计算机指定现有 IPSec 策略:
netdiag /test:ipsec
如果没有指定策略,您将收到以下消息:
IP Security test .. . . . . . . . : Passed IPSec policy service is active, but no policy is assigned.

创建一个用于阻止通信的静态策略

对于没有启用本地定义的 IPSec 策略的系统,请按照下列步骤创建一个新的本地静态策略,以阻止发送到基于 Windows 2000 的、没有指定现有 IPSec 策略的 计算机上的特定 协议和端口的通信:
1.验证 IPSec Policy Agent 服务是否已在“服务 MMC”管理单元中启用并启动。
2.访问下面的 Microsoft Web 站点以下载并安装 Ipsecpol.exe: http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpol-o.asp
3.打开命令提示窗口,然后将工作文件夹设置为您在其中安装了 Ipsecpol.exe 的文件夹。

注意:Ipsecpol.exe 的默认文件夹为 C:/Program Files/Resource Kit。
4.要创建一个新的本地 IPSec 策略和筛选规则,并将其应用于从任何 IP 地址发送到您要配置的、基于 Windows 2000 的计算机的 IP 地址的网络通信,请使用以下语法(其中协议端口号 是变量):
ipsecpol -w REG -p "Block 协议端口号 Filter" -r "Block Inbound 协议端口号 Rule" -f *=0:端口号:协议 -n BLOCK –x
例如,要阻止从任何 IP 地址和任何源端口发往基于 Windows 2000 的计算机上的目标端口 UDP 1434 的网络通信,请键入以下命令。此策略可以有效地保护运行 Microsoft SQL Server 2000 的计算机免遭“Slammer”蠕虫的攻击
ipsecpol -w REG -p "Block UDP 1434 Filter" -r "Block Inbound UDP 1434 Rule" -f *=0:1434:UDP -n BLOCK -x
以下示例可阻止对 TCP 端口 80 进行的入站访问,但是仍然允许进行出站 TCP 80 访问。此策略可以有效地保护运行 Microsoft Internet 信息服务 (IIS) 5.0 的计算机免遭“Code Red”和“Nimda”蠕虫的攻击
ipsecpol -w REG -p "Block TCP 80 Filter" -r "Block Inbound TCP 80 Rule" -f *=0:80:TCP -n BLOCK -x
注意-x 开关可以立即指定该策略。如果您输入此命令,将取消指定“Block UDP 1434 Filter”策略,并指定“Block TCP 80 Filter”。要添加但不指定该策略,请在键入该命令时不在结尾带 -x 开关。
5.要向阻止特定网络通信( 基于 Windows 2000 的计算机发往任何 IP 地址)的现有“Block UDP 1434 Filter”策略中添加其他筛选规则,请使用以下语法(其中协议端口号 是变量):
ipsecpol -w REG -p "Block 协议端口号 Filter" -r "Block Outbound 协议端口号 Rule" -f *0=:端口号:协议 -n BLOCK
例如,要阻止从基于 Windows 2000 的计算机发往任何其他主机上的 UDP 1434 的任何网络通信,请键入以下命令。此策略可以有效地阻止运行 SQL Server 2000 的计算机传播“Slammer”蠕虫。
ipsecpol -w REG -p "Block UDP 1434 Filter" -r "Block Outbound UDP 1434 Rule" -f 0=*:1434:UDP -n BLOCK
注意:您可以使用此语法向策略中添加所需数量的筛选规则(例如,使用同一策略阻止多个端口)。
6.步骤 5 中的策略现在将生效,并将在每次重新启动计算机后一直存在。但是,如果以后为计算机指定了基于域的 IPSec 策略,此本地策略将被覆盖并将不再适用。要验证您的筛选规则是否已成功指定,请在命令提示符处,将工作文件夹设置为 C:/Program Files/Support Tools,然后键入以下命令:
netdiag /test:ipsec /debug
如这些示例所示,如果同时指定了用于入站通信和出站通信的策略,您将收到以下消息:
IP Security test .. . . . . . . . :
Passed Local IPSec Policy Active:'Block UDP 1434 Filter' IP Security Policy Path:SOFTWARE/Policies/Microsoft/Windows/IPSec/Policy/Local/ipsecPolicy{D239C599-F945-47A3-A4E3-B37BC12826B9}

There are 2 filters
No Name
Filter Id:{5EC1FD53-EA98-4C1B-A99F-6D2A0FF94592}
Policy Id:{509492EA-1214-4F50-BF43-9CAC2B538518}
Src Addr :0.0.0.0 Src Mask :0.0.0.0
Dest Addr :192.168.1.1 Dest Mask :255.255.255.255
Tunnel Addr :0.0.0.0 Src Port :0 Dest Port :1434
Protocol:17 TunnelFilter:No
Flags :Inbound Block
No Name
Filter Id:{9B4144A6-774F-4AE5-B23A-51331E67BAB2}
Policy Id:{2DEB01BD-9830-4067-B58A-AADFC8659BE5}
Src Addr :192.168.1.1 Src Mask :255.255.255.255
Dest Addr :0.0.0.0 Dest Mask :0.0.0.0
Tunnel Addr :0.0.0.0 Src Port :0 Dest Port :1434
Protocol:17 TunnelFilter:No
Flags :Outbound Block

注意:IP 地址和图形用户界面 (GUID) 号将不同。它们将反映基于 Windows 2000 的计算机的相应内容。

为特定协议和端口添加阻止规则

要为基于 Windows 2000 的、具有现有本地指定的静态 IPSec 策略的 计算机上的特定 协议和端口添加阻止规则,请按照下列步骤操作:
1.访问下面的 Microsoft Web 站点以下载和安装 Ipsecpol.exe: http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpol-o.asp
2.识别当前指定的 IPSec 策略的名称。为此,请在命令提示符处键入以下命令:
netdiag /test:ipsec
如果已指定策略,您将收到类似于以下内容的消息:
IP Security test .. . . . . . . . : Passed
Local IPSec Policy Active:'Block UDP 1434 Filter'
3.如果已为计算机(本地或域)指定了 IPSec 策略,请使用以下语法将其他 BLOCK 筛选规则添加到现有 IPSec 策略中(其中现有 IPSec 策略名称协议端口号 是变量):
ipsecpol -p "现有 IPSec 策略名称" -w REG -r "Block 协议端口号 Rule" -f *=0:端口号:协议 -n BLOCK
例如,要将用于阻止对 TCP 端口 80 进行入站访问的筛选规则添加到现有的“Block UDP 1434 Filter”中,请键入以下命令:
ipsecpol -p "Block UDP 1434 Filter" -w REG -r "Block Inbound TCP 80 Rule" -f *=0:80:TCP -n BLOCK

为特定协议和端口添加动态阻止策略


在有些情况下,您可能希望暂时阻止特定的端口(例如,在可以安装修复程序之前,或者在已经为 计算机指定了基于域的 IPSec 策略时)。要使用 IPSec 策略暂时阻止对基于 Windows 2000 的 计算机上的某个端口进行的访问,请按照下列步骤操作:
1.访问下面的 Microsoft Web 站点以下载并安装 Ipsecpol.exe: http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpol-o.asp
2.要添加一个动态 BLOCK 筛选以阻止从任何 IP 地址发往您系统的 IP 地址和目标端口的所有数据包,请在命令提示符处键入以下命令(其中协议端口号 是变量):
ipsecpol -f [*=0:端口号:协议]
注意:此命令可动态创建该阻止筛选,并且只要 IPSec Policy Agent 服务运行,该策略就会保持指定状态。如果重新启动 IPSec 服务计算机,该设置将丢失。如果要在每次重新启动系统后动态地重新指定 IPSec 筛选规则,请创建一个启动脚本以重新应用该筛选规则。如果您要永久性地应用此筛选,请将该筛选配置为静态 IPSec 策略。“IPSec 策略管理 MMC”管理单元提供图形用户界面以便管理 IPSec 策略配置。如果已应用基于域的 IPSec 策略,netdiag /test:ipsec /debug 命令仅在由具有域管理员凭据的用户执行时才会显示筛选详细信息。Netdiag.exe 的更新版本将在 Windows 2000 Service Pack 4 中提供,本地管理员可以使用它来查看基于域的 IPSec 策略。

IPSec 筛选规则和组策略

对于通过组策略设置来指定 IPSec 策略的环境,您必须更新整个域的策略以阻止特定的 协议和端口。在您成功配置组策略 IPSec 设置后,您必须强制刷新域中所有基于 Windows 2000 的 计算机上的组策略设置。为此,请使用以下命令:
secedit /refreshpolicy machine_policy
该 IPSec 策略更改将在两个不同轮询间隔中的其中一个间隔内检测到。对于一个刚指定的、应用于 GPO 的 IPSec 策略,该 IPSec 策略将在为组策略轮询间隔设置的时间内应用于客户端,或者当在客户机上运行 secedit /refreshpolicy machine_policy 命令时应用于客户端。如果已为 GPO 指定了 IPSec 策略并且正在将新的 IPSec 筛选或规则添加到现有策略中, secedit 命令将不会使 IPSec 识别更改。在这种情况下,对基于 GPO 的现有 IPSec 策略的修改将在该 IPSec 策略自己的轮询间隔内检测到。此时间间隔是在该 IPSec 策略的 常规选项卡上指定的。您还可以通过重新启动 IPSec Policy Agent 服务来强制刷新 IPSec 策略设置。如果 IPSec 服务停止或重新启动,由 IPSec 保护的通讯将中断并将需要几秒钟的时间才能恢复。这可能导致程序连接被断开,对于主动传输大量数据的连接而言更是如此。当 IPSec 策略只应用于本地 计算机时,您不必重新启动该 服务

取消指定和删除 IPSec 策略

对于使用本地定义的静态策略的计算机
1.打开命令提示窗口,然后将工作文件夹设置为您在其中安装了 Ipsecpol.exe 的文件夹。
2.要取消指定您以前创建的筛选,请使用以下语法:
ipsecpol -w REG -p "Block 协议端口号 Filter" –y
例如,要取消指定您以前创建的“Block UDP 1434 Filter”,请使用以下命令:
ipsecpol -w REG -p "Block UDP 1434 Filter" -y
3.要删除您创建的筛选,请使用以下语法:
ipsecpol -w REG -p "Block 协议端口号 Filter" -r "Block 协议端口号 Rule" –o
例如,要删除“Block UDP 1434 Filter”筛选和您以前创建的两个规则,请使用以下命令:
ipsecpol -w REG -p "Block UDP 1434 Filter" -r "Block Inbound UDP 1434 Rule" -r "Block Outbound UDP 1434 Rule" -o
对于使用本地定义的动态策略的计算机

如果通过使用 net stop policyagent 命令停止 IPSec Policy Agent 服务动态 IPSec 策略将被取消应用。但是,要删除以前使用的特定命令而不停止 IPSec Policy Agent 服务,请按照下列步骤操作:
1.打开命令提示窗口,然后将工作文件夹设置为您在其中安装了 Ipsecpol.exe 的文件夹。
2.键入下面的命令:
Ipsecpol –u
注意:您还可能需要重新启动 IPSec Policy Agent 服务以清除所有动态指定的策略。

将您的新筛选规则应用到所有协议和端口

默认情况下,在 Microsoft Windows 2000 和 Microsoft Windows XP 中,IPSec 使得广播、多路广播、RSVP、IKE 和 Kerberos 通信免于受到任何筛选和身份验证的限制。有关这些豁免的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
253169 Traffic That Can--and Cannot--Be Secured by IPSec
当 IPSec 只用于允许和阻止通信时,可以通过更改 注册表值来删除对 Kerberos 和 RSVP 协议的豁免。有关如何执行此操作的完整说明,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
254728 IPSec Does Not Secure Kerberos Traffic Between Domain Controllers
通过按照这些说明进行操作,即使 攻击者将他们的源端口设置为 Kerberos 端口 TCP/UDP 88,您也可以保护 UDP 1434。通过删除 Kerberos 豁免,现在可以将 Kerberos 数据包与 IPSec 策略中的所有筛选进行匹配。因此,可以在 IPSec 内部对 Kerberos 进行保护(阻止或允许)。这样,如果 IPSec 筛选与发往域控制器 IP 地址的 Kerberos 通信匹配,您可能需要更改 IPSec 策略设计来添加新的筛选,以便允许发往各个域控制器 IP 地址的 Kerberos 通信(如果您没有按照 知识库文章 254728 的说明使用 IPSec 来保护域控制器之间的所有通信)。

计算机重新启动时应用 IPSec 筛选规则

所有 IPSec 策略均依赖于要指定的 IPSec Policy Agent 服务。当基于 Windows 2000 的 计算机正在启动时,IPSec Policy Agent 服务未必是第一个启动的 服务。结果,可能存在一个短暂的瞬间,这时 计算机的网络连接容易受到 病毒或蠕虫的 攻击。仅当在 IPSec Policy Agent 服务完全启动并指定了所有策略之前,存在潜在 漏洞服务便成功启动并开始接受连接时,才会发生这种情况。

这篇文章中的信息适用于:
Microsoft Windows 2000 Professional Edition
Microsoft Windows 2000 Server
Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Datacenter Server
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值