解读Windows XP SP2防火墙

此文探讨Windows 防火墙原理、功能变化以及应用过程中可能遇到问题和解决办法……
Windows XP SP2在安全方面做了重大的调整,安全设计融合到整个操作系统中,防火墙屏障、操作系统补丁和更新病毒库等理念形成一个安全体系,而防火墙是这个安全体系 的第一道屏障,它提供了一个强大的保护层,可以阻止恶意用户和程序依靠未经请求的传入流量攻击计算机。Windows XP SP2防火墙又称ICF(Internet Connection frewall),已经具备个人防火墙的基本功能,它是一种能够阻截所有传入的未经请求的流量的状态防火墙。这些流量既不是响应计算机请求而发送的流量 (请求流量),也不是事先指定允许传入的未经请求的流量(异常流量)。这有助于使计算机更加安全,使您可以更好地控制计算机上的数据。和Windows良 好的兼容性及可靠性是其它个人防火墙所不能比拟的。
  注:此文只探讨Windows 防火墙原理、功能变化以及应用过程中可能遇到问题和解决办法,不描述怎样设置Windows 防火墙,如果未特别说明,本文所提到的Windows 防火墙指Windows XP SP2防火墙。

一、使用个人防火墙还是使用Windows 防火墙
  仅就防火墙功能而言,个人防火墙对双向流量都进行审核,拥有更复杂的控制列表,但是,Windows 防火墙只阻截所有传入的未经请求的流量,对主动请求传出的流量不作理会,这一点是它们之间最大的区别。绝大多数商业防火墙都提供了应用程序过滤功能,这一 功能可以阻止未通过认证的应用程序向外发送报文,这样就可以防止病毒或木马等恶意代码同外部建立未认证的连接,同时也可以防止用户的计算机被黑客用做分布 式攻击的跳板。然而,WindowsXP SP2所带的防火墙却只能对进入计算机的报文进行过滤,而不对计算机向外发出的报文进行过滤,它不对应用程序向外发送报文做任何限制。 事物有其两面性,这些个人防火墙产品依据的防黑客原理通常不一样,例如Norton的Personal Firewall(个人防火墙)是基于应用程序的(Application Level)。基于应用程序的防火墙在使用上相当麻烦,因为你必须要为每一个访问Internet的程序设置策略。而随着策略的增多,防火墙的效率也逐步 下降,况且过多的策略也会相互矛盾、影响,给系统安全带来漏洞。更糟糕的是,这些个人防火墙产品都非常占用系统资源。
  比如接入网络游戏联众世界的时候,本地计算机请求连接远程服务器,这时,个人防火墙立即提示是否允许此连接通过,而Windows 防火墙对这个主动出站请求不做任何处理,也不做任何提示,好像防火墙不存在似的,所以如果入侵已经发生或间谍软件已经安装,并主动连接到外部网络,那么防火墙束手无策;如果Windows 间谍软件开放端口等待外部请求连接,那么Windows 防火墙立刻阻断连接并弹出安全警告。但这不表示Windows防火墙不安全,因为攻击多来自外部,而且如果间谍软件开放端口等待外部连接的时候,Windows防火墙立即阻断连接,并且作出提示,关于这一点在下面的文章中还会提到。
  对来自外部的请求连接的控制,Windows防火墙和个人防火墙在功能上区别不大。而且Windows防火墙有其独特的特性,包括:计算机的所有连接 默认启用ICF、人性化的屏蔽模式-充分考虑到了计算机使用环境的变化和及时阻断攻击和恢复正常使用的情况、智能应用程序异常流量管理、对于 IPv6 ICF 内建支持等功能。比如在启动安全性功能上,有一个可以执行状态数据包过滤的启动策略。该策略允许计算机使用动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)和域名系统(Domain Name System,DNS)执行基本网络启动任务,并与域控制器进行通信,以更新组策略。避免计算机在网络上进入活动状态的时间与 ICF 开始保护连接的时间之间的延迟中被未经请求的流量在启动期间攻击计算机留下了可乘之机。
  遗憾的是Windows防火墙并不提供报警和入侵检测。虽然Windows防火墙可以防止对系统的入侵。而且,其他的一些个人防火墙产品还有更好的诊 断和报告功能(Windows防火墙没有报告功能,仅仅有个日志)。所以,当选择使用哪个防火墙产品时,你应该考虑这些因素。如果你选择Windows防 火墙,你应该确定自己明白它的有限的能力,虽然Windows 防火墙对个人用户而言已经不在是鸡肋。

二、Windows XP SP2防火墙工作原理
  Windows 防火墙使用的全状态数据包监测技术会把所有由本机发起的网络连接生成一张表,并用这张表跟所有的入站数据包作对比,如果入站的数据包是为了响应本机的请求,那么就被允许进入。除非有实施专门的过滤器以允许特定的非主动请求数据包,否则所有其他数据包都会被阻挡。


  “例外”选项卡使您可以添加程序和端口例外,以允许特定类型的传入通信。您可以为每个例外设置范围。如果开放了某个端口,那么对这个端口的访问将被允 许通过。端口或者服务可以在“例外”选项中设置或者通过指定应用程序的方法设置,如QQ等,如果开放端口的服务不是一个应用程序如IIS服务,可以直接设 置开放的协议和端口号。对于只使用网络浏览、电子邮件、共享文件夹、进行普通处理的客户端和服务器型应用程序的用户,Windows防火墙根本不会产生影 响。

三、Windows 防火墙设置中几个重要选项
  单击“开始”,单击“运行”,键入 wscui.cpl,然后单击“确定”,在“Windows 全中心”内单击“Windows 防火墙”。
对于“不允许例外”
当您单击选中“不允许例外”时,Windows 防火墙将阻止所有连接到您的计算机的请求,即使请求来自“例外”选项卡上列出的程序或服务也是如此。防火墙还会阻止发现网络设备、文件共享和打印机共享。 当您连接到公用网络(例如,与机场或旅馆相关的网络)时,“不允许例外”选项十分有用。此设置可以阻止所有连接到您的计算机的尝试,因而有助于保护您的计 算机。当您使用 Windows 防火墙并启用了“不允许例外”选项时,您仍然可以查看网页,收发电子邮件或使用即时消息传递程序。
针对“例外”的说明
“例外”选项卡使您可以添加程序和端口例外,以允许特定类型的传入通信。您可以为每个例外设置范围。
对于家庭和小型办公室网络,我们建议您在可能的条件下,将范围设定为仅限局域网内部。这样配置可以使同一个子网上的计算机可以与此计算机上的程序连接,但拒绝源自远程网络的通信。

四、Windows XP SP2的防火墙真的安全吗?
  Windows防火墙在原则上是对由外向内的通信(inbound)全部进行限制,而由内向外的通信(outbound)及其应答则完全不加限制。Windows防火墙只在像服务器那样运行的应用程序开始通信时才会发出警告。 以登录联众世界为例:在所有网络链接上打开防火墙,现在,登陆联众世界试试,一样登陆,根本不需要通过防火墙允许。选择了“不允许例外”,结果还是一样。而用zonealarm的时候,任何程序都得经过防火墙的允许。这是为什么?
  前面已经提到了Windows防火墙的特点“只阻截所有传入的未经请求的流量”也就是说,Windows防火墙对主动出站流量不作处理,所以登陆联众 世界/IE等没有安全提示,而zonealarm等个人防火墙对所有出、入站流量都作审查,所以有安全提示(除非设置审查但不提示)。但是,为什么QQ /MSN/MYIE2等又有安全提示呢?这是因为QQ/MSN/MYIE2等试图在本地开后门--端口等待远程请求连接,显然这种不安全行为被 Windows防火墙拦截并作出安全提示,这相当于QQ/MSN/MYIE2等作为提供某种服务的服务器端。如图所示,MYIE2在本开了1067端 口,QQ使6000和6001处在监听状态,而联众世界却没有开放任何端口。

  取消通知的方法是:防火墙设置-例外-取消选择“Windows防火墙组织程序时通知我”。

五、Windows XP SP2的防火墙可以限制某个应用程序访问网络吗?
  Windows XP SP2的防火墙置不适用于不对特定 UDP 或 TCP 端口集合进行监听的应用程序,不能限制某个应用程序访问网络,但是,却可以限制对谁提供哪些服务,这一点也不同于早期版本的Windows防火墙。
  虽然Windows防火墙不可以限制出站通讯,但是Windows XP内置的Internet Protocol security (IPSec)却可以提供这种保护,使用IPSec规则,可以指定通讯是被阻断(丢弃数据)还是被放行(允许),同时能保护加密的入站和出站通讯。在这三 种情况下(阻断、允许、保护),IPSec能够配置原地址和目标地址范围。同时使用IPSec规则和Windows防火墙可以给网络提供更强大的安全保 护。
  对早期Windows防火墙而言,如果开启了某些服务,它将允许所有人访问这些服务,但是SP2的防火墙却可以精确的设置是对某台计算机或者某些子网 允许连接;如果没有开启服务,则所有连接都将被拒绝。设置方法:安全中心-防火墙设置-例外-编辑(某个服务)-更改范围-自定义列表。自定义列表的说 明,如果对某个IP提供服务,设置子网掩码为全1,例如192.168.0.3/255.255.255.255;如果针对某个子网提供服务,设置正确的 子网掩码,如192.168.0.1/255.255.255.128,多个项目之间用“,”号隔离。


  如上所述,ICF和基于应用程序的个人防火墙产品是不一样的。基于应用程序的个人防火墙可以控制每一个访问Internet的程序,但是不能限制某个应用程序访问网络,使用使用IPSec规则可以提供对计算机向外发出的报文进行过滤的功能。

六、部署文件和打印共享、网上邻居不再困难
  网络资源共享的一个重要应用是文件和打印共享,如果启用了防火墙是不是象2003或XPSP1中的防火墙一样,阻止了文件和打印共享服务呢?在 Windows XP SP22的防火墙下部署文件和打印共享服务非常简单,不必担心出现早期版本遇到的难堪的困难,如上图在“例外”选项上“程序和服务”列表中选择“文件及打 印机共享”就可以了。曾几何时,在XPSP1防火墙中如果要让防火墙和网上邻居共存需要映射多个端口,现在,如果在Windows XP SP2防火墙启用了“文件及打印机共享”,网上邻居不能正确显示的问题也迎刃而解。

  这样可能带来新问题!如果企业网络同时连接外部网络,比如INTERNET,对外开放这些端口是不安全的。Windows XP SP2防火墙考虑到了这个安全问题,在“编辑服务”选项中点击“更改范围”,在弹出的对话框中选择“仅我的网络(子网)”,这样设置后,文件和打印共享服务只对内部提供提供,而对外而言服务是不可见的,这样就安全多了。

七、没有人能PING到我的计算机
  在检查网络故障的使用通常用PING命令工具,PING一个IP确认该计算机是否存在,当你PING的时候,发送的是ICMP(Internet 控制消息协议 ,此通信用于错误和状态信息的传递) Echo messag信号,获得的回应是ICMP Echo Reply message信号。在默认情况下,indows xp p2防火墙不允许ICMP Echo messages 入站数据进入,所以也就不会回复ICMP Echo Reply message数据报文了。

  如果启用了TCP端口445(比如在“例外”中启用了“文件和打印机共享”),那么别人是可以PING到你的IP的。另外,在防火墙的高级选项卡中选择ICMP设置,并且选择了“允许传入回现请求”也可以使别人能够PING到你的IP。

八、关于远程协作和远程桌面
  通过Windows XP SP2防火墙实现远程协作的方法很简单,虽然远程协作使用的是动态端口。在防火墙设置对话框中的“例外”选项卡上“程序和服务”列表中选择“远程协作”项目,这样Windows自动监视并正确处理来自sessmgr.exe应用程序的所有通讯请求完成连接。
  Windows NetMeeting 的远程桌面要复杂一些,尽管在例外选项卡中有“远程桌面”选项,但是如果你选择这个选项,实际是开放了TCP的端口3389,也可能无法完成远程桌面连接,正确的方法是: 在 Windows 防火墙打开的情况下,在可以使用 Windows NetMeeting 的远程桌面共享功能之前,必须向 Windows 防火墙的“例外”选项卡上“程序和服务”列表中分别为 Windows NetMeeting 和 Mnmsrvc.exe( Drive:\Windows\System32 目录中)文件和conf.exe(Drive:\Program Files\NetMeeting 文件夹中)文件分别添加一个条目。

九、Windows XP SP2的防火墙日志的妙用

  日志记录可以帮助确定入站通信的来源,并提供有关被阻止的通信的详细信息。%Windir%\pfirewall.log 是默认的日志文件,这里记录的是成功的连接,看看都暴露了哪些信息,其中中文是作者说明文字。
pfirewall.log
#Version: 1.5
#Software: Microsoft Windows Firewall
#Time Format: Local
#Fields: date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info path
表头:日期 时间 状态 协议 原IP 目标IP 原端口 目标端口 数据包大小 TCP 控制标志 确认 其他数据 推入功能 重置连接 同步序列号 紧急指针字段有效 序列号 确认号 窗口大小 ICMP类型 ICMP代码 信息条目
2004-09-08 00:55:39 OPEN UDP 219.154.214.145 202.102.224.68 1026 53 - - - - - - - - -
查询DNS服务器,DNS服务器地址是202.102.224.68
2004-09-08 00:55:40 OPEN UDP 219.154.214.145 219.133.40.157 6001 8001 - - - - - - - - -
QQ开放UDP端口6001,目标地址219.133.40.157
2004-09-08 00:55:40 OPEN UDP 219.154.214.145 202.104.129.254 4000 8000 - - - - - - - - -
QQ开放UDP端口4000,目标地址202.104.129.254
2004-09-08 00:55:40 OPEN UDP 219.154.214.145 219.133.38.21 6001 8001 - - - - - - - - -
QQ开放UDP端口6001,目标地址219.133.38.21
2004-09-08 00:55:53 OPEN UDP 219.154.214.145 61.172.249.139 4000 8000 - - - - - - - - -
QQ开放UDP端口6001,目标地址61.172.249.139
2004-09-08 00:57:08 CLOSE UDP 219.154.214.145 202.102.224.68 1026 53 - - - - - - - - -
查询DNS服务器,DNS服务器地址是202.102.224.68
2004-09-08 00:57:08 CLOSE UDP 219.154.214.145 219.133.40.157 6001 8001 - - - - - - - - -
QQ通过UDP端口6001和目标地址219.133.40.157建立的通讯
2004-09-08 00:57:08 CLOSE UDP 219.154.214.145 219.133.38.21 6001 8001 - - - - - - - - -
QQ通过UDP端口6001和目标地址219.133.38.21建立的通讯

 从中可以看出,通过分析日志可以搜集某项应用软件服务端(如QQ服务器)的IP地址,检查是否有木马悄悄开放了后门,确定某个软件建立连接时所需要的端口号,还可以查询攻击者的来源地址。下面附录详细解释了日志表头信息。
字段 说明 示例
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
  注意:连字符 (-) 用于其中没有条目信息的字段。

十、谁关闭了防火墙
  大多数第三方防火墙软件提供商如Zone Labs、McAfee和Symantec公司都将在近期提供和SP2兼容的新版本防火墙软件。这些新版软件在安装的时候会自动禁用Windows防火墙,而在卸载时又会自动启用Windows防火墙。第三方厂商通过调用Windows Firewall API来实现这一功能。然而,既然防火墙软件可以这么做,其他病毒或木马等恶意代码就同样也可以。病毒或木马可以修改Windows防火墙程序,甚至干脆关闭它。而Zone Labs公司声明,他们采取了一些锁定技术来保证他们的防火墙软件不会被其他第三方软件关闭,除非你将整个防火墙卸载掉。
  以下命令显示防火墙状态和配置信息
  Netsh firewall show state
  Netsh firewall show config
  另外,如果防火墙被关闭,安全中心会显示安全警告!

  总结
  总的来看,相对于以前的Windows自带的防火墙SP2的防火墙拥有更高的防范性能,几乎拥有了其它个人防火墙的优点,所以Win XP SP2的防火墙是值得一试的,特别是针对个人用户而言。

0 评论:

发表评论