[转]解决 Windows XP Service Pack 2 中 Windows 防火墙的设置问题

文章编号 : 875357
最后修改 : 2006年8月29日
修订 : 2.2
本页
概要
简介
更多信息
识别故障症状
使用 Windows 防火墙安全警报来配置 Windows 防火墙
使用 Windows 安全中心来配置 Windows 防火墙
添加例外程序
添加例外端口
确定端口
添加例外端口
使用日志记录
解释日志文件
使用命令行支持
收集诊断数据
解决防火墙问题
配置 Windows 防火墙组策略

概要

Microsoft Windows XP Service Pack 2 (SP2) 包括 Microsoft Windows 防火墙,此更新的防火墙软件将替代 Internet 连接防火墙 (ICF)。如果 Microsoft Windows 防火墙阻止某个服务或程序所使用的端口,您可以配置 Windows 防火墙以创建一个例外项。如果出现下列情况,则 Windows 防火墙可能阻止了某个程序或服务:
程序不响应客户端的请求。
客户端程序无法从服务器接收数据。
Windows 防火墙安全警报可能会通知您 Windows 防火墙阻止了某个特定程序。发生这种情况时,您可以选择“安全警报”对话框中的“取消阻止该程序”来取消阻止该程序。为帮助确定阻止了哪些程序和端口,您可以配置 Windows 防火墙来记录被丢弃的数据包。通过使用 Windows 防火墙 Netsh 帮助程序,您可以在命令提示符下配置 Windows 防火墙和 Windows 防火墙日志记录。问题并不总是由程序兼容性造成的。组策略设置也可能会禁止运行程序。Windows XP Service Pack 2 (SP2) 包含多个实用工具,您可以使用这些工具来解决 Windows 防火墙问题。

回到顶端

简介

解决防火墙阻止问题的最好方法是修改程序,使其与有状态的筛选防火墙一起使用。如果无法修改程序,则可以配置 Windows 防火墙,以便为特定端口和程序添加例外项。本文讨论与 Windows XP Service Pack 2 防火墙的默认配置有关的故障症状,如何配置例外端口和程序,以及如何解决防火墙设置问题。

回到顶端

更多信息

回到顶端

识别故障症状

与防火墙的默认配置有关的故障有两种表现形式:
客户端程序无法从服务器接收数据。例如,下列客户端程序无法接收数据:
FTP 客户端
多媒体流软件
某些电子邮件程序中的新邮件通知
在基于 Windows XP 的计算机上运行的服务器程序无法响应客户端请求。例如,下列服务器程序无法响应:
Web 服务器,如 Internet 信息服务 (IIS)
远程桌面
文件共享
注意:
网络程序中的故障不只限于防火墙问题。RPC 或 DCOM 的安全更改也可能会导致出现这些故障。因此,您必须确定该故障是否与指示某个程序被阻止的 Windows 防火墙安全警报一起出现。
服务故障不会与 Windows 防火墙安全警报一起出现,因为服务通常与用户登录会话无关。如果故障与服务相关,可按照“使用 Windows 安全中心来配置 Windows 防火墙”一节中讨论的方法来配置防火墙。
如果某个程序被阻止,您可能会收到以下 Windows 防火墙安全警报:

为帮助保护您的计算机,Windows 防火墙已阻止该程序从 Internet 或网络接收未经请求的信息。

名称:程序名称
发行商:发行商名称

取消阻止该程序
继续阻止该程序
继续阻止该程序,但以后要再次询问我

了解 Windows 防火墙的更多信息。



回到顶端

使用 Windows 防火墙安全警报来配置 Windows 防火墙

Windows 防火墙安全警报提供以下三个选项:
取消阻止该程序。
继续阻止该程序。
继续阻止该程序,但以后要再次询问我。

要取消阻止该程序,可在“安全警报”对话框中单击“取消阻止该程序”,然后单击“确定”。

回到顶端

使用 Windows 安全中心来配置 Windows 防火墙

添加例外程序

在将程序添加到例外列表中后,防火墙就可以打开多个端口范围,每次运行该程序时,这些端口范围都可能会发生变化。要添加例外程序,请按照下列步骤操作:
1. 使用管理员帐户登录。

有关如何确定当前登录的帐户是否是管理员帐户的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
871211 (http://support.microsoft.com/kb/871211/) 如何检查您是否以管理员身份登录以及计算机是否有适当的组策略
2. 单击“开始”,单击“运行”。
3. ,键入 Wscui.cpl,然后单击“确定”。
4. 在“Windows 安全中心”窗口中,单击“Windows 防火墙”。
5. 在“例外”选项卡上,单击“添加程序”。
6. 在程序列表中,单击要添加的程序的名称,然后单击“确定”。如果您的程序名不在程序列表中,请单击“浏览”以查找该程序,然后单击“确定”。


注意:如果不知道该程序的位置,请与程序供应商联系以确定程序位置。

有关如何与程序供应商联系的信息,请单击下面列表中适当的文章编号,以查看 Microsoft 知识库中相应的文章:
65416 (http://support.microsoft.com/kb/65416/) 硬件和软件供应商联系信息,A-K

60781 (http://support.microsoft.com/kb/60781/) 硬件和软件供应商联系信息,L-P

60782 (http://support.microsoft.com/kb/60782/) 硬件和软件供应商联系信息,Q-Z
7. 单击“确定”关闭“Windows 防火墙”。
8. 测试该程序以检查防火墙设置是否正确。


添加例外端口

如果通过将程序添加到例外列表中不能解决此问题,则可以手动添加端口。为此,您必须首先确定该程序所使用的端口。确定所使用端口的可靠方法是与程序供应商取得联系。如果无法联系供应商,或者找不到端口列表,则可以使用 Netstat.exe 工具来确定所使用的端口。

确定端口
1. 启动该程序,并尝试使用其网络功能。例如,对于多媒体程序,尝试启动音频流。对于 Web 服务器,尝试启动服务。
2. 单击“开始”,单击“运行”。
3. 在“打开”框 中,键入"cmd",然后点击“确定”。
4. 在命令提示符下,键入 Netstat –ano > netstat.txt,然后按 Enter 键。此命令可创建 Netstat.txt 文件。该文件会列出所有侦听端口。
5. 在命令提示符下,键入 Tasklist > tasklist.txt,然后按 Enter 键。如果该程序作为服务运行,请键入 Tasklist /svc > tasklist.txt 而不是 Tasklist > tasklist.txt,以便列出每个进程中加载的服务。

6. 打开 Tasklist.txt 文件,然后找到要排查其问题的程序。记下进程的进程标识符,然后打开 Netstat.txt 文件。记下与该进程标识符关联的任何条目和所使用的协议。
如果进程的端口号小于 1024,则端口号可能不会发生变化。如果使用的端口号大于 1024,则程序可能会使用某个范围内的端口。因此,打开个别端口可能无法解决此问题。

添加例外端口
1. 单击“开始”,单击“运行”。
2. 键入 Wscui.cpl,然后单击“确定”。
3. 在“Windows 安全中心”,打开“Windows 防火墙”
4. 单击“例外”选项卡,然后单击“添加端口”以显示“添加端口”对话框。
5. 在“名称”字段中,为该端口键入一个描述性名称。输入程序所使用的端口号。根据程序使用的协议,选择 TCP 或 UDP 协议。
6. 单击“更改范围”。
7. 查看或设置例外端口的范围,然后单击“确定”。
8. 单击“确定”以关闭“添加端口”对话框。
9. 要验证程序的端口设置是否正确,请测试该程序。


回到顶端

使用日志记录

您可以启用日志记录,以帮助确定入站通信的来源,并提供有关被阻止的通信的详细信息。%Windir%\pfirewall.log 是默认的日志文件。要启用日志记录,请按照下列步骤操作:
1. 单击“开始”,单击“运行”。
2. 键入 Firewall.cpl,然后单击“确定”。
3. 单击“高级”选项卡。
4. 在“安全记录”中,单击“设置”。
5. 在“日志设置”中,单击选中“记录被丢弃的数据包”复选框,然后单击“确定”。
6. 单击“确定”关闭“Windows 防火墙”。

注意:不会记录成功的出站通信。也不会记录未被阻止的出站通信。


解释日志文件

对于记录的每个数据包,都会收集以下日志信息:

字段 说明 示例
Date 显示记录的事务发生时的年、月和日。日期的记录格式为 YYYY-MM-DD,其中 YYYY 表示年,MM 表示月,DD 表示天。 2001-01-27
Time 显示记录的事务发生时的小时、分钟和秒。时间的记录格式为:HH:MM:SS,其中 HH 是以 24 小时格式表示的小时,MM 表示分钟数,SS 表示秒数。 21:36:59
Action 指示防火墙观察到的操作。防火墙的可用选项有 OPEN、CLOSE、DROP 和 INFO-EVENTS-LOST。INFO-EVENTS-LOST 操作指示已发生但未记录在日志中的事件数。 OPEN
Protocol 显示通信时所使用的协议。协议条目也可以是一个数字,用来表示不使用 TCP、UDP 或 ICMP 的数据包。 TCP
src-ip 显示源 IP 地址,即尝试建立通信的计算机的 IP 地址。 192.168.0.1
dst-ip 显示通信尝试的目标 IP 地址。 192.168.0.1
src-port 显示发送计算机的源端口号。src-port 条目以 1 到 65,535 之间的整数形式记录。只有 TCP 和 UDP 会显示有效的 src-port 条目。所有其他协议的 src-port 条目均显示为“-”。 4039
dst-port 显示目标计算机的端口号。dst-port 条目以 1 到 65,535 之间的整数形式记录。只有 TCP 和 UDP 会显示有效的 dst-port 条目。所有其他协议的 dst-port 条目均显示为“-”。 53
size 显示以字节表示的数据包大小。 60
tcpflags 显示 IP 数据包 TCP 报头中的 TCP 控制标志:
Ack:确认字段有效
Fin:没有来自发送方的其他数据
PSH:推入功能
Rst:重置连接
Syn:同步序列号
Urg:紧急指针字段有效
标志均采用大写字母形式。
AFP
tcpsyn 显示数据包中的 TCP 序列号。 1315819770
tcpack 显示数据包中的 TCP 确认号。 0
tcpwin 显示数据包中用字节表示的 TCP 窗口大小。 64240
icmptype 显示一个数字,表示 ICMP 消息的“类型”字段。 8
icmpcode 显示一个数字,表示 ICMP 消息的“代码”字段。 0
info 显示一个信息条目,具体取决于执行的操作类型。例如,INFO-EVENTS-LOST 操作为以下事件个数创建一个条目:从该事件类型最后一次发生后发生但未记录到日志中的事件。 23

注意:连字符 (-) 用于其中没有条目信息的字段。


回到顶端

使用命令行支持

Windows 防火墙 Netsh 帮助程序已添加到 Windows XP 的 Microsoft Advanced Networking Pack 中。此命令行帮助程序以前适用于 IPv6 Windows 防火墙。在 Windows XP Service Pack 2 中,该帮助程序现在支持对 IPv4 进行配置。

通过使用 Netsh 帮助程序,您现在可以:
配置 Windows 防火墙的默认状态。(选项包括“关闭”、“启用”和“启用并且没有例外”。)
配置必须打开的端口。
配置端口以启用全局访问,或限制对本地子网的访问。
将端口设置为在所有接口上打开,或者仅在特定接口上打开。
配置日志记录选项。
配置 Internet 控制消息协议 (ICMP) 处理选项。
在例外列表中添加或删除程序。
这些配置选项适用于 IPv4 Windows 防火墙和 IPv6 Windows 防火墙,但 Windows 防火墙版本中不存在的特定功能除外。


收集诊断数据

可以使用 Netsh.exe 工具,在命令行中检索 Windows 防火墙的配置和状态信息。此工具将 IPv4 防火墙支持添加到以下 Netsh 上下文中:
netsh firewall
要使用此上下文,请在命令提示符下键入 netsh firewall,然后根据需要使用其他 Netsh 命令。以下命令对于收集防火墙状态和配置信息非常有用:
Netsh firewall show state
Netsh firewall show config

可以将这些命令的输出与 netstat –ano 命令的输出进行比较,确定可能打开侦听端口并且在防火墙配置中无相应例外项的程序。下表列出了受支持的数据收集和配置命令。

注意:只有管理员能够修改设置。

数据收集
命令 说明
show allowedprogram 显示允许的程序。
show config 显示详细的本地配置信息。
show currentprofile 显示当前配置文件。
show icmpsetting 显示 ICMP 设置。
show logging 显示日志记录设置。
show opmode 显示操作模式。
show portopening 显示例外端口。
show service 显示服务。
show state 显示当前的状态信息。
show notifications 显示当前通知设置。

配置
命令 说明
add allowedprogram 用于通过指定程序的文件名来添加例外通信。
set allowedprogram 用于修改现有允许的程序的设置。
delete allowedprogram 用于删除现有允许的程序。
set icmpsetting 用于指定允许的 ICMP 通信。
set logging 用于为 Windows 防火墙指定全局日志记录选项,或为特定连接(接口)指定日志记录选项。
set opmode 用于为 Windows 防火墙指定全局操作模式,或为特定连接(接口)指定操作模式。
add portopening 用于通过指定 TCP 或 UDP 端口来添加例外通信。
set portopening 用于修改现有打开的 TCP 或 UDP 端口的设置。
delete portopening 用于删除现有打开的 TCP 或 UDP 端口。
set service 用于启用或丢弃 RPC 和 DCOM 通信、文件和打印机共享以及 UPnP 通信。
set notifications 用于指定当程序试图打开端口时是否通知用户。
reset 将防火墙配置重置为默认设置。它提供与“Windows 防火墙”界面中的“还原为默认值”按钮相同的功能。



回到顶端

解决防火墙问题

除程序兼容性问题外,Windows 防火墙还可能会出现其他问题。请按照下列步骤操作来诊断问题:
1. 要检查 TCP/IP 是否正常工作,请使用 ping 命令测试环回地址 (127.0.0.1) 和分配的 IP 地址。
2. 检查用户界面中的配置,确定是否误将防火墙设置为“关闭”或“启用并且没有例外”。
3. 使用 netsh 命令收集防火墙状态和配置信息,以查找无意中设定的可能妨碍防火墙正常运行的设置。
4. 在命令提示符下键入以下命令来确定“Windows 防火墙/Internet 连接共享”服务的状态:
sc query sharedaccess
(该服务的简称是 SharedAccess。)如果此服务未启动,请根据 Win32 退出代码来排查服务启动问题。
5. 在命令提示符下键入以下命令来确定 Ipnat.sys 防火墙驱动程序的状态:
sc query ipnat
此命令还会返回上一次启动尝试的 Win32 退出代码。如果驱动程序未启动,请使用适用于任何其他驱动程序的故障排查步骤。
6. 如果该驱动程序和服务均在运行,而且事件日志中没有相关的错误,请使用“Windows 防火墙”属性“高级”选项卡上的“还原为默认值”选项来消除任何可能有问题的配置。
7. 如果问题仍未解决,请查找可能产生异常行为的策略设置。为此,请在命令提示符下键入 GPResult /v > gpresult.txt,然后检查生成的文本文件以查找与防火墙有关的配置策略。

回到顶端

配置 Windows 防火墙组策略

请与您的网络管理员联系,确定组策略设置是否禁止程序和方案在企业环境中运行。

Windows 防火墙组策略设置位于以下“组策略对象编辑器”管理单元路径中:
计算机配置/管理模板/网络/网络连接/Windows 防火墙
计算机配置/管理模板/网络/网络连接/Windows 防火墙/域配置文件
计算机配置/管理模板/网络/网络连接/Windows 防火墙/标准配置文件

从这些位置,您可以配置以下组策略设置:
Windows 防火墙:允许已验证的 Internet 协议安全 (IPSec) 绕过
Windows 防火墙:保护所有网络连接
Windows 防火墙:不允许例外
Windows 防火墙:定义例外程序
Windows 防火墙:允许本地程序例外
Windows 防火墙:允许远程管理例外
Windows 防火墙:允许文件和打印共享例外
Windows 防火墙:允许 ICMP 例外
Windows 防火墙:允许远程桌面例外
Windows 防火墙:允许通用即插即用 (UpnP) 框架例外
Windows 防火墙:禁止通知
Windows 防火墙:允许日志记录
Windows 防火墙:禁止对多播或广播请求进行单播响应
Windows 防火墙:定义例外端口
Windows 防火墙:允许本地端口例外

有关 Windows 防火墙组策略设置的更多信息,请下载下面的白皮书:
Deploying Windows Firewall Settings for Microsoft Windows XP with Service Pack 2(对安装了Service Pack 2 的 Microsoft Windows XP 部署 Windows 防火墙设置) (http://download.microsoft.com/download/6/8/a/68a81446-cd73-4a61-8665-8a67781ac4e8/wf_xpsp2.doc)

回到顶端


这篇文章中的信息适用于:
Microsoft Windows XP Professional Edition
Microsoft Windows XP Home Edition

posted on 2008-06-27 09:44  freeliver54  阅读(1940)  评论(2编辑  收藏  举报

导航