网络安全(八)
本章要点:
防火墙原理;防火墙主要技术;防火墙体系结构;堡垒主机的作用及部署;数据包的过滤规则;状态检测数据包过滤原理。
第八章 防火墙
防火墙的原理
防火墙的概念
-
防火墙是建立在内外网络边界上的过滤封锁机制,内部网络被认为是安全和可信赖的,而外部网络(通常是Internet)被认为是不安全和不可信赖的。
-
防火墙的作用是防止不希望的、未经授权的通信进出被保护的内部网络,通过边界控制强化内部网络的安全政策。
-
防火墙的位置处于Internet和内部网络之间。防火墙隔离了内部网络和外部网络,内部网络中的主机将不再直接暴露给来自Internet的攻击
-
对整个内部网络的主机的安全管理就变成了防火墙的安全管理,这样就使安全管理变得更为方便,易于控制,也会使内部网络更加安全。
-
对于防火墙的要求
- 所有进出被保护网络的通信必须通过防火墙
- 所有通过防火墙的通信必须经过安全策略的过滤或者防火墙的授权
- 防火墙是穿不透的(防火墙本身是不可被侵入的)
防火墙的功能
-
一般功能
- 访问控制功能
- 内容控制功能
- 全面的日志功能
- 集中管理功能
- 自身的安全和可用性
-
附加功能
- 流量控制
- NAT
- VPN
边界保护机制
- 防火墙的安放位置是可信网络和不可信网络的边界,所保护的对象是网络中有明确闭合边界的网段
- 防火墙是可信网络通向不可信网络的唯一出口
- 防火墙是一种边界保护,仅对穿过边界的访问进行控制,对可信网络内部之间的访问无法控制
潜在的攻击和可能的对象
-
防火墙直接面对的是不可信网络可能的攻击。
-
攻击分类
- 入侵内部网络,包括未经授权地访问内部网络,盗取信息。
- 针对防火墙地攻击,使其失去功能。
- 拒绝服务攻击。
互操作性要求
- 防火墙是一种安全设备,同时也是一种网络设备,需要和其他网络设备配合,以适应各种网络环境,这样才能做到安全性和可用性的统一
- 防火墙除了安全防护的功能之外,还应具有网络功能,比如路由功能、VLAN的支持、ADSL的支持等。此外,还应做到尽量配置灵活,以适应复杂的网络环境
防火墙的局限性
- 不能防范不经防火墙的攻击
- 不能防止感染病毒的软件或文件的传输
- 不能防止数据驱动式攻击
- 不能防止内部用户的破坏
- 不能防备不断更新的攻击
防火墙的分类
-
实现技术方式分类
- 包过滤防火墙
- 应用网关防火墙
- 代理防火墙
- 状态检测防火墙
-
形态分类
- 软件防火墙
- 硬件防火墙
防火墙的访问效率和安全需求
-
防火墙的访问效率和安全需求是一对矛盾,应努力寻找平衡
-
访问效率一般是指防火墙的性能
-
防火墙的性能指标
-
吞吐量
- 指防火墙在不丢失数据包的情况下能达到的最大的转发数据包的速率
-
时延
- 指从入口处进入的输入帧的最后一个比特到达,到从出口发出的输出帧的第一个比特输出所用的时间间隔。能衡量出防火墙处理数据的快慢。
-
丢包率
- 指防火墙由于资源不足应转发但却未转发帧所占的百分比。是防火墙稳定性和可靠性的重要指标。
-
背对背
- 指从空闲状态开始,以达到传输介质最小合法间隔极限的传输速率发送相当数量的固定长度的帧,当出现第一个帧丢失时所发送的帧数。反映防火墙的缓存能力、对网络突发数据流量的处理能力。
-
并发连接数
- 指穿越防火墙的主机之间或主机与防火墙之间能同时建立的最大连接数。主要用来测试防火墙建立和维持TCP连接的性能,同时也能体现防火墙对来自客户端TCP连接请求的响应能力。
-
防火墙技术
包过滤技术
-
依据防火墙内事先设定的过滤规则,检查数据流中每个数据包头部,根据数据包的源地址、目的地址、TCP/UDP源端口号、TCP/UDP目的端口号及数据包头中的各种标志位等因素来确定是否允许数据包通过,其核心是安全策略即过滤规则的设计。
-
包过滤技术在防火墙上的应用非常广泛,因为CPU用来处理包过滤的时间相对很小,而且这种防护措施对用户透明,合法用户在进出网络时,根本感觉不到它的存在,使用起来很方便。
-
应用分类
- 路由设备在完成路由选择和数据转发之外,同时进行包过滤,这是目前较常用的方式
- 在一种称为屏蔽路由器的路由设备上启动包过滤功能。
应用网关技术
- 应用网关与包过滤技术不同,它不使用通用目标机制来允许各种不同种类的通信,而是针对每个应用使用专用目的的处理方法
- 应用网关技术是建立在应用层上的协议过滤,针对特别的网络应用服务协议即数据过滤协议,且能够对数据包进行分析并形成相关的报告
- 有些应用网关还存储Internet上那些被频繁使用的页面
- 当用户请求的页面在应用网关服务器缓存中存在时,服务器将检查所缓存的页面是否是最新的版本(即该页面是否已更新)。
- 如果是最新版本,则直接提交给用户;否则,到真正的服务器上请求最新的页面,然后再转发给用户
- 应用网关技术的缺点是需要为每种应用写不同的代码,维护比较困难,另外就是速度较慢
状态检测防火墙
- 状态检测防火墙应用广泛,它既提供了比包过滤防火墙更高的安全性和更灵活的处理,也避免了应用层网关防火墙带来的速度降低的问题。
- 要实现状态检测防火墙,最重要的是实现连接的跟踪功能
- 对于单一连接的协议来说相对比较简单,只需要数据包头的信息就可以进行跟踪。
- 对于一些复杂协议,除了使用一个公开端口的连接进行通信外,在通信过程中还会动态建立子连接进行数据传输,而子连接的端口信息是在主连接中通过协商得到的随机值。
- 因此对于此类协议,用包过滤防火墙就只能打开所有端口才能允许通信,但这会带来很大的安全隐患。
- 而对于状态检测防火墙,则能够进一步分析主连接中的内容信息,识别出所协商的子连接的端口而在防火墙上将其动态打开,连接结束时自动关闭,充分保证系统的安全。
电路级网关
- 电路级网关也被称为线路级网关,工作在会话层
- 在两个主机首次建立TCP连接时创立一个电子屏障。它作为服务器接收外来请求,转发请求;与被保护的主机连接时则担当客户机角色,起代理服务的作用
- 监视两主机建立连接时的握手信息,会话连接有效后网关仅复制、传递数据,而不进行过滤
- 电路级网关的防火墙的安全性比较高,但它仍不能检查应用层的数据包以消除应用层攻击的威胁。
代理服务器技术
- 代理服务器(proxy server)作用在应用层,用来提供应用层服务的控制,在内部网络向外部网络申请服务时起到中间转接作用
- 内部网络只接受代理提出的服务请求,拒绝外部网络其他结点的直接请求
- 具体地说,代理服务器是运行在防火墙主机上的专门的应用程序或者服务器程序
- 这些程序接受用户对Internet服务的请求(诸如FTP、Telnet),并按照一定的安全策略将它们转发到实际的服务中
- 代理提供代替连接并且充当服务的网关
小结
- 在实际应用当中,构筑防火墙的“真正的解决方案”很少采用单一的技术,通常是多种解决不同问题的技术的有机组合
- 大多数防火墙将数据包过滤和代理服务器结合起来使用。
防火墙体系结构
双重宿主机体系结构
- 双重宿主主机体系结构是围绕具有双重宿主的主机而构筑的。
- 该计算机至少有两个网络接口,这样的主机可以充当与这些接口相连的网络之间的路由器,并能够从一个网络到另一个网络发送IP数据包
- 防火墙内部的网络系统能与双重宿主主机通信,同时防火墙外部的网络系统(在因特网上)也能与双重宿主主机通信。
- 通过双重宿主主机,防火墙内外的计算机便可进行通信了,但是这些系统不能直接互相通信,它们之间的通信必须经过双重宿主主机的过滤和控制。
- 双重宿主主机的防火墙体系结构是比较简单的,它连接内部网络和外部网络。
- 双重宿主主机直接暴露在外部网络中,充当了堡垒主机的角色,这种体系的弱点是,一旦堡垒主机被攻破,使其成为一个路由器,那么外部网络就可以直接访问内部网络。
被屏蔽主机体系结构
- 双重宿主主机体系结构防火墙没有使用路由器。而被屏蔽主机体系结构防火墙则使用一个路由器把内部网络和外部网络隔离开。
- 该体系结构中包括堡垒主机。堡垒主机是Internet上的主机能连接到的惟一的内部网络上的系统。
- 任何外部的系统要访问内部的系统或服务都必须先连接到这台主机。因此堡垒主机要保持更高等级的主机安全。
- 在屏蔽路由器上设置数据包过滤策略,让所有的外部连接只能到达内部堡垒主机,比如收发电子邮件。
- 被屏蔽主机体系结构允许外部连接到内部堡垒主机,所以看上去比双重堡垒主机更不安全,但是路由器一般比主机有更高的安全性,所以这种结构比双重堡垒主机更具有可用性和安全性。但是这种结构相对比较复杂。
被屏蔽子网体系结构
-
被屏蔽子网体系结构将额外的安全层添加到被屏蔽主机体系结构,即通过添加周边网络更进一步地把内部网络和外部网络(通常是Internet)隔离开。
-
周边网络是一个被隔离的独立子网,充当了内部网络和外部网络的缓冲区,在内部网络与外部网络之间形成了一个“隔离带”。这就构成一个所谓的“非军事区”(DeMilitarized Zone,DMZ)。
-
DMZ是周边网络,是防火墙的重要概念,在实际应用中经常用到。
-
被屏蔽子网体系结构的最简单的形式是两个屏蔽路由器,每一个都连接到周边网络。一个位于周边网络与内部网络之间,另一个位于周边网络与外部网络(通常为Internet)之间。
-
有的屏蔽子网中还设有一堡垒主机作为惟一可访问点,支持终端交互或作为应用网关代理。
-
被屏蔽子网体系结构具有很高的安全性,所以被广泛采用。
-
优点
- 入侵者必须突破3个不同的设备(而且外部网络无法探测到)才能非法入侵内部网络、外部路由器、堡垒主机,还有内部路由器。
- 网络管理员可以保证内部网络是“不可见”的,并且只有在DMZ网络上选定的服务才对Internet开放。
- 内部网络上的系统不能直接通往Internet,保证了内部网络上的用户必须通过驻留在堡垒主机上的代理服务才能访问Internet
- 包过滤路由器直接将数据引向DMZ网络上所指定的系统,消除了堡垒主机双重宿主的必要。
- 能够支持比双重宿主堡垒主机更大的数据包吞吐量。
- NAT(网络地址变换)可以安装在堡垒主机上,从而避免在内部网络上重新编址或重新划分子网。
-
缺点
- 实施和管理比较复杂。
堡垒主机
-
堡垒主机得名于古代战争中用于防守的坚固的堡垒,它位于内部网络的最外层,像堡垒一样对内部网络进行保护。
-
在防火墙体系中,堡垒主机要高度暴露,是在Internet上公开的,是网络上最容易遭受非法入侵的设备。
-
防火墙设计者和管理人员需要致力于堡垒主机的安全,而且在运行期间对堡垒主机的安全给予特别的注意
-
构建要点
- 选择合适的操作系统
- 堡垒主机的安装位置。应该安装在不传输保密信息的网络上,最好它处于一个独立网络中,比如DMZ。
- 堡垒主机提供的服务。需要提供内部网络访问Internet的服务,内部主机可以通过堡垒主机访问Internet,另外内部网络也需要向Internet提供服务
- 保护系统日志。
- 监测和备份。
数据包过滤
数据包过滤的特点
-
数据包过滤的安全策略基于以下几种方式
- 数据包的源地址
- 数据包的目的地址
- 数据包的TCP/UDP源端口
- 数据包的TCP/UDP目的端口
- 数据包的标志位
- 用来传输数据包的协议
-
特点
- 一般的包过滤防火墙对数据包数据内容不做任何检查,而只检查数据包头信息。
- 数据包过滤在网络中起着重要的作用,可在单点位置为整个网络提供安全保护。
- 数据包过滤对用户是透明的,不要求内部网络用户进行任何配置。
- 数据包过滤路由器处于网络边界,很容易阻挡IP地址欺骗入侵。
-
局限性
- 不能进行内容级控制,如针对用户身份进行限制,不能做到对于一个Telnet服务器,禁止user1登录,而允许user2登录,因为用户名是包内容部分的信息,无法控制。
- 数据包的过滤规则制定比较复杂,需要针对不同的IP或者服务制定很多的安全规则,而且过滤规则会存在冲突或者漏洞,检查起来相当困难。
- 有些协议不适合包过滤。
数据包过滤的应用
-
IP协议
-
根据IP信息指定相应的安全策略
- IP源地址,32位
- IP目的地址,32位
- IP协议类型,辨别TCP数据包类型和ICMP数据包类型
- IP选项字段
-
-
TCP协议
-
针对数据包过滤,TCP层有几个重要的信息
- TCP源端口
- TCP目标端口
- TCP标志字段
-
可根据TCP协议中的的源端口和目的端口来制定安全规则,因为TCP的源端口通常是随机的,所以通常不使用源端口进行控制
-
通过检查TCP标志字段,可以辨认这个TCP数据包是SYN包,还是非SYN包
-
-
UDP协议
-
针对数据包过滤,UDP协议有几个重要的信息
- UDP源端口
- UDP目标端口
-
可根据UDP协议中的源端口和目的端口来制定安全规则,因为UDP的源端口通常是随机的,所以通常不使用源端口进行控制
-
-
ICMP协议
- ICMP协议主要用来进行错误信息和控制信息的传递
- ICMP报文易被伪造的缺陷,使得出现了不少基于ICMP的攻击软件
- 包过滤器一般禁止从外部网络来的到内部网络和包过滤器本身的ICMP包,这样就可以避免危险
过滤规则制定的策略
-
按地址过滤
- 按地址过滤是最简单的过滤方式,它只限制数据包的源地址和目的地址,而不必考虑协议
-
按服务过滤
- 按服务过滤,就是根据相应的TCP/UDP端口进行过滤
- 比如,禁止外部网络对内部网络的Telnet的访问,就需要检查数据包的目的端口和TCP标志位,如果是端口23,并且是SYN包,则拒绝这个包
- 实际应用中,一般使用的是目的端口过滤
-
对数据包做日志记录
- 数据包过滤路由器应该详细记录所有被过滤掉的数据包,这样就可以了解过滤规则阻止了哪些访问,也可以了解究竟哪些人试图违反规则
- 当然,记录所有通过的数据包也是一个保险的措施,虽然这样需要很多的存储空间,但是为了解决问题,这样做也是值得的
数据包过滤规则
-
在配置数据包过滤规则之前,需要明确要允许或者拒绝什么服务,并且需要把策略转换成为针对数据包的过滤规则
-
网络协议一般都是双向的,如果发送了一个请求或者一条命令,另一边的主机就会发出某种响应,所以在规划数据包过滤规则时,一定要注意数据包是双向的
-
基本的安全策略
-
默认接受
- 指除非明确地指定禁止某个数据包,否则数据包是可以通过的
-
默认拒绝
- 除非明确地指定允许某个数据包通过,否则数据包是不可以通过的。更安全!
-
-
构建步骤
- 建立安全策略(写出所允许的和禁止的任务)
- 将安全策略转化为数据包分组字段的逻辑表达式
- 用防火墙提供的过滤规则句法重写逻辑表达式并设置