防火墙技术(一)

目前,保障网络安全的有效措施主要有:防火墙、身份认证、加密、数字签名和内容检查等。

防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务、实现网络和信息安全的基础设施。

在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全。

防火墙可以是非常简单的过滤器,也可以是精心配置的网关,它们原理相同,都是监测并过滤所有内部网和外部网之间的信息交换,保护内部网络敏感数据,并记录内外通讯的有关状态信息日志。

新一代的防火墙甚至可以阻止内部人员将敏感数据向外传输。

防火墙由软件和硬件构成,软件可以是专门软件、共享软件或免费软件,而硬件是支持软件的任何硬件。

防火墙的类型:
1)网络级防火墙
2)应用网关防火墙

网络级防火墙:一般是具有很强报文过滤能力的路由器,使用网络级防火墙,可以设置许多变量来允许或拒绝对站点的访问。这些变量包括:
1)源地址
2)协议
3)端口号
4)内容

基于路由器的防火墙非常流行,因为容易实现(只需插入机器并提供一些规则)。而且,大多数新路由器很好的承担了处理双工接口的工作(在防火墙中来自外部的IP报文将被转换成内部使用的真正协议的报文)。
基于路由器的防火墙是一个边界解决方案。即,路由器是外部设备,避免了打扰内部正常工作的可能。

基于路由器的防火墙的缺点:
1)许多路由器对欺骗性的攻击很脆弱;
2)当用户过多的严格强调过滤的时候,路由器的性能会迅速下降。
3)某些路由器的日志支持能力很差,这意味着用户需额外的软件和硬件来协助路由器完成连接。

防火墙的安全防护性能是由防火墙、用户设置的规则和计算机系统本身共同保证的。

应用-代理防火墙(应用网关)
当一个远程用户连接到一个允许应用网关的网络时,网关代理连接。在这样的连接中,IP报文不再向前转发进入网络内部;相反,IP报文发生某种转换,网关充当秘道和解释器。
优势:能阻止IP报文无限制的进入网络;
缺点:它们的开销比较大且影响了网关内部网络的工作。
代理必须为每一个网络应用进行配置,这些应用包括FTP、Telnet、HTTP、电子邮件、新闻等。另外,内部用户必须是具有代理帐号的客户。

确信信息系统防火墙工具包
TIS (Trusted Information Systems)确信信息系统
FWTK (Firewall Tool Kit)防火墙工具包
这个包对非商业应用免费,包括对下列服务的代理:
1)Telnet
2)FTP
3)Rlogin
4)发送Email
5)HTTP
6)X Windows系统
对于每一个这样的代理,系统管理员必须指定规则,编辑如下三个文件:
/etc/services 确定支持哪些服务及服务允许在哪个端口上。
/etc/inetd.conf inetd的配置文件。指定当外部请求某一特定服务时激活哪个特定服务程序。
/usr/local/etc/netperm-table FWTK文件。指定谁可以使用所提供的服务。
对访问许可可以使用两种方案:没有特别允许的访问被拒绝;没有特别禁止的访问得到允许。

用FWTK接受或拒绝访问非常容易,用户可使用地址和主机的大范围掩码来拒绝访问,也可以用星号来代表一个完整的地址范围(http-gw是HTTP的代理):
http-gw: userid  root
http-gw: directory /somewhere
http-gw: timeout 90
http-gw: default-httpd www.myserver.nethttp-gw: hosts  199.171.0.* -log(read write ftp)
http-gw: deny-hosts *

一般来说,防火墙越是工作在OSI模型的上层,其对数据包所能检查的信息就越多。因此该防火墙所消耗的处理器工作周期就越多;防火墙结构所所检查的数据包越是靠近OSI模型的上层,该防火墙结构所提供的安全保护等级就越高,因为在高层上能够获得更多的信息用于安全

防火墙的三种形式:
1)包过滤防火墙
对所有进出计算机系统的数据包进行检查,获得数据包头的内容,了解数据包的发送地址、目的地址、使用协议、TCP或者UDP的端口信息等,再将检查到的内容与用户设置的规则相比较,根据规则的匹配结果决定是否允许数据包的进出。
优点:对用户透明,效率也很高。
缺点:管理复杂,无足够的记录和报警机制、无法对连接进行全面控制、对拒绝服务攻击、缓冲区溢出攻击等高层次的攻击手段无能为力。只陷于对发送地址、目标地址和端口进行初步的安全控制。
包过滤的一个重要局限是它不能分辨好的和坏的用户,而只能区分好的包和坏的包。以前包过滤只能工作在黑白分明的安全策略的网中,即内部人是好的,外部人是坏的。
扩展包过滤技术,结合包过滤与智能决策系统的防火墙系统。有Stateful Protocol Inspection(协议状态检测)等。
在包过滤器所使用的默认规则的定义上,有两类思想:易于使用和安全第一。
“易于使用”:喜欢定义一条默认规则,即“允许一切”,该规则允许所有数据流,除非它被一条更高级规则明确拒绝。
“安全第一”:喜欢定义一条默认规则,即“拒绝一切”,除非数据流得到某条更高级规则的允许。

包过滤规则的配置可能很困难,因为这些规则是按照一定顺序进行检查的。在把包过滤规则输入到规则库时,必须特别小心,即使管理员设法按照一定的先后次序创建了一些规则,包过滤器还有一个内在的限制:
包过滤器仅检查数据 IP头和TCP头,它不可能知道一个真实的地址与一个伪造的地址之间的差别。若一个地址的出现满足包过滤规则,并同时满足其他规则的要求,则该数据包将被允许通过。

假设管理员细心创建了一个规则,指示数据包过滤器丢弃所有发来的未知源地址的数据包。这条包过滤规则虽然使黑客访问变得更加困难,但并非不可能。黑客只需用某个已知可信客户机的地址替代某个恶意数据包的实际源地址就客达到目的。这一形式的攻击通常叫IP地址欺骗(IP Address Spoofing),这种攻击来对付包过滤防火墙非常有效。

2)状态监测防火墙
与过滤型类似,又称为动态过滤型技术。增加了控制连接的能力,通过状态检测,当有新建的连接时,会要求与预先设置的规则相匹配,如满足要求,允许连接,并在内存中记录下该连接的信息,生成状态表。对该连接的后续数据包,只要符合状态表,就可以通过。
这种技术的性能和安全性都比较高,当需要打开新的端口时,可通过检测应用程序的信息与安全规则,动态地打开端口,并在传输结束时自动关闭端口,如结合用户认证方式,能够提供应用级的安全认证手段,安全控制力度更为细致。

3)应用级网关
即代理服务器,它适用于特定的互联网服务,如超文本传输(HTTP),远程文件传输(FTP)。关键是用一个网关形式的代理服务,进行连线动作拦截。代理服务位于内部网络用户和Internet之间,由它来处理两端间的连线方式,将用户对互联网络的服务请求,依据已制定的安全规则向外提交。而且,对于用户的网络服务请求,代理服务器并非全部提交给互联网上真正的服务器。因为它能根据安全规则和用户的请求,判断是否代理执行该请求,有些请求可能会被否决。这种控制机制可以有效的控制整个连线的动作,不会被客户或服务器端欺骗。
代理型防火墙技术相对比较安全,但处理效率较差,无法直接支持新的应用。

防火墙类型和OSI七层模型的对应关系:
应用层网关: 应用层、表示层
电路级网关: 会话层、传输层
包过滤   : 网络层、链路层、物理层。

防火墙通常是建立在TCP/IP模型基础上的,与OSI模型有所区别。在一个IP数据包中,最重要的区域有以下几个:
1)IP头
2)TCP头
3)应用级头
4)数据/净荷头

在IPv4的IP地址枯竭的情况下,提出了解决地址紧缺的一些方法:无类域间路由CIDR、可变长子网掩码VLSM、私有地址加网络地址翻译NAT等。
正因为如此,网络地址翻译已成为包过滤网关类防火墙产品的一项基本功能,防火墙使用NAT的另一个优点就是隐藏了内部的网络拓扑,某种程度上提升了网络的安全性。

静态网络地址翻译SNAT:指进行网络地址转换时,是一一对定的关系。
动态网络地址翻译DNAT:不同于SNAT,可用的合法IP地址是一个范围,而内部网络地址的范围大于合法IP的范围,在做地址转换时,如果合法IP都被占用,此时从内部网络的新的请求会由于没有合法地址可以分配而失败。改进它,引入了端口地址翻译PAT。
端口地址翻译PAT:指在进行网络地址翻译时,改变的不仅仅时网络地址,还会改变协议端口,因此称为端口地址翻译。在动态网络地址翻译的基础上,不仅以地址作为唯一的标识,又增加了源或目的端口作为标识的一部分。进行地址翻译时,优先还是NAT,当合法IP地址分配完后,对于新来的连接会重复使用已经分配过的合法IP,要区别此次NAT与上次NAT的数据包,就是通过端口地址加以区分。考虑到端口可以使用的范围为1024~65535,一个合法的IP可以实现6万多的NAT连接,通常可以满足几千个用户的需求。

静态地址翻译不需维护地址转换状态表,功能简单,性能比较好。动态转换荷端口转换则必须维护一个转换表,以保证能够对返回的数据包进行正确的反向转换,因此功能更强大,但需要的资源更多。

源网络地址转换SNAT:修改数据报中IP头部的数据源地址,通常发生在使用私有地址的用户在访问因特网时。
目标网络地址转换DNAT:修改数据报中IP头部的数据目的地址,通常发生在防火墙之后的服务器上。
静态、动态荷端口地址翻译侧重的是从实现的方式对NAT进行分类,而源地址、目标地址转换侧重的是从数据流向进行分类。

通常的边界路由器也能实现地址转换,但由于内存资源有限,在中型网络中使用路由器的NAT功能是不现实的,后果是使用一段时间后,资源将耗尽,死机。故NAT一般都是在防火墙上实现的。