防火墙安全策略

包过滤技术基础

包过滤技术简介:

对需要转发的数据包,先获取报头信息,然后和设定的规则进行比较,根据比较的结果对数据包进行转发或丢弃。

实现包过滤的核心技术是访问控制列表。

  • 包过滤作为一种网络安全保护机制,主要用于对网络中各种不同的流量是否转发做一个最基本的控制。
  • 传统的包过滤防火墙对于需要转发的报文,会先获取报文头信息,包括报文的源IP地址、目的IP地址、IP层所承载的上层协议的协议号、源端口号和目的端口号等,然后和预先设定的过滤规则进行匹配,并根据匹配结果对报文采取转发或丢弃处理。
  • 包过滤防火墙的转发机制是逐包匹配包过滤规则并检查,所以转发效率低下。目前防火墙基本使用状态检查机制,将只对一个连接的首包进行包过滤检查,如果这个首包能够通过包过滤规则的检查,并建立会话的话,后续报文将不再继续通过包过滤机制检测,而是直接通过会话表进行转发。

包过滤的基础:

包过滤基础

图:包过滤基础-五元素

包过滤能够通过报文的源MAC地址、目的MAC地址、源IP地址、目的IP地址、源端口号、目的端口号、上层协议等信息组合定义网络中的数据流,其中源IP地址、目的IP地址、源端口号、目的端口号、上层协议就是在状态检测防火墙中经常所提到的五无组,也是组成TCP/UDP连接非常重要的五个元素。

防火墙安全策略:

定义:

  1. 安全策略是按一定规则检查数据流是否可以通过防火墙的基本安全控制机制。
  2. 规则的本质是包过滤。

主要应用:

  1. 对跨防火墙的网络互访进行控制。
  2. 对设备本身的访问进行控制。

防火墙的基本作用是保护特定网络免受“不信任”的网络的攻击,但是同时还必须允许两个网络之间可以进行合法的通信。安全策略的作用就是对通过防火墙的数据流进行检验,符合安全策略的合法数据流才能通过防火墙。

通过防火墙安全策略可以控制内网访问外网的权限、控制内网不同安全级别的子网间的访问权限等。同时也能够对设备本身的访问进行控制,例如限制哪些IP地址可以通过Telnet和Web等方式登录设备,控制网管服务器、NTP服务器等与设备的互访等。

防火墙安全策略的原理:

过程:

  1. 入数据流经过防火墙
  2. 查找防火墙安全策略,判断是否允许下一步操作。
  3. 防火墙根据安全策略定义规则对包进行处理。

防护墙安全策略的作用:

根据定义的规则对经过防火墙的流量进行筛选,并根据关键字确定筛选出的流量如何进行下一步操作。

安全策略分类:

  • 域间安全策略

    域间安全策略用于控制域间流量的转发(此时称为转发策略),适用于接口加入不同安全区域的场景。域间安全策略按IP地址、时间段和服务(端口或协议类型)、用户等多种方式匹配流量,并对符合条件的流量进行包过滤控制(permit/deny)或高级的UTM应用层检测。域间安全策略也用于控制外界与设备本身的互访(此时称为本地策略),按IP地址、时间段和服务(端口或协议类型)等多种方式匹配流量,并对符合条件的流量进行包过滤控制(permit/deny),允许或拒绝与设备本身的互访。

  • 域内安全策略

    缺省情况下域内数据流动不受限制,如果需要进行安全检查可以应用域内安全策略。与域间安全策略一样可以按IP地址、时间段和服务(端口或协议类型)、用户等多种方式匹配流量,然后对流量进行安全检查。例如:市场部和财务部都属于内网所在的安全区域Trust,可以正常互访。但是财务部是企业重要数据所在的部门,需要防止内部员工对服务器、PC等的恶意攻击。所以在域内应用安全策略进行IPS检测,阻断恶意员工的非法访问。

  • 接口包过滤

    当接口未加入安全区域的情况下,通过接口包过滤控制接口接收和发送的IP报文,可以按IP地址、时间段和服务(端口或协议类型)等多种方式匹配流量并执行相应动作(permit/deny)。基于MAC地址的包过滤用来控制接口可以接收哪些以太网帧,可以按MAC地址、帧的协议类型和帧的优先级匹配流量并执行相应动作(permit/deny)。硬件包过滤是在特定的二层硬件接口卡上实现的,用来控制接口卡上的接口可以接收哪些流量。硬件包过滤直接通过硬件实现,所以过滤速度更快。

防火墙转发原理

防火墙域间转发:

  • 早期包过滤防火墙采取的是“逐包检测”机制,即对设备收到的所有报文都根据包过滤规则每次都进行检查以决定是否对该报文放行。这种机制严重影响了设备转发效率,使包过滤防火墙成为网络中的转发瓶颈。
  • 于是越来越多的防火墙产品采用了“状态检测”机制来进行包过滤。“状态检测”机制以流量为单位来对报文进行检测和转发,即对一条流量的第一个报文进行包过滤规则检查,并将判断结果作为该条流量的“状态”记录下来。对于该流量的后续报文都直接根据这个“状态”来判断是转发还是丢弃,而不会再次检查报文的数据内容。这个“状态”就是我们平常所述的会话表项。这种机制迅速提升了防火墙产品的检测速率和转发效率,已经成为目前主流的包过滤机制。
  • 在防火墙一般是检查IP报文中的五个元素,又称为“五元组”,即源IP地址和目的IP地址,源端口号和目的端口号,协议类型。通过判断IP数据报文报文的五元组,就可以判断一条数据流相同的IP数据报文。
  • 其中TCP协议的数据报文,一般情况下在三次握手阶段除了基于五元组外,还会计算及检查其它字段。三次握手建立成功后,就通过会话表中的五元组对设备收到后续报文进行匹配检测,以确定是否允许此报文通过。

查询和创建会话:

过程

图:创建会话过程

可以看出,对于已经存在会话表的报文的检测过程比没有会话表的报文要短很多。而通常情况下,通过对一条连接的首包进行检测并建立会话后,该条连接的绝大部分报文都不再需要重新检测。这就是状态检测防火墙的“状态检测机制”相对于包过滤防火墙的“逐包检测机制”的改进之处。这种改进使状态检测防火墙在检测和转发效率上有迅速提升。

状态监测机制:

  • 状态监测机制开启状态下,只有首包通过设备才能建立会话表项,后续包直接匹配会话表项进行转发。
  • 状态监测机制关闭状态下,即使首包没有经过设备,后续好只要通过设备也可以生成会话表项。

对于TCP报文

  • 开启状态检测机制时,首包(SYN报文)建立会话表项。对除SYN报文外的其他报文,如果没有对应会话表项(设备没有收到SYN报文或者会话表项已老化),则予以丢弃,也不会建立会话表项。
  • 关闭状态检测机制时,任何格式的报文在没有对应会话表项的情况下,只要通过各项安全机制的检查,都可以为其建立会话表项。

对于UDP报文

  • UDP是基于无连接的通信,任何UDP格式的报文在没有对应会话表项的情况下,只要通过各项安全机制的检查,都可以为其建立会话表项。

对于ICMP报文

  • 开启状态检测机制时,没有对应会话的ICMP应答报文将被丢弃。
  • 关闭状态检测机制时,没有对应会话的应答报文以首包形式处理

会话表项:

会话

图:会话表项示例

会话是状态检测防火墙的基础,每一个通过防火墙的数据流都会在防火墙上建立一个会话表项,以五元组(源目的IP地址、源目的端口、协议号)为Key值,通过建立动态的会话表提供域间转发数据流更高的安全性。

智能安全策略:

安全策略配置存在的问题:

  1. 配置逻辑复杂。
  2. 易产生安全风险
  3. 易冗余

解决方案: 智能安全策略

  1. 冗余分析
  2. 策略命中
  3. 风险调优

条件:

中低端设备必须硬盘在位,高端设备只需要有硬盘插槽,不需要硬盘在位。低端设备不支持。

为什么需要有智能安全策略:

  1. 策略匹配条件多
  2. 未匹配内容安全
  3. 重复(包含)策略
  4. 未命中策略

防火墙安全策略及应用

域间安全策略的匹配规则:

  • 域间缺省包过滤

    当数据流无法匹配域间安全策略时,会按照域间缺省包过滤规则来转发或丢弃该数据流的报文。

  • 转发策略

    转发策略是指控制哪些流量可以经过设备转发的域间安全策略,对域间(除Local域外)转发流量进行安全检查,例如控制哪些Trust域的内网用户可以访问Untrust域的Internet。

  • 本地策略

    本地策略是指与Local安全区域有关的域间安全策略,用于控制外界与设备本身的互访。

域间安全策略业务流程:

域间

图:域间安全策略业务流程

报文入站后,将首先匹配会话表,如果命中会话表,将进入后续包处理流程,刷新会话表时间,并直接根据会话表中的出接口,转发数据。

报文入站后,将首先匹配会话表,如果没有命中会话表,将进入首包包处理流程。依次进行黑名单检查,查找路由表,匹配域间安全策略,新建会话表,转发数据。

黑名单的实现原理就是:设备上建立一个黑名单表。对于接收到的报文的源IP地址存在于黑名单中,就将该报文予以丢弃。

黑名单分类:

  • 静态黑名单

    管理员可以通过命令行或Web方式手工逐个将IP地址添加到黑名单中。

  • 动态黑名单

    转发策略和缺省域间包过滤优先级

    转发策略优先于缺省域间包过滤匹配。设备将首先查找域间的转发策略,如果没有找到匹配项将匹配缺省包过滤进行处理。

  • 刷新会话表

    刷新会话表主要是刷新会话表老化时间,老化时间决定会话在没有相应的报文匹配的情况下,何时被系统删除。

配置转发策略流程:

流程

图:配置转发策略的流程图

基于IP地址的转发策略配置示例:

实验拓扑:

实验拓扑

图:实验拓扑图

实验要求:

如上图,防火墙的Gi0/0/0口在Trust区域,Gi0/0/01在UNtrust区域,通过配置策略,使得内网中除了PC1:192.168.1.2可以访问服务器,其他主机都不能访问服务器。

配置文件:

FW配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[FW]dis current-configuration  
23:45:46 2018/04/26
#
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.1.1.1 255.255.255.0
#
firewall zone local
set priority 100
#
firewall zone trust
set priority 85
add interface GigabitEthernet0/0/0
#
firewall zone untrust
set priority 5
add interface GigabitEthernet0/0/1
#
firewall zone dmz
set priority 50
#
//配置地址集
ip address-set ip_deny type object
address 1 192.168.1.3 0
address 2 192.168.1.4 0
#
sysname FW
#
firewall packet-filter default permit interzone local trust direction inbound
firewall packet-filter default permit interzone local trust direction outbound
firewall packet-filter default permit interzone local untrust direction outboun
d
firewall packet-filter default permit interzone local dmz direction outbound
#
#
firewall statistic system enable
//防火墙状态检测默认开启
#
//防火墙策略
policy interzone trust untrust inbound
policy 0
action permit
policy destination 192.168.1.2 0

policy 1
action permit
policy source 192.168.1.2 0
#
policy interzone trust untrust outbound
policy 0
action deny
policy source address-set ip_deny

policy 1
action permit
policy source 192.168.1.2 0
#
return

配置成功后测试:

主机1

图:PC1可以ping通服务器

主机2

图:PC2不能ping通服务器

策略

图:防火墙策略

会话表

图:会话表


参考资料:华为HedEx文档


坚持原创技术分享,您的支持将鼓励我继续创作!