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 空气隙防火墙

比如,外网和内网交换数据时不直接进行,而是都把数据写道一个共同可访问的磁盘之中,流出一个安全缝隙,保证安全。