网络安全 频道

Windows XP防火墙深层探索

网络安全问题现在已经越来越突出,选择一种防火墙产品是很有必要的。基于应用程序的防火墙在使用上相当麻烦,而且一般都非常占用系统资源。Windows XP集成了互联网连接防火墙(Internet Connection Firewall)这一新特性,它到底可以为我们做什么呢?

人们现在已习惯在Internet上花费大量时间。随着ADSL和宽带网络的普及,人们在Internet上的时间越来越长,个人电脑的安全问题将会变得越来越突出。有统计表明黑客们在每天24小时扫描拨号连接的用户,当然他们的目标并不是我们这些普通上网用户,而是那些使用VPN在家办公的用户。突破这些用户的个人电脑总比突破层层设防的公司网络要容易得多。如果你是使用DSL或其他宽带网络的用户,那么你的危险将更大了,因为在使用DSL后,你的IP地址将很长时间不变,这无疑给那些黑客带来了很大的便利。我们当然可以选用一些现有的个人防火墙产品,比如说Norton的个人防火墙产品,Zone Labs的ZoneAlarm,以及国内厂商开发的天网防火墙等等。这些个人防火墙产品依据的防黑客原理通常不一样,例如Norton的Personal Firewall(个人防火墙)是基于应用程序的(Application Level)。基于应用程序的防火墙在使用上相当麻烦,因为你必须要为每一个访问Internet的程序设置策略。而随着策略的增多,防火墙的效率也逐步下降,况且过多的策略也会相互矛盾、影响,给系统安全带来漏洞。更糟糕的是,这些个人防火墙产品都非常占用系统资源。

Windows XP号称是随着Windows发布以来最伟大的升级,Windows XP给我们带来了很多新的特性,互联网连接防火墙(Internet Connection Firewall,以下简称ICF)就是其中的一个新的特性。下面我们就来谈谈这个ICF,看看它到底能为我们做什么(注:我们在谈ICF的时候都是以Norton的Personal Firewall来做参考和对比的,原因有二:其一,Norton的产品无论在国外还是在国内都是第一流的产品;其二,Norton的这款产品也可以代表这一类产品的技术特点)。

ICF的工作原理
ICF就像一个在你的个人电脑和外部Internet世界建立的虚拟盾牌,它可以让你请求的数据通过、而阻碍你没有请求的数据包,是一个基于包的防火墙。黑客们的攻击基本上都是由Ping一个IP地址开始的。当Ping通之后通常都是使用一些软件来进行端口扫描。攻击一台个人电脑和攻击一台主机还是有一点不同的。攻击主机时目标通常是早已锁定的,即便Ping不通也不会认为目标主机已经关机了;但是攻击个人电脑就不同了,通常黑客们是通过扫描一段IP地址开始来锁定目标,或者是个人电脑的用户在使用ICQ之类的软件时暴露了自己的IP地址。对于第一种的情况,Ping不通的IP地址通常被认为没有使用而忽略过去。所以,ICF的第一个功能就是不响应Ping命令,而且,ICF还禁止外部程序对本机进行端口扫描,抛弃所有没有请求的IP包。个人电脑同服务器不一样,一般不会提供例如Ftp、Telnet等服务,这样可以被黑客们利用的系统漏洞就很少。所以,ICF可以在一定的程度上很好地保护我们的个人电脑。

ICF是通过保存一个表格,记录所有自本机发出的目的IP地址、端口、服务以及其他一些数据来达到保护本机的目的。 当一个IP数据包进入本机时,ICF会检查这个表格,看到达的这个IP数据包是不是本机所请求的,如果是就让它通过,如果在那个表格中没有找到相应的记录就抛弃这个IP数据包。下面的例子可以很好地说明这个原理。当用户使用Outlook Express来收发电子邮件的时侯,本地个人机发出一个IP请求到POP3邮件服务器。ICF会记录这个目的IP地址、端口。当一个IP数据包到达本机的时候,ICF首先会进行审核,通过查找事先记录的数据可以确定这个IP数据包是来自我们请求的目的地址和端口,于是这个数据包获得通过。当使用Outlook客户端邮件程序和Exchange邮件服务器时情况有所不同。一旦有新的邮件达到Exchange邮件服务器时,Exchange就会自动发一个IP数据包到Outlook客户机来通知有新的邮件到达。这种通知是通过RPC Call来实现的。当Exchange的IP数据包到达客户机时,客户机的ICF程序就会对这个IP包进行审核发现本机并没有对这个地址和端口发出IP请求,所以这个IP包就会被抛弃,客户机当然就不会收到发自Exchange邮件服务器的新邮件通知。手动让Outlook去接收Exchange邮件服务器上的新邮件当然是可以的。

ICF的局限性
那么,ICF不能做什么?ICF可不可以完全替代现有的个人防火墙产品?ICF是通过记录本机的IP请求来确定外来的IP数据包是不是“合法”,这当然不可以用在服务器上。为什么呢?服务器上的IP数据包基本上都不是由服务器先发出,所以ICF这种方法根本就不可以对服务器的安全提供保护。当然你也可以通过相应的设置让ICF忽略所有发向某一端口的数据包,例如80端口。那么发向80端口的所有数据包都不会被ICF抛弃。从这种意义上讲80端口就成为不设防的端口。这样的防火墙产品是不可能用在应用服务器上的,服务器上的防火墙产品都是基于建立各种策略来审核外来的IP数据包。ICF和基于应用程序的个人防火墙产品也是不一样的。基于应用程序的个人防火墙会记录每一个访问Internet的程序,例如,通过设置可以让IE有权来访问Internet而Netscape的Navigator没有权限来访问Internet,即便两个程序的目的IP地址和端口都是一样的。Norton的个人防火墙(Personal Firewall)就是这样一个典型的产品。简而言之,ICF没法提供基于应用程序的保护,也没法建立基于IP包的包审核策略。所以,ICF既不能完全替代现有的个人防火墙产品,也没有办法很好地工作在应用服务器上。

如何选择
那我们应该如何选择?笔者认为,Norton的Personal Firewall可以提供全方面的保护,即便这种保护是建立在繁琐的设定基础上的。在它能成功地为你提供一次有效的防护之前,会给你带来足够的烦恼。ICF并不能提供完全无懈可击的防护,但是ICF对个人电脑提供防护是足够的。在使用Shield Up对装有ICF的个人电脑进行端口扫描后,Shield Up 给出了“最安全模式”(Full Stealth Mode)的评价,这也是Shield Up对安全评价的最高等级。况且,ICF是Windows XP内建的功能,占用的资源相当少且不用花额外的钱去购买。其实从ICF受益最多的应该是那些仍然在使用Modem上网的朋友,实际上这部分用户占了50%以上,而在国内绝大部分的用户都是用Modem上网的。用Modem上网有其自身的特点,首先,你上网的时间不会太长,一般在几小时上下(包月的除外)。其次,每次建立连接后拨号服务器都会分配一个新的IP地址给你,长时间占用一个相同的IP的可能性应该很低。比起使用DSL和宽带的用户来讲,用Modem上网本身就安全了很多。所以,使用一个重量级的防火墙实在是没有太多的意义。而ICF则刚刚好,它既提供了一定的保护,而且又不太占用资源,真的是“刚刚好”!

怎样使用ICF
我们谈了这么多,那ICF到底该怎样使用?当你建立一个新的连接的时候,向导程序就会问你是否要激活ICF。在每一个连接的属性→高级选项中也可以让你选择激活或者取消ICF功能。在你激活ICF之后,在高级选项的下部就会出现“设置”按钮,单击设置就可以对ICF进行进一步的设置。ICF的设置主要有三部分:第一部分是服务项。通过设定这一部分可以让ICF对某些服务不进行审核。TCP/IP的服务都是由端口来区分的,你可以分别对TCP、UDP或者IP Protocol进行设置,在这一项中已经有了一些可选的缺省设置。当然你可以建立自己的设置。第二部分是关于日志的。ICF可以把它所抛弃的IP数据包以及获准通过的IP数据包都记录在案以便可以让你进行进一步的分析。第三部分就是关于ICMP的,ICMP通常用于Ping、Tracert程序以及路由的动态实现,我的建议是禁止所有的ICMP响应除非你有特别的需要。

定期分析日志可以发现潜在的安全问题,ICF的日志分为两部分:一部分是ICF审核通过的IP数据包,而另一部分就是ICF抛弃的IP数据包。日志一般存于Windows目录之下,文件名是pfirewall.log。其文件格式符合W3C扩展日志文件格式(W3C Extended Log File Format),分为两部分,分别是文件头(Head Information)和文件主体(Body Information)。文件头主要是关于pfirewall.log这个文件的说明,需要注意的主要是文件主体部分。文件主体部分记录有每一个成功通过ICF审核或者被ICF所抛弃的IP数据包的信息,包括源地址、目的地址、端口、时间、协议以及其他一些信息。理解这些信息需要较多的TCP/IP协议的知识。

在实际的使用中应尽量避免在局域网中使用ICF,它可能会给一些网络应用带来影响。在个人电脑中使用也可能会对一些程序的运行带来影响。例如,OICQ的“语音世界”功能就是建立在双方交互的基础上的,而ICF会影响这些交互过程从而使得连接无法建立。解决这样的问题也很简单,一种当然是取消ICF,但这不是推荐的方法。另一种方法就是找到到底OICQ使用哪个端口来实现语音功能,在前面介绍的属性→高级→设置→服务中来添加一项自定义设置从而使ICF忽略这个端口的检测。这样,OICQ的语音功能就可以正常使用了。

总之,ICF是Windows XP提供的一项新的功能,它并不是用来取代现有的个人防火墙产品,但是ICF能够为个人电脑提供相当的保护。我们为获得在网络上的安全所需要做的就是在建立连接的时候选择使用ICF,在需要的时候作出必要的设定,并且定期查看日志。当然,最先要做的就是购买Windows XP的家用或者专业版,并把它们安装起来。
0
相关文章