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

发表于:2007-06-23来源:作者:点击数: 标签:
下一页 1 2 概要IPSec首先需要指出的是,IPSec和TCP/IP筛选是不同的东西,大家不要混淆了。TCP/IP筛选的功能十分有限,远不如IPSec灵活和强大。下面就说说如何在命令行下控制IPSec. XP系统用ipseccmd,2000下用ipsecpol.遗憾的是,它们都不是系统自带的。 ip

下一页 1 2 

   

    概要IPSec首先需要指出的是,IPSec和TCP/IP筛选是不同的东西,大家不要混淆了。TCP/IP筛选的功能十分有限,远不如IPSec灵活和强大。下面就说说如何在命令行下控制IPSec. XP系统用ipseclearcase/" target="_blank" >ccmd,2000下用ipsecpol.遗憾的是,它们都不是系统自带的。

ipseccmd在xp系统安装盘的 SUPPORT\TOOLS\SUPPORT.CAB 中,ipsecpol在2000 Resource Kit里。而且,要使用ipsecpol还必须带上另外两个文件:ipsecutil.dll和text2pol.dll.三个文件一共119KB. IPSec可以通过组策略来控制,但我找遍MSDN,也没有找到相应的安全模板的语法。已经配置好的IPSec策略也不能被导出为模板。所以,组策略这条路走不通。IPSec的设置保存在注册表中(HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\Policy\Local),理论上可以通过修改注册表来配置IPSec.但很多信息以二进制形式存放,读取和修改都很困难。相比之下,上传命令行工具更方便。

    关于ipsecpol和ipseccmd的资料,网上可以找到很多,因此本文就不细说了,只是列举一些实用的例子。

    在设置IPSec策略方面,ipseccmd命令的语法和ipsecpol几乎完全一样,所以只以ipsecpol为例:1,防御rpc-dcom攻击ipsecpol -p myfirewall -r rpc-dcom -f *+0:135:tcp *+0:135:udp *+0:137:udp *+0:138:udp *+0:139:tcp *+0:445:tcp *+0:445:udp -n BLOCK -w reg -x这条命令关闭了本地主机的TCP135,139,445和udp135,137,138,445端口。

    具体含义如下:-p myfirewall 指定策略名为myfirewall -r rpc-dcom 指定规则名为rpc-dcom -f …… 建立7个筛选器。*表示任何地址(源);0表示本机地址(目标);+表示镜像(双向)筛选。详细语法见ipsecpol -?

    -n BLOCK 指定筛选x作是"阻塞".注意,BLOCK必须是大写。

    -w reg 将配置写入注册表,重启后仍有效。

    -x 立刻激活该策略。

    2,防止被ping ipsecpol -p myfirewall -r antiping -f *+0::icmp -n BLOCK -w reg -x如果名为myfirewall的策略已存在,则antiping规则将添加至其中。

    注意,该规则同时也阻止了该主机ping别人。

    3,对后门进行IP限制假设你在某主机上安装了DameWare Mini Remote Control.为了保护它不被别人暴破密码或溢出,应该限制对其服务端口6129的访问。

    ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.89+0:6129:tcp -n PASS -w reg -x这样就只有123.45.67.89可以访问该主机的6129端口了。

    如果你是动态IP,应该根据IP分配的范围设置规则。比如:ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.*+0:6129:tcp -n PASS -w reg -x这样就允许123.45.67.1至123.45.67.254的IP访问6129端口。

    在写规则的时候,应该特别小心,不要把自己也阻塞了。如果你不确定某个规则的效果是否和预想的一样,可以先用计划任务"留下后路".例如:c:\>net start schedule Task Scheduler 服务正在启动 ……

    Task Scheduler 服务已经启动成功。

    c:\>time /t 12:34 c:\>at 12:39 ipsecpol -p myfw -y -w reg新加了一项作业,其作业 ID = 1然后,你有5分钟时间设置一个myfw策略并测试它。5分钟后计划任务将停止该策略。如果测试结果不理想,就删除该策略。 c:\>ipsecpol -p myfw -o -w reg注意,删除策略前必须先确保它已停止。不停止它的话,即使删除也会在一段时间内继续生效。持续时间取决于策略的刷新时间,默认是180分钟。

    如果测试通过,那么就启用它。

    c:\>ipsecpol -p myfw -x -w reg最后说一下查看IPSec策略的办法。

    对于XP很简单,一条命令搞定——ipseccmd show filters而ipsecpol没有查询的功能。需要再用一个命令行工具netdiag.它位于2000系统安装盘的SUPPORT\TOOLS\SUPPORT.CAB中。(已经上传了三个文件,也就不在乎多一个了。)

    netdiag需要RemoteRegistry服务的支持。所以先启动该服务:net start remoteregistry不启动RemoteRegistry就会得到一个错误:[FATAL] Failed to get system information of this machine. netdiag这个工具功能十分强大,与网络有关的信息都可以获取!不过,输出的信息有时过于详细,超过命令行控制台cmd.exe的输出缓存,而不是每个远程cmd shell都可以用more命令来分页的。

    查看ipsec策略的命令是:netdiag /debug /test:ipsec然后是一长串输出信息。IPSec策略位于最后。

    更多信息确定是否指定了 IPSec 策略基于 Windows Server 2003 的计算机基于 Windows XP 的计算机基于 Windows 2000 的计算机创建用于阻止通信的静态策略基于 Windows Server 2003 和 Windows XP 的计算机基于 Windows 2000 的计算机为特定协议和端口添加阻止规则基于 Windows Server 2003 和 Windows XP 的计算机基于 Windows 2000 的计算机为特定协议和端口添加动态阻止策略基于 Windows Server 2003 和 Windows XP 的计算机基于 Windows 2000 的计算机IPSec 筛选规则和组策略取消指定和删除 IPSec 策略基于 Windows Server 2003 和 Windows XP 的计算机基于 Windows 2000 的计算机将您的新筛选规则应用到所有协议和端口在计算机重新启动时应用 IPSec 筛选规则

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

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

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

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

    确定是否指定了 IPSec 策略基于 Windows Server 2003 的计算机在为基于 Windows Server 2003 的计算机创建或指定任何新的 IPSec 策略之前,请确定是否有从本地注册表或通过组策略对象 (GPO) 应用的任何 IPSec 策略。为此,请按照下列步骤操作: 1. 运行 Windows Server 2003 CD 上的 Support\Tools 文件夹中的 Suptools.msi,安装 Netdiag.exe. 2. 打开命令提示符窗口,然后将工作文件夹设置为 C:\Program Files\Support Tools. 3. 运行以下命令以验证尚未为该计算机指定现有 IPSec 策略:netdiag /test:ipsec如果没有指定策略,您将收到以下消息:IP 安全测试。。 . . . . . . . : 传递的 IPSec 策略服务是活动的,但是没有指定策略。

    基于 Windows XP 的计算机在为基于 Windows XP 的计算机创建或指定任何新的 IPSec 策略之前,请确定是否有从本地注册表或通过 GPO 应用的任何 IPSec 策略。为此,请按照下列步骤操作: 1. 运行 Windows XP CD 上的 Support\Tools 文件夹中的 Setup.exe,安装 Netdiag.exe. 2. 打开命令提示符窗口,然后将工作文件夹设置为 C:\Program Files\Support Tools. 3. 运行以下命令以验证尚未为该计算机指定现有 IPSec 策略:netdiag /test:ipsec如果没有指定策略,您将收到以下消息:IP 安全测试。。 . . . . . . . : 传递的 IPSec 策略服务是活动的,但是没有指定策略。

    基于 Windows 2000 的计算机在为基于 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 安全测试。。 . . . . . . . : 传递的 IPSec 策略服务是活动的,但是没有指定策略。

    创建用于阻止通信的静态策略基于 Windows Server 2003 和 Windows XP 的计算机对于没有启用本地定义的 IPSec 策略的系统,请创建一个新的本地静态策略,以阻止定向到 Windows Server 2003 和 Windows XP 计算机上的特定协议和特定端口的通信。为此,请按照下列步骤操作: 1. 验证 IPSec Policy Agent 服务已在“服务 MMC”管理单元中启用并启动。

    2. 安装 IPSeccmd.exe.IPSeccmd.exe 是 Windows XP Service Pack 2 (SP2) 支持工具的一部分。

    注意:IPSeccmd.exe 将在 Windows XP 和 Windows Server 2003 操作系统中运行,但仅有 Windows XP SP2 支持工具包中提供此工具。

    有关下载和安装 Windows XP Service Pack 2 支持工具的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:838079 (http://support.microsoft.com/kb/838079/) Windows XP Service Pack 2 支持工具3. 打开命令提示符窗口,然后将工作文件夹设置为安装 Windows XP Service Pack 2 支持工具的文件夹。

    注意:Windows XP SP2 支持工具的默认文件夹是 C:\Program Files\Support Tools. 4. 要创建一个新的本地 IPSec 策略和筛选规则,并将其应用于从任何 IP 地址发送到您要配置的 Windows Server 2003 或 Windows XP 计算机的 IP 地址的网络通信,请使用以下命令。

    注意:在以下命令中,Protocol 和 PortNumber 是变量。

    IPSeccmd.exe -w REG -p "Block ProtocolPortNumber Filter" -r "Block Inbound ProtocolPortNumber Rule" -f *=0ortNumberrotocol -n BLOCK –x例如,要阻止从任何 IP 地址和任何源端口发往 Windows Server 2003 或 Windows XP 计算机上的目标端口 UDP 1434 的网络通信,请键入以下命令。此策略可以有效地保护运行 Microsoft SQL Server 2000 的计算机免遭“Slammer”蠕虫的攻击。

    IPSeccmd.exe -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”蠕虫的攻击。

    IPSeccmd.exe -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. 要向现有的“Block UDP 1434 Filter”策略(阻止从基于 Windows Server 2003 或 Windows XP 的计算机发往任何 IP 地址的网络通信)添加其他筛选规则,请使用以下命令。

    注意:在此命令中,Protocol 和 PortNumber 是变量:IPSeccmd.exe -w REG -p "Block ProtocolPortNumber Filter" -r "Block Outbound ProtocolPortNumber Rule" -f *0=ortNumber:Protocol -n BLOCK例如,要阻止从基于 Windows Server 2003 或 Windows XP 的计算机发往任何其他主机上的 UDP 1434 的任何网络通信,请键入以下命令。此策略可以有效地阻止运行 SQL Server 2000 的计算机传播“Slammer”蠕虫。

    IPSeccmd.exe -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 安全测试。。 . . . . . . . :传递的本地 IPSec 策略活动:'Block UDP 1434 Filter' IP 安全策略路径:SOFTWARE\Policies\Microsoft\Windows\IPSec\Policy\Local\ipsecPolicy{D239C599-F945-47A3-A4E3-B37BC12826B9}

    有 2 个筛选无名称筛选 ID:{5EC1FD53-EA98-4C1B-A99F-6D2A0FF94592}策略 ID:{509492EA-1214-4F50-BF43-9CAC2B538518}源地址:0.0.0.0 源掩码:0.0.0.0目标地址:192.168.1.1 目标掩码:255.255.255.255隧道地址:0.0.0.0 源端口:0 目标端口:1434协议:17 TunnelFilter:无标记:入站阻止无名称筛选 ID:{9B4144A6-774F-4AE5-B23A-51331E67BAB2}策略 ID:{2DEB01BD-9830-4067-B58A-AADFC8659BE5}源地址:192.168.1.1 源掩码:255.255.255.255目标地址:0.0.0.0 目标掩码:0.0.0.0隧道地址:0.0.0.0 源端口:0 目标端口:1434协议:17 TunnelFilter:无标记:出站阻止注意:根据是基于 Windows Server 2003 还是基于 Windows XP 的计算机,IP 地址和图形用户界面 (GUID) 号会有所不同。

    基于 Windows 2000 的计算机对于没有启用本地定义的 IPSec 策略的系统,请按照下列步骤创建一个新的本地静态策略,以阻止定向到未指定现有 IPSec 策略的 Windows 2000 计算机上的特定协议和端口的通信: 1. 验证 IPSec Policy Agent 服务已在“服务 MMC”管理单元中启用并启动。

    2. 访问下面的 Microsoft 网站以下载并安装 Ipsecpol.exe:http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpol-o.asp (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 地址的网络通信,请使用以下命令,其中 Protocol 和 PortNumber 是变量:ipsecpol -w REG -p "Block ProtocolPortNumber Filter" -r "Block Inbound ProtocolPortNumber Rule" -f *=0:PortNumber:Protocol -n BLOCK –x例如,要阻止从任何 IP 地址和任何源端口发往基于 Windows 2000 的计算机上的目标端口 UDP 1434 的网络通信,请键入以下命令。此策略可以有效地保护运行 Microsoft SQL Server 2000 的计算机免遭“Slammer”蠕虫的攻击。

原文转自:http://www.ltesting.net