1、概述
防火墙时由硬件和软件组成的系统,处于安全网络和不安全网络之间,根据系统管理员设置的访问访问规则,
防火墙对包有3种处理方式
- 允许数据流通过
- 拒绝数据流通过,需要回复
- 丢弃数据流,不需要回复
1.1 防火墙的构成:
内部网络----过滤器----网关----过滤器----外部网络
过滤器:阻断某种类型的数据传输
网关:一台或多台机器组成,用来提供中继服务,网关所在的网络称为非军事区(DMZ)
外部过滤器用来保护网关,内部过滤器用来防止网关被攻破时的伤害,实际中可能缺失部分组件,根据具体防火墙而定
2、防火墙的类型和结构
2.1 防火墙分类
防火墙的类型主要有3种:
- 包过滤防火墙,网络层
- 电路级网关防火墙,会话层
- 应用级网关防火墙,应用层
OSI网络模型有7层,自顶向下为应用层、表示层、会话层、传输层、网络层、链路层、物理层。防火墙越靠近顶层,所能过滤的信息越多。
2.2 网络地址转换(NAT)
IP地址分为以下四大类:
IP地址中有私有IP地址,不再外部网络中使用,用在内网中。比如,c类地址的地址范围为192.0.1.1-223.255.255.254。私有IP是192.168.0.0-192.168.255.255。所以我们使用的很多IP地址都是192.168开头,这是分配给中小网络的内部IP。
NAT的作用就是转换内网和外网的IP。
内网到外网时,只需要更改源IP地址为NAT路由器的公网IP
外网到内网时,则根据转换表替换路由器公网IP为内网IP
转换表
转换表为二元组,<内部地址,外部地址>
内部地址表示私有IP
外部地址表示与拥有私钥IP的机器通讯的外部机器IP地址
PAT
端口地址转换
如果内网IP使用完了,则可以使用同一内网IP,不同端口号来区分内部机器。
比如有两台内部机器的IP为192.168.10.1,但通信端口号为300、301
此时转换表有如下信息
<内部地址,内部端口,外部地址,外部端口,NAT端口,协议>
内部地址:私有IP
内部端口:上述例子的300或301
外部地址:与拥有私钥IP的机器通讯的外部机器IP地址
外部端口:一般为通信协议使用的默认端口
NAT端口:一般为一个递增的数
2.3 静态包过滤防火墙
工作在网络层,对每个经过内网和外网的包进行规则过滤,根据规则来确定对IP包的操作。
比如拒绝来自内部网络的telnet服务,则屏蔽来目标地址为内部网络,端口号为23的所有包
一般过滤的规则可以根据1、数据源地址,2、目的地址,3、应用和协议,4、源端口地址,5、目的点口号等
包过滤器仅检查IP头和TCP头,无法检测IP地址欺骗
优点:
1、对网络性能影响小
2、成本低
缺点:
1、安全性低
2、缺少状态感知能力
3、容易遭受IP欺骗攻击
4、创建访问规则比较困难
2.4 动态包过滤防火墙
动态包过滤防火墙时普遍使用的一种防火墙技术,既有很高的安全性,又具有完全的透明性
典型的动态包过滤防火墙工作在网络层,更高级的工作在传输层
在对包过滤方面,与普通的包过滤防火墙很相似,如果数据包满足规则,如数据包的端口号、ip地址是可接受的,则被允许通过。但是有一个不同点:它首先对外出的数据包身份进行记录,此后若有相同连接的数据包进入防火墙,它就直接允许这些数据包通过。因此,它可以用来处理TCP和UDP协议。
实现方式主要分为两种:
1、实时改变过滤器的规则集。但比较复杂难以实现
2、所有进入防火墙的呼叫将中止于防火墙,然后防火墙再与目标主机简历新的连接。
比如下面的防火墙部分包括了中间的两个IP地址
防火墙
1.2.3.4 ----> 5.6.7.8<---->1.2.3.4 ----> 5.6.7.8
优点:
1、采用SMP时,对网络性能影响很小
2、动态包过滤防火墙比静态更安全
3、由于建立了连接之后保存了连接状态,这样性能比静态要好一些
4、本身成本也很低
缺点:
2.5 电路级网关
工作在会话层。电路级网关的作用就像是中继计算器,在两个连接之间来回的复制数据。这一点和感觉和动态包过滤防火墙的第二种实现有些相似。它除了对包进行过滤检查之外,还要增加对连接过程中的握手信息及序列号合法性的验证。比包过滤检查的数据更多,也更安全。
检查的数据包括
1、源地址 2、目的地址 3、应用或协议 4、源端口号 5、目的端口号 6、握手信息及序列号
可以发现和包过滤防火墙相比,电路级网关会查看握手信息以及序列号,当会话过程中SYN标志、ACK标志、序列号等符合逻辑时才会判定会话时合法的。
电路级网关会与外部和内部建立两个会话,在这两个会话间传递信息,让两边感觉字节在和对方通信
优势:
比包过滤能得到更多的信息,但效率也稍微低一些
缺点:
1、无法抵御应用层攻击
2、当增加了内部新程序或资源时,往往需要对许多电路进行代码修改
2.6 应用级网关
应用级网关为特定的应用服务编写特定的代理程序。这些程序称为服务代理。
这种网关作用在应用层,而且,需要针对每个特定的服务运行一个特定的代理,它只能对特定服务所生成的数据包进行过滤。
优点:更安全,功能强大
缺点:配置繁琐,性能不高
2.7 状态检测防火墙
着眼于跟踪会话状态、网络通信状态等,可以分析所有7个层的数据包。
优点:
具备动态包过滤的所有优点,同时具有更高的安全性,应为增加了状态检测机制,能抵御利用协议细节的攻击
没有打破服务器客户端的结构(相对应用级网关而言)
提供动态包过滤功能
缺点:
仅能提供较低水平的安全性
2.8 切换代理
动态过滤器和一个电路级代理的结合。许多实现先工作在OSI的会话层,连接完成后,再切换回动态包过滤模式
2.9 空气隙防火墙
比如,外网和内网交换数据时不直接进行,而是都把数据写道一个共同可访问的磁盘之中,流出一个安全缝隙,保证安全。