[转]解决 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 防火墙的默认配置有关的故障症状,如何配置例外端口和程序,以及如何解决防火墙设置问题。
回到顶端
更多信息
回到顶端
识别故障症状
与防火墙的默认配置有关的故障有两种表现形式:• | 客户端程序无法从服务器接收数据。例如,下列客户端程序无法接收数据:
|
||||||||||
• | 在基于 Windows XP 的计算机上运行的服务器程序无法响应客户端请求。例如,下列服务器程序无法响应:
|
回到顶端
使用 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 文件。记下与该进程标识符关联的任何条目和所使用的协议。 |
添加例外端口
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 控制标志:
|
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) 处理选项。 |
• | 在例外列表中添加或删除程序。 |
收集诊断数据
可以使用 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) 编辑 收藏 举报