Windows XP防火墙深层探索(转载)

treesman 2003-03-28 03:56:44
人们现在已习惯在Internet上花费大量时间。随着DSL和宽带网络的普及,人们在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的家用或者专业版,并把它们安装起来。


此文章具体出自何处我不太清楚,是从我接收同事的硬盘中找到,当时格式为.txt。如有网友知道具体出自何处望告诉我一声!
...全文
77 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
HarryFishPotter 2003-09-05
  • 打赏
  • 举报
回复
ICF阻止了本机发送UDP数据包,我想允许发送数据到UDP端口27015,可是ICF非要我指定内部端口,可是内部端口根本就是随机的,我该怎么设置啊?
treesman 2003-03-29
  • 打赏
  • 举报
回复
up
whoamiyxzh 2003-03-28
  • 打赏
  • 举报
回复
good
csdnsock 2003-03-28
  • 打赏
  • 举报
回复
不错可以一看!好象还不够深入!收藏指数0.5
treesman 2003-03-28
  • 打赏
  • 举报
回复
ie属性-连接-设置-属性-高级-去掉选项即可
jampei 2003-03-28
  • 打赏
  • 举报
回复
在下再向您讨教如何把WindowsXP里预设的ICF取消﹐请注明步骤﹐感谢!
jampei 2003-03-28
  • 打赏
  • 举报
回复
写得挺详细﹐看了受益非浅。
007peng777 2003-03-28
  • 打赏
  • 举报
回复
我觉得写得不错

挺好的
treesman 2003-03-28
  • 打赏
  • 举报
回复
好象大家不太关心技术,而只想到专家分。我只好自己up
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击主界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V3.3版分为标准版、增强版以及在线修复版。其中的标准版以及增强版都包含完整的DirectX组件。除此之外,增强版中还额外包含了c++ Redistributable Package,因此增强版不但能解决DirectX组件的问题,而且还能解决c++组件异常产生的问题。增强版适合无法自行解决c++相关问题的用户使用。在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,主程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有自动更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自主选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了4项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“DirectX版本”选项卡可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XPWindows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行本程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7及后续用户,可以直接运行本程序。 同时鉴于Windows 8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。 本程序的官方博客地址为:http://blog.csdn.net/vbcom/article/details/6962388 所有的更新以及技术支持都可以到该博客上找到。

6,211

社区成员

发帖
与我相关
我的任务
社区描述
windows网络管理与配置
社区管理员
  • 网络管理与配置社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧