什么叫three legged firewall?还有two legged firewall?有什么用处
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 11:24:06
什么叫three legged firewall?还有two legged firewall?有什么用处
什么叫three legged firewall?还有two legged firewall?有什么用处
什么叫three legged firewall?还有two legged firewall?有什么用处
Firewall即防火墙,一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障,是一种获取安全性方法的形象说法.防火墙可以被安全在一个单独的路由器中,用来过滤不想要的信息包,也可以被安装在路由器和主机中,发挥更大的网络安全保护作用.防火墙被广泛用来让用户在一个安全屏障后接入互联网,还被用来把一家企业的公共网络服务器和企业内部网络隔开.所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术.防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络.换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信,可以被用来保护企业内部网络某一个部分的安全.例如,一个研究或者会计子网可能很容易受到来自企业内部网络里面的窥探.防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成.
防火墙有不同类型.一个防火墙可以是硬件自身的一部分,你可以将因特网连接和计算机都插入其中.防火墙也可以在一个独立的机器上运行,该机器作为它背后网络中所有计算机的代理和防火墙.最后,直接连在因特网的机器可以使用个人防火墙.
Study on Dynamic Access Control in Hierarchical Firewall System
分级防火墙系统中动态访问控制技术研究
Research on Firewall System with Tunnel Proxy Based on Enhanced Layer Two Tunneling Protocol
基于增强型第二层隧道协议的隧道代理防火墙系统的研究
Especially in the VPN(Virtual Private Network)topology, because of the VPN’s tunneling, private routing and cipher technology, there are two embarrassments for the protection of the internal network. One is the internal services could be uncovered in the internet by the VPN’s tunneling, the other is firewall and IDS(Intrusion Detection System)could not completely analyze the network packet content because of the VPN’s private routing and cipher technology.
尤其在虚拟私有网络(VPN:Virtual Private Network)拓扑中,由于VPN的隧道技术、私有路由技术和加密技术,一方面使得内部服务群暴露在Internet中,另一方面增加防火墙和入侵检测系统(IDS:Intrusion Detection System)保护内部网络的难度.
防火墙配置有三种:Dual-homed方式、Screened- host方式和Screened-subnet方式.
Dual-homed方式最简单. Dual-homedGateway放置在两个网络之间,这个Dual-omedGateway又称为bastionhost.这种结构成本低,但是它有单点失败的问题.这种结构没有增加网络安全的自我防卫能力,而它往往是受“黑客”攻击的首选目标,它自己一旦被攻破,整个网络也就暴露了.
Screened-host方式中的Screeningrouter为保护Bastionhost的安全建立了一道屏障.它将所有进入的信息先送往Bastionhost,并且只接受来自Bastionhost的数据作为出去的数据.这种结构依赖Screeningrouter和Bastionhost,只要有一个失败,整个网络就暴露了.
Screened-subnet包含两个Screeningrouter和两个Bastionhost.在公共网络和私有网络之间构成了一个隔离网,称之为”停火区”(DMZ,即DemilitarizedZone),Bastionhost放置在”停火区”内.这种结构安全性好,只有当两个安全单元被破坏后,网络才被暴露,但是成本也很昂贵.
防火墙工作原理简介
防火墙就是一种过滤塞(目前你这么理解不算错),你可以让你喜欢的东西通过这个塞子,别的玩意都统统过滤掉.在网络的世界里,要由防火墙过滤的就是承载通信数据的通信包.
天下的防火墙至少都会说两个词:Yes或者No.直接说就是接受或者拒绝.最简单的防火墙是以太网桥.但几乎没有人会认为这种原始防火墙能管多大用.大多数防火墙采用的技术和标准可谓五花八门.这些防火墙的形式多种多样:有的取代系统上已经装备的TCP/IP协议栈;有的在已有的协议栈上建立自己的软件模块;有的干脆就是独立的一套操作系统.还有一些应用型的防火墙只对特定类型的网络连接提供保护(比如SMTP或者HTTP协议等).还有一些基于硬件的防火墙产品其实应该归入安全路由器一类.以上的产品都可以叫做防火墙,因为他们的工作方式都是一样的:分析出入防火墙的数据包,决定放行还是把他们扔到一边.
所有的防火墙都具有IP地址过滤功能.这项任务要检查IP包头,根据其IP源地址和目标地址作出放行/丢弃决定.看看下面这张图,两个网段之间隔了一个防火墙,防火墙的一端有台UNIX计算机,另一边的网段则摆了台PC客户机.
当PC客户机向UNIX计算机发起telnet请求时,PC的telnet客户程序就产生一个TCP包并把它传给本地的协议栈准备发送.接下来,协议栈将这个TCP包“塞”到一个IP包里,然后通过PC机的TCP/IP栈所定义的路径将它发送给UNIX计算机.在这个例子里,这个IP包必须经过横在PC和UNIX计算机中的防火墙才能到达UNIX计算机.
http://baike.baidu.com/view/3067.htm
客户机也有TCP/UDP端口
TCP/IP是一种端对端协议,每个网络节点都具有唯一的地址.网络节点的应用层也是这样,处于应用层的每个应用程序和服务都具有自己的对应“地址”,也就是端口号.地址和端口都具备了才能建立客户机和服务器的各种应用之间的有效通信联系.比如,telnet服务器在端口23侦听入站连接.同时telnet客户机也有一个端口号,否则客户机的IP栈怎么知道某个数据包是属于哪个应用程序的呢?
由于历史的原因,几乎所有的TCP/IP客户程序都使用大于1023的随机分配端口号.只有UNIX计算机上的root用户才可以访问1024以下的端口,而这些端口还保留为服务器上的服务所用.所以,除非我们让所有具有大于1023端口号的数据包进入网络,否则各种网络连接都没法正常工作.
这对防火墙而言可就麻烦了,如果阻塞入站的全部端口,那么所有的客户机都没法使用网络资源.因为服务器发出响应外部连接请求的入站(就是进入防火墙的意思)数据包都没法经过防火墙的入站过滤.反过来,打开所有高于1023的端口就可行了吗?也不尽然.由于很多服务使用的端口都大于1023,比如X client、基于RPC的NFS服务以及为数众多的非UNIX IP产品等(NetWare/IP)就是这样的.那么让达到1023端口标准的数据包都进入网络的话网络还能说是安全的吗?连这些客户程序都不敢说自己是足够安全的.
双向过滤
OK,咱们换个思路.我们给防火墙这样下命令:已知服务的数据包可以进来,其他的全部挡在防火墙之外.比如,如果你知道用户要访问Web服务器,那就只让具有源端口号80的数据包进入网络:
不过新问题又出现了.首先,你怎么知道你要访问的服务器具有哪些正在运行的端口号呢? 象HTTP这样的服务器本来就是可以任意配置的,所采用的端口也可以随意配置.如果你这样设置防火墙,你就没法访问哪些没采用标准端口号的的网络站点了!反过来,你也没法保证进入网络的数据包中具有端口号80的就一定来自Web服务器.有些黑客就是利用这一点制作自己的入侵工具,并让其运行在本机的80端口!
检查ACK位
源地址我们不相信,源端口也信不得了,这个不得不与黑客共舞的疯狂世界上还有什么值得我们信任呢?还好,事情还没到走投无路的地步.对策还是有的,不过这个办法只能用于TCP协议.
TCP是一种可靠的通信协议,“可靠”这个词意味着协议具有包括纠错机制在内的一些特殊性质.为了实现其可靠性,每个TCP连接都要先经过一个“握手”过程来交换连接参数.还有,每个发送出去的包在后续的其他包被发送出去之前必须获得一个确认响应.但并不是对每个TCP包都非要采用专门的ACK包来响应,实际上仅仅在TCP包头上设置一个专门的位就可以完成这个功能了.所以,只要产生了响应包就要设置ACK位.连接会话的第一个包不用于确认,所以它就没有设置ACK位,后续会话交换的TCP包就要设置ACK位了.
举个例子,PC向远端的Web服务器发起一个连接,它生成一个没有设置ACK位的连接请求包.当服务器响应该请求时,服务器就发回一个设置了ACK位的数据包,同时在包里标记从客户机所收到的字节数.然后客户机就用自己的响应包再响应该数据包,这个数据包也设置了ACK位并标记了从服务器收到的字节数.通过监视ACK位,我们就可以将进入网络的数据限制在响应包的范围之内.于是,远程系统根本无法发起TCP连接但却能响应收到的数据包了.
这套机制还不能算是无懈可击,简单地举个例子,假设我们有台内部Web服务器,那么端口80就不得不被打开以便外部请求可以进入网络.还有,对UDP包而言就没法监视ACK位了,因为UDP包压根就没有ACK位.还有一些TCP应用程序,比如FTP,连接就必须由这些服务器程序自己发起.