什么是安全策略

fw的基本作用就是对进出网络的访问行为进行控制,保护特定网络不受不信任网络的攻击,但同时还需要允许两个网络之间可以进行合法通信。

安全策略是fw的核心特性,作用是对通过fw的数据流进行检验,只有符合安全策略的合法流量才能通过fw进行转发。fw实现访问控制就是通过安全策略技术来实现的。

安全策略由匹配条件(五元组、用户、时间段等)和动作组成的控制规则,fw收到流量后,对流量的属性(五元组、用户、时间段等)进行识别,并将流量的属性与安全策略的匹配条件进行匹配,如果所有条件都匹配,则此流量成功匹配安全策略,流量匹配安全策略后,设备将会执行安全策略的动作。

  • 如果动作为“允许”,则对流量进行如下处理:

    • 如果没有配置内容安全检测,则允许流量通过。
    • 如果配置内容安全检测,最终根据内容安全检测的结论来判断是否对流量进行放行。
  • 如果动作为“禁止”,则禁止流量通过。

只有首包流程会做安全策略,后续包流程不做安全策略过滤。而是根据会话表进行状态检测。转发效率高。

缺省情况下,安全策略仅对单播报文进行控制,对广播和组播报文不做控制,直接转发。

安全策略匹配流程

流量通过防火墙时,安全策略处理流程如下:

对收到的流量进行检测,检测出流量的属性,包括:源目安全区域、源目IP地址/地区、用户、服务(源目端口、协议类型)、应用、时间段。

防护墙将流量的属性与安全策略的条件进行匹配,如果所有条件都匹配,则此流量成功匹配安全策略。如果其中一个条件不匹配,则该安全策略匹配失败,顺序匹配下一条安全策略。如果所有安全策略都不匹配,则匹配到底层缺省的安全策略,执行其动作deny。(也可以将其修改为perimit,此时防火墙安全策略形同虚设,该功能主要在调试阶段使用)匹配顺序是按照策略列表顺序匹配,而不是按照rule id

如果流量成功匹配到一条安全策略,防火墙将会执行此安全策略的动作,不再执行下一个策略的匹配。

如果动作为禁止,则防火墙阻断该流量。反之执行下一步动作(放行或继续进行内容安全检查)

可以把精确的策略放在上面(前面),模糊的策略放在下面(后面)。放在模糊策略后面的精确策略可能永远不会被命中。可以通过rule move before/after rule-name对安全策略进行移动。

即:安全策略之间是或的关系,安全策略内条件之间是与的关系,条件可以有多个值,值之间是或的关系。

如果安全策略引用了内容安全内容(即安全配置文件),则执行内容安全的一体化检测。检测条件之间是与的关系。

如果没有引用内容安全内容(即安全配置文件),则安全策略检测结束,放行流量。

禁止条件下为什么不做内容安全了?

禁止了直接丢包阻断流量,内容安全检测已经没有意义。

安全策略配置流程

本地安全策略

本地流量指的是目的为fw自身的流量或者从fw自身发出的流量。

在很多需要FW本身进行报文收发的应用中,需要放开本地流量的安全策略。包括:

  • 需要对FW本身进行管理的情况。例如Telnet登录、Web登录、接入SNMP网管等。
  • FW本身作为某种服务的客户端或服务器,需要主动向对端发起请求或处理对端发起的请求的情况。例如FTP、PPPoE拨号、NTP、IPSec VPN、DNS、升级服务、URL远程查询、邮件外发等。

从防火墙本身发起访问

需要放行安全策略local--->any

以ping为例:

security-policy
rule name local-any
source-zone local
service icmp
action permit

从非local区域访问防火墙的自身接口(属于local区域)

以ping为例:

方法1:开对应接口的具体管理服务

interface g0/0/1
service-manager ping permit

方法2:让安全策略生效,关闭接口管理服务

interface g0/0/1
undo service-manager enable
security-policy
rule name trust-local
source-zone trust
destination-zone local
action permit

注意:此时的安全策略才能生效,原因是管理服务优先级高于安全策略

安全策略标识

  • 名称

    安全策略规则的名称是最常见的标识安全策略的方式。名称必须是唯一的,不能重复。在实际现网中,会存在多条安全策略,为了方便后续查找和维护,建议按照安全策略规则的作用来命名,例如,控制trust到dmz的安全策略,可以命名为sec_policy_trust-dmz;控制企业研发部门的安全策略,可以命名为sec_policy_research。

  • 描述

    描述信息有助于管理员正确理解安全策略规则的功能,使规则变得方便选择、查找和维护。

  • 序号

    在Web界面上,安全策略列表中最左列的序号用来标识安全策略的顺序,此序号会随着安全策略的顺序的移动而变化,因此不能唯一标识一条安全策略。

  • ID

    系统会为每条安全策略规则分配一个ID,ID唯一标识一条安全策略,通过display security-policy rule all命令可以查看安全策略的ID。缺省安全策略的ID为0。

  • 标签

    当设备创建的策略较多时,标签可以用于对安全策略进行标识和分类,当用户想对某一类策略进行查看并进行批量处理时可以通过搜索标签来完成。

安全策略的过滤机制

对于同一条数据流,只需要在访问发起的方向上配置安全策略,反向流量无需配置安全策略。即首包匹配安全策略,通过安全策略过滤后建立会话表,后续包直接匹配会话表,无需再匹配安全策略,提高业务处理效率。

通过状态检测建立会话表。

状态检测可以理解为自反acl。网络中大部分流量都是双向的,防火墙可以通过一条安全策略实现流量出入的限制。比如放通从从1.1.1.1的1000端口访问2.2.2.2的2000端口,那么从2.2.2.2的2000端口向1.1.1.1的1000端口的回包也是允许的,但是必须是1.1.1.1的1000端口主动访问了2.2.2.2的2000端口后才行,不允许从2.2.2.2的2000端口主动访问1.1.1.1的1000端口。如果使用acl来做,必须同时在一个接口的inbound方向和outbound方向分别配置。另外如果我们主动发起连接时,使用随机端口,那么对于acl而言就不好做inbound方向的限制了,最多只能对目的端口进行限制,而无法对源端口进行限制。状态检测通过建立会话表的方式,可以监测流量特征,唯一确定一条连接。


理解状态检测还需要梳理一下防火墙的发展史,其实一开始防火墙就是基于acl的包过滤防火墙,它的安全策略就是逐包顺序匹配acl,而且正反向都进行配置,进出都需要匹配,后来为了提高效率和安全性,引入了状态检测的概念,可以将其理解为让安全策略变成动态的了。

防火墙发展史

包过滤防火墙

工作在网络层,根据配置的安全策略转发或者丢弃数据包,设计简单,价格便宜。

可以理解成包过滤防火墙,按照acl逐包检测。

但是存在以下问题:

效率低下:逐包检测,无法关联数据包之间的关系。同一条流量的后续数据包进出时还需要重新顺序匹配所有acl,随着安全规则的复杂性和长度,其过滤性能指数型下降,效率较低。

安全风险:第一是通常只检查报头ip/tcp,不检测应用层数据(内容有问题)。第二是无法解决any到x导致的x到any的问题。

无法适用多通道协议:数据通道所用到的目的端口等关键参数需要携带在控制通道的数据中进行协商,随机端口无法提前知道,从而通过acl策略进行准确匹配。

针对其的升级就是状态检测防火墙。

代理防火墙

与包过滤防火墙、状态检测防火墙没有前后继承关系,是独立的分支。

工作在应用层,实质是把内部网络和外部网络用户之间直接进行的业务由代理接管。代理检查来自用户的请求,用户通过安全策略检查后,该防火墙将代表外部用户与真正的服务器建立连接,转发外部用户请求,并将真正服务器返回的响应回送给外部用户。可以理解为:外网终端把防火墙认为是服务器本身。

缺点在于:

处理速度慢:由于使用软件实现,所以处理速度被限制,易于遭受拒绝服务攻*击。

升级困难:针对每一种协议开发应用层代理,开发周期长,升级困难。因此不支持非知名的应用所使用的协议,只能代理http、mail、ftp等知名协议。

状态检测防火墙

是继承于包过滤防火墙的,是对包过滤防火墙的升级。

ngfw基于状态检测,最典型的区别于路由器和交换机的功能。

工作在网络层和应用层。在网络层截获数据包,在应用层提取安全策略需要的状态信息,并保存在会话表中,通过分析这些会话表和与该数据包有关的后续连接请求来做出恰当决定。

在TCP数据流中,每个数据包都不是独立存在的,而是前后密切相关的。下面是tcp报文的交互过程。

client(1.1.1.1)<---------------------------------------->webserver(2.2.2.2)

srcip 1.1.1.1 dstip 2.2.2.2 srcport x dstport 80 seq=a ack=0 flags[SYN]

srcip 2.2.2.2 dstip 1.1.1.1 srcport 80 dstport x seq=b ack=a+1 flags[ACK,SYN]

srcip 1.1.1.1 dstip 2.2.2.2 srcport x dstport 80 seq=a+1 ack=b+1 flags[ACK]

srcip 1.1.1.1 dstip 2.2.2.2 srcport x dstport 80 seq=a+1 ack=b+1 flag[ACK] data[HTTP 100bytes]

srcip 2.2.2.2 dstip 1.1.1.1 srcport 80 dstport x seq=b+1 ack=a+1+100 flags[ACK] data[HTTP 200bytes]

srcip 1.1.1.1 dstip 2.2.2.2 srcport x dstport 80 seq=a+1+100 ack=b+1+200 flag[ACK] data[HTTP 100bytes]

可以发现,我们完全可以根据上一个报文的信息判断出下一个报文的部分信息,这就是报文的前后关联性。参数的取值一直在变化,状态检测防火墙对这样的变化进行分析,判断报文是不是合法的报文。

只能针对tcp和icmp,无法针对udp。

UDP是不可靠的无状态协议,没有序列号和确认号,没有握手机制,无法实现隐式确认。

tcp是可靠的有状态的三次握手建立连接,基于连接产生的会话。首包是syn报文。

icmp是通过request和reply报文进行交互,也属于可靠的连接。首包是ping的echo-request报文。

不是说对于其他协议不去检测,而是在状态检测这一步不去检测,后面还有安全策略和内容安全的检测。

状态检测就是判断一个包是不是首包并对没有查到已有状态化表项的非首包进行丢弃。对首包进行安全策略检查,检查通过后记录会话信息,建立起会话表。后续的报文根据会话表做转发。

即:对通过安全策略检查的首包建立会话表,通过会话表指导后续报文的转发。

主动发起访问的包是首包,响应的回包是后续报文。首包根据是否匹配安全策略判断是否通过,后续报文根据是否匹配会话表判断是否通过。

防火墙通过状态检测功能来对报文的链路状态进行合法性检测,丢弃链路状态不合法的报文。状态检测功能不仅检测普通报文,也对内层报文即pn解封装后的报文进行检测。

对于来回路径一致的组网环境,可以在防火墙上开启状态检测功能,保证业务安全。但是在报文来回路径不一致的情况下,防火墙可能只会收到通信过程中的后续报文,而没有收到首包,在这种情况下,为了保证业务正常,就需要关闭fw的状态检测功能,当关闭后,fw可以通过后续报文建立会话,保证业务的正常运行。

undo firewall session link-state check 关闭掉状态检测。默认开启

不管关闭或者开启状态检测,创建会话的前提是报文要通过设备上包括安全策略在内的各项安全机制额检查。

会话表是防火墙转发的唯一依据。这是防火墙最重要的一个特性。没有会话表通通丢掉。

1、解决效率低的问题

首包建立会话,后续匹配会话。

处理后续报文速度快因为现网中会话表条目毕竟要比acl条目要少很多。我们可以做很多的安全策略或者acl,但这些安全策略不会全部变成我们会话表的一项,我们会话表的内容是首包通过后才建立的,并且会动态的进行删除,所以说他的数量很少。如果说一条正在进行中的业务流量,这个流量进出的数据包去查找会话表要比查找安全策略/acl要快很多。

2、解决安全性不高的问题

第一通过会话表解决由于需要从内到外any到x而放行从外到内x到any的问题。

第二通过内容安全解决应用层数据的检测。

3、解决多通道协议问题

通过aspf

HCIE-Security Day4:安全策略和状态检测相关推荐

  1. VB多层防火墙技术的研究-状态检测

    word完整版可点击如下下载>>>>>>>> VB多层防火墙技术的研究-状态检测(源代码+系统+开题报告+中期报告).rar-VB文档类资源-CSDN下 ...

  2. 网络安全技术第七章——防火墙技术概述及应用(包过滤防火墙 、代理防火墙、状态检测防火墙、分布式防火墙)

    防火墙技术概述及应用 防火墙技术概述及应用 1.防火墙的概念 2.高效可靠的防火墙应具备的基本特性 3.防火墙的基本功能 4.防火墙的基本原理 5.防火墙的类型 (1)包过滤防火墙 (2)代理防火墙 ...

  3. 脑机接口应用于驾驶员的疲劳状态检测综述

    今天Rose分享一篇伍冬睿教授的关于驾驶员疲劳状态检测综述,主要包括非接触式例如计算机视觉以及接触式包括脑电等在驾驶员的疲劳状态检测! 伍教授在机器学习.脑机接口方向做了很多探索,包括集成学习方法.脑 ...

  4. Linux系统状态检测及进程控制--2

    Linux系统状态检测及进程控制--1(http://crushlinux.blog.51cto.com/2663646/836481) 4.僵死(进程已终止,但进程描述符存在,直到父进程调用wait ...

  5. Tengine 反向代理状态检测

    Tengine 反向代理状态检测 安装Tengine: 编译安装 ./configure --prefix=/usr/loca/nginx make && make install 配 ...

  6. iptables的基础知识-iptables中的状态检测

    2019独角兽企业重金招聘Python工程师标准>>> iptables的基础知识-iptables中的状态检测:iptabels被认为是Linux中实现包过滤功能的第四代应用程序. ...

  7. 《笑傲网湖》第五回 状态检测防火墙

    今天,我们进行状态检测防火墙的原理介绍.同时附送网络地址转换原理的简单介绍! 随着华山派的不断扩大,整个内部网络也越来越庞大.每天都有大量的数据与外界交互,处于网关处的防火墙要处理的数据包越来越多,虽 ...

  8. 显卡欺骗器状态检测及安装注意事项

    显卡欺骗器的作用 显卡欺骗器:也称为锁屏宝,即欺骗显卡,让其认为其连接了显示器,以保持工作状态,不进行降频.休眠.可以认为欺骗器是一个虚拟的显示器. 欺骗器安装 若出现欺骗器无法识别,需要首先排查欺骗 ...

  9. perclos嘴巴_一种基于视频分析的疲劳状态检测方法及装置与流程

    本发明涉及疲劳检测领域,特别是涉及一种基于视频分析的疲劳状态综合检测方法及装置. 背景技术: 疲劳状态检测技术在交通运输.生产安全.教育培训等许多领域应用广泛.目前,疲劳状态检测的方法一般可分为接触式 ...

  10. linux中检测用户信息的命令是,Linux中系统状态检测命令

    1.ifconfig用于获取网卡配置与网络状态等信息,格式为:ifconfig [网络设备] [参数] 2.uname命令用于查看系统内核版本等信息,格式为:uname [-a] 查看系统的内核名称. ...

最新文章

  1. oracle之alter学习笔记
  2. Node.js REST 工具 Restify
  3. 数据包发包工具bittwist
  4. Jsp 无法解析${}
  5. CLOSE_WAIT 和TCP_KEEPALIVE
  6. Fast Stone超好用的截图工具,可截取长图,带滚动条的页面
  7. 「镁客·请讲」Site24×7李飞:云服务是大势所趋,云监控生意又要怎么做?...
  8. tcp云服务器连接,云服务器可以tcp通讯吗
  9. 原版Win7注入USB3.0驱动和NVME驱动教程
  10. echart层级圆饼图
  11. php在线翻译,php调用百度在线翻译api的代码
  12. 【报告分享】 2020国人旅游出行研究报告-企鹅智库(附下载)
  13. 计算机网络学习笔记(广域网)
  14. 问题 J: Frosting on the Cake
  15. 【一次过】左旋转字符串
  16. 配置微信小程序添加企业微信为好友的组件
  17. A Comprehensive Survey on Graph Neural Networks--图神经网络综合研究
  18. 临床执业助理医师(综合练习)题库【2】
  19. e5cz温控表中文说明书_欧姆龙温控器e5cz说明书 OMRON温控表E5EC说明书
  20. 如何用SQL语句模糊查询数据库中的表名

热门文章

  1. 介绍4个大神常用而你不常用的python函数--assert,map,filter,reduce
  2. 【干货】基于注意力机制的seq2seq网络
  3. 【每日算法Day 67】经典面试题:手动开根号,你知道几种方法?
  4. TF2.0—tf.keras.losses.BinaryCrossentropy
  5. 深度学习2.0-39.RNN训练难题-梯度弥散与梯度爆炸
  6. JAVA IO中的设计模式
  7. 读书日当天冲上销量榜Top1和Top3,来听听携程人写书背后的故事
  8. Git的17条基本用法
  9. 大数据技术全解之曹冲称象与大数据思想
  10. ARM处理器上电/复位操作