防火墙的工作原理_第1页
防火墙的工作原理_第2页
防火墙的工作原理_第3页
防火墙的工作原理_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*防火墙的工作原理文章来源:天极黑客会打上我的主意吗?”这么想就对了,黑客就像钻鸡蛋缝的苍蝇一样,看到一丝从系统漏洞发出的光亮就会蠢蠢欲动!好,如何保护你的网络呢?计算机的高手们也许一张嘴就提 议你安装网络的防火墙,那么第一个问题就来了:到底什么是防火墙呢?什么是防火墙?防火墙就是一种过滤塞(目前你这么理解不算错),你可以让你喜欢的东西通过这个塞子,别的玩意都统统过滤掉。在网络的世界里,要由防火墙过滤的就是承载通信数据的通信包。天下的防火墙至少都会说两个词:Yes或者No。直接说就是接受或者拒绝。最简单的防火墙是以太网桥。但几乎没有人会认为这种原始防火墙能管多大用。大多数防火墙采用的技术和 标

2、准可谓五花八门。这些防火墙的形式多种多样:有的取代系统上已经装备的TCP/IP协议栈;有的在已有的协议栈上建立自己的软件模块;有的干脆就是独立的一套操作系统。还有一些应 用型的防火墙只对特定类型的网络连接提供保护(比如SMTP或者HTTP协议等)。还有一些基于硬件的防火墙产品其实应该归入安全路由器一类。以上的产品都可以叫做防火墙,因为他们 的工作方式都是一样的:分析出入防火墙的数据包,决定放行还是把他们扔到一边。所有的防火墙都具有IP地址过滤功能。这项任务要检查IP包头,根据其IP源地址和目标地址作出放行/丢弃决定。看看下面这张图,两个网段之间隔了一个防火墙,防火墙的一端有台 UNIX计算机,

3、另一边的网段则摆了台PC客户机。当PC客户机向UNIX计算机发起tel net请求时,PC的tel net客户程序就产生一个 TCP包 并把它传给本地的协议栈准备发送。 接下来,协议栈将这个TCP包 塞”到一个IP包里,然后通 过PC机的TCP/IP栈所定义的路径将它发送给 UNIX计算机。在这个例子里,这个IP包必须经 过横在PC和UNIX计算机中的防火墙才能到达 UNIX计算机。现在我们命令”(用专业术语来说就是配制)防火墙把所有发给UNIX计算机的数据包都给拒了,完成这项工作以后,心肠”比较好的防火墙还会通知客户程序一声呢!既然发向目标的IP数据没法转发,那么只有和UNIX计算机同在一个

4、网段的用户才能访问UNIX计算机了。还有一种情况,你可以命令防火墙专给那台可怜的PC机找茬,别人的数据包都让过就它不行。这正是防火墙最基本的功能:根据IP地址做转发判断。但要上了大场面这种小伎俩就玩不转了,由于黑客们可以采用IP地址欺骗技术,伪装成合法地址的计算机就可以穿越信任这个地址的防火墙了。不过根据地址的转发决策机制还是最基本和必需的。另外要注意的一点是, 不要用DNS主机名建立过滤表,对DNS的伪造比IP地址欺骗要容易多了。服务器TCP/UDP端口过滤仅仅依靠地址进行数据过滤在实际运用中是不可行的,还有个原因就是目标主机上往往运 行着多种通信服务,比方说,我们不想让用户采用tel ne

5、t的方式连到系统,但这绝不等于我们非得同时禁止他们使用SMTP/POP邮件服务器吧?所以说,在地址之外我们还要对服务器的TCP/ UDP端口进行过滤。比如,默认的tel net服务连接端口号是23。假如我们不许PC客户机建立对 UNIX计算机(在 这时我们当它是服务器)的tel net连接,那么我们只需命令防火墙检查发送目标是UNIX服务器的数据包,把其中具有 23目标端口号的包过滤就行了。这样,我们把IP地址和目标服务器TCP/UDP端口结合起来不就可以作为过滤标准来实现相当可靠的防火墙了吗?不,没这么简 单。客户机也有TCP/UDP端口TCP/IP是一种端对端协议,每个网络节点都具有唯一的

6、地址。网络节点的应用层也是这样,处于应用层的每个应用程序和服务都具有自己的对应地址”也就是端口号。地址和端口都具备了才能建立客户机和服务器的各种应用之间的有效通信联系。比如,tel net服务器在端口 23侦听入站连接。同时 telnet客户机也有一个端口号,否则客户机的IP栈怎么知道某个数据包是属于哪个应用程序的呢?由于历史的原因,几乎所有的TCP/IP客户程序都使用大于1023的随机分配端口号。只有UNIX计算机上的root用户才可以访问1024以下的端口,而这些端口还保留为服务器上的服务 所用。所以,除非我们让所有具有大于1023端口号的数据包进入网络,否则各种网络连接都没法正常工作。这

7、对防火墙而言可就麻烦了,如果阻塞入站的全部端口,那么所有的客户机都没法使用网 络资源。因为服务器发出响应外部连接请求的入站(就是进入防火墙的意思)数据包都没法经 过防火墙的入站过滤。反过来,打开所有高于1023的端口就可行了吗?也不尽然。由于很多服务使用的端口都大于1023,比如X client、基于RPC的NFS服务以及为数众多的非 UNIX IP产 品等(NetWare/IP )就是这样的。那么让达到1023端口标准的数据包都进入网络的话网络还能说是安全的吗?连这些客户程序都不敢说自己是足够安全的。双向过滤OK,咱们换个思路。我们给防火墙这样下命令:已知服务的数据包可以进来,其他的全部挡在

8、防火墙之外。比如,如果你知道用户要访问Web服务器,那就只让具有源端口号 80的数据包进入网络:不过新问题又出现了。首先,你怎么知道你要访问的服务器具有哪些正在运行的端口号呢?象HTTP这样的服务器本来就是可以任意配置的,所采用的端口也可以随意配置。如果你这样 设置防火墙,你就没法访问哪些没采用标准端口号的的网络站点了!反过来,你也没法保证进 入网络的数据包中具有端口号 80的就一定来自 Web服务器。有些黑客就是利用这一点制作自己 的入侵工具,并让其运行在本机的80端口!检查ACK位源地址我们不相信,源端口也信不得了,这个不得不与黑客共舞的疯狂世界上还有什么值 得我们信任呢?还好, 事情还没

9、到走投无路的地步。对策还是有的,不过这个办法只能用于 TCP协议。TCP是一种可靠的通信协议,可靠”这个词意味着协议具有包括纠错机制在内的一些特殊性质。为了实现其可靠性,每个TCP连接都要先经过一个 握手”过程来交换连接参数。还有,每个发送出去的包在后续的其他包被发送出去之前必须获得一个确认响应。但并不是对每个 TCP包都非要采用专门的 ACK包来响应,实际上仅仅在 TCP包头上设置一个专门的位就可以 完成这个功能了。所以,只要产生了响应包就要设置 ACK位。连接会话的第一个包不用于确认, 所以它就没有设置 ACK位,后续会话交换的 TCP包就要设置 ACK位了。举个例子,PC向远端的 Web

10、服务器发起一个连接,它生成一个没有设置ACK位的连接请求包。当服务器响应该请求时,服务器就发回一个设置了 ACK位的数据包,同时在包里标记从客户机所收到的字节数。然后客户机就用自己的响应包再响应该数据包,这个数据包也设置了 ACK位并标记了从服务器收到的字节数。通过监视ACK位,我们就可以将进入网络的数据限制在响应包的范围之内。于是,远程系统根本无法发起TCP连接但却能响应收到的数据包了。这套机制还不能算是无懈可击,简单地举个例子,假设我们有台内部Web服务器,那么端口 80就不得不被打开以便外部请求可以进入网络。还有,对UDP包而言就没法监视 ACK位了,因为UDP包压根就没有 ACK位。还

11、有一些TCP应用程序,比如 FTP,连接就必须由这些服务 器程序自己发起。FTP带来的困难一般的In ternet服务对所有的通信都只使用一对端口号,FTP程序在连接期间则使用两对端口号。第一对端口号用于 FTP的 命令通道”提供登录和执行命令的通信链路,而另一对端口号 则用于FTP的数据通道”提供客户机和服务器之间的文件传送。在通常的FTP会话过程中,客户机首先向服务器的端口 21(命令通道)发送一个TCP连接 请求,然后执行LOGIN、DIR等各种命令。一旦用户请求服务器发送数据,FTP服务器就用其20端口(数据通道)向客户的数据端口发起连接。问题来了,如果服务器向客户机发起传送数据 的连

12、接,那么它就会发送没有设置 ACK位的数据包,防火墙则按照刚才的规则拒绝该数据包同 时也就意味着数据传送没戏了。通常只有高级的、也就是够聪明的防火墙才能看出客户机刚才 告诉服务器的端口,然后才许可对该端口的入站连接。UDP端口过滤好了,现在我们回过头来看看怎么解决 UDP问题。刚才说了, UDP包没有ACK位所以不 能进行ACK位过滤。UDP是发出去不管的 不可靠”通信,这种类型的服务通常用于广播、路 由、多媒体等广播形式的通信任务。NFS、DNS、WINS、NetBIOS-over-TCP/IP 和NetWare/IP都使用UDP。看来最简单的可行办法就是不允许建立入站UDP连接。防火墙设置

13、为只许转发来自内部接口的UDP包,来自外部接口的 UDP包则不转发。现在的问题是,比方说,DNS名称解析请求就使用UDP,如果你提供 DNS服务,至少得允许一些内部请求穿越防火墙。还有IRC这样的客户程序也使用 UDP,如果要让你的用户使用它,就同样要让他们的UDP包进入网络。我们能做的就是对那些从本地到可信任站点之间的连接进行限制。但是,什么叫可信任!如果黑客 采取地址欺骗的方法不又回到老路上去了吗?有些新型路由器可以通过 记忆”出站UDP包来解决这个问题:如果入站UDP包匹配最近出站UDP包的目标地址和端口号就让它进来。如果在内存中找不到匹配的UDP包就只好拒绝它了!但是,我们如何确信产生

14、数据包的外部主机就是内部客户机希望通信的服务器呢?如果 黑客诈称DNS服务器的地址,那么他在理论上当然可以从附着 DNS的UDP端口发起攻击。只 要你允许DNS查询和反馈包进入网络这个问题就必然存在。办法是采用代理服务器。所谓代理服务器,顾名思义就是代表你的网络和外界打交道的服务器。代理服务器不允许 存在任何网络内外的直接连接。它本身就提供公共和专用的DNS、邮件服务器等多种功能。代理服务器重写数据包而不是简单地将其转发了事。给人的感觉就是网络内部的主机都站在了网 络的边缘,但实际上他们都躲在代理的后面,露面的不过是代理这个假面具。小结IP地址可能是假的,这是由于IP协议的源路有机制所带来的,这种机制告诉路由器不要为数据包采用正常的路径,而是按照包头内的路径传送数据包。于是黑客就可以使用系统的IP地址获得返回的数据包。有些高级防火墙可以让用户禁止源路由。通常我们的网络都通过一条路 径连接ISP,然后再进入In ternet。这时禁用源路由就会迫使数据包必须沿着正常的路径返回。还有,我们需要了解防火墙在拒绝数据包的时候还做了哪些其他工作。比如,防火墙是否 向连接发起系统发回了主机不可到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论