三、防御保护---防火墙安全策略篇

news2024/11/17 15:53:27

三、防御保护---防火墙安全策略篇

  • 一、什么是安全策略
  • 二、安全策略的组成
      • 1.匹配条件
      • 2.动作
      • 3.策略标识
  • 三、防火墙的状态检测和会话表
      • 1.会话表
      • 2.状态检测技术
  • 四、ASPF--隐形通道
  • 五、用户认证
      • 1.用户认证的分类
      • 2.认证方式
      • 3.认证策略
      • 4.认证域

一、什么是安全策略

传统的包过滤防火墙 — 其本质为ACL列表,根据数据报中的特征进行过滤,之后对比规制,执行动作。
五元组 — 源IP,目标IP,源端口,目标端口,协议
在这里插入图片描述
安全策略 — 相较于ACL的改进之处在于,首先,可以在更细的颗粒度下匹配流量,另一方面是可以完成内容安全的检测。
在这里插入图片描述
安全策略:1,访问控制(允许和拒绝)
2,内容检测 — 如果允许通过,则可以进行内容检测
在这里插入图片描述

二、安全策略的组成

每一条安全策略都是由匹配条件和动作组成的规则。防火墙接收到报文以后,将报文的属性与安全策略的匹配条件进行匹配。如果所有条件都匹配,则此报文成功匹配安全策略,防火墙按照该安全策略的动作处理这个报文及其后续双向流量。因此,安全策略的核心元素是匹配条件和动作。

1.匹配条件

安全策略的匹配条件描述了流量的特征,用于筛选出符合条件的流量。安全策略的匹配条件包括以下要素。

谁:谁发出的流量,即用户。在Agile Controller单点登录场景下,还可以指定用户的接入方式、用户使用的终端设备类型。
从哪里来,到哪里去:流量的来源和目的,包括源/目的安全区域、源/目的IP地址、源/目的地区和VLAN。地区本质上是IP地址在地理区域上的映射。
干什么:访问的服务、应用或者URL分类。
什么时候:即时间段。
以上匹配条件,在一条安全策略中都是可选配置;但是一旦配置了,就必须全部符合才认为匹配,即这些匹配条件之间是“与”的关系。一个匹配条件中如果配置了多个值,多个值之间是“或”的关系,只要流量匹配了其中任意一个值,就认为匹配了这个条件。

一条安全策略中的匹配条件越具体,其所描述的流量越精确。你可以只使用五元组(源/目的IP地址、端口、协议)作为匹配条件,也可以利用防火墙的应用识别、用户识别能力,更精确、更方便地配置安全策略。

2.动作

安全策略的基本动作有两个:允许和禁止,即流量能否通过。

如果动作为允许,你还可以对此符合此策略的流量执行进一步的内容安全检查。华为防火墙的内容安全检查功能包括反病毒AV、入侵防御IPS、URL过滤、文件过滤、内容过滤、应用行为控制、邮件过滤、APT防御、DNS过滤等。每项内容安全检查都有各自的适用场景和处理动作。防火墙如何处理流量,由所有内容安全检查的结果共同决定。
如果动作为禁止,你还可以选择发送向服务端或客户端反馈报文,快速结束会话,减少系统资源消耗。
用户、终端设备、时间段、地址、地区、服务、应用、URL分类等匹配条件,以及内容安全检查所需的各种配置文件,在防火墙上都以对象的形式存在。你可以先创建对象,然后在多个安全策略中引用。

3.策略标识

为了便于管理,安全策略还提供了如下属性。

名称:用于唯一标识一条安全策略,不可重复。为每一条安全策略指定一个有意义的名称(如安全策略的目的),能提高维护工作效率。
描述:用于记录安全策略的其他相关信息。例如,你可以在这个字段记录触发此安全策略的的申请流程编号。这样,在例行审计时可以快速了解安全策略的背景,比如什么时间引入此安全策略,谁提出的申请,其有效期多久,等等。
策略组:把相同目的的多条安全策略加入到一个策略组中,可以简化管理。你可以移动策略组,启用/禁用策略组等。
标签:标签是安全策略的另一种标识方式,你可以给一条安全策略添加多个标签,通过标签可以筛选出具有相同特征的策略。例如,你可以根据安全策略适用的应用类型,添加高风险应用、公司应用等标签。在为安全策略设置标签时,建议使用固定的前缀,如用“SP_”代表安全策略,并用颜色区分不同的动作。这会使标签更容易理解。

三、防火墙的状态检测和会话表

基于流的流量检测 — 即设备仅对流量的第一个数据包进行过滤,并将结果作为这一条数据流的“特征”记录下来(记录在本地的“会话表”),之后,该数据流后续的报文都将基于这个特征来进行转发,而不再去匹配安全策略。这样做的目的是为了提高转发效率。

如下图所示,PC和Web服务器位于不同的网络,分别与防火墙相连,PC与Web服务器之间的通信受到防火墙的控制。
在这里插入图片描述
当PC需要访问Web服务器浏览网页时,在防火墙上必须配置如下的一条规则,允许PC访问Web服务器的报文通过。
在这里插入图片描述
在这条规则中,源端口处的*表示任意的端口,这个值是不确定的,所以这里设定为任意端口。

配置了这条规则后,PC发出的报文就可以顺利通过防火墙,到达Web服务器。然后Web服务器将会向PC发送回应报文,这个报文也要穿过防火墙才能到达PC。在状态检测防火墙出现之前,包过滤防火墙还必须配置如下所示的规则2,允许反方向的报文通过。
在这里插入图片描述
在规则2中,目的端口也设定为任意端口,因为我们无法确定PC访问Web服务器时使用的源端口,要想使Web服务器回应的报文都能顺利穿过防火墙到达PC,只能将规则2中的目的端口设定为任意端口。

如果PC位于受保护的网络中,这样处理将会带来很大的安全问题。规则2将去往PC的目的端口全部开放,外部的恶意攻击者伪装成Web服务器,就可以畅通无阻地穿过防火墙,PC将会面临严重的安全风险。

接下来让我们看一下状态检测防火墙怎么解决这个问题。还是以上面的网络环境为例,首先我们还是需要在防火墙上设定规则1,允许PC访问Web服务器的报文通过。当报文到达防火墙后,防火墙允许报文通过,同时还会针对PC访问Web服务器的这个行为建立会话,会话中包含了PC发出的报文信息,如地址和端口等。
在这里插入图片描述
当web服务器给PC进行回报时,来到防火墙上,防火墙会将报文中的信息和会话表的信息进行性比对,如果,发现报文中的信息与会话表中的信息相匹配,并且,符合协议规范对后续报文的定义,则认为该数据包属于PC,可以允许该数据包通过。

1,会话表;2,状态检测

1.会话表

会话表本身也是基于5元组来区分流量,会话表在比对时,会通过计算HASH来比较五元组。因为HASH定长,所以,可以基于硬件进行处理,提高转发效率。

因为会话表中的记录只有在流量经过触发时才有意义,所以,如果记录长时间不被触发,则应该删除掉。即会话表中的记录应该存在老化时间。如果会话表中的记录被删除掉之后,相同五元组的流量再通过防火墙,则应该由其首包重新匹配安全策略,创建会话表,如果无法创建会话表,则将丢弃该数据流的数据。

  • 如果会话表的老化时间过长:会造成系统资源的浪费,同时,有可能导致新的会话表项无法正常建立

  • 如果会话表的老化时间过短:会导致一些需要长时间首发一次的报文连接被系统强行中断,影响业务的转发。

不同协议的会话表老化时间是不同
在这里插入图片描述

2.状态检测技术

状态检测主要检测协议逻辑上的后续报文,以及仅允许逻辑上的第一个报文通过后创建会话表。可以选择开启或者关闭该功能。

[USG6000V1]display firewall session table --- 查看会话表
[USG6000V1]display firewall session table verbose -- 查看会话表详情

数据通过防火墙的流程
在这里插入图片描述

四、ASPF–隐形通道

FTP协议是一个典型的多通道协议,在其工作过程中,FTP Client和FTP Server之间将会建立两条连接:控制连接和数据连接。控制连接用来传输FTP指令和参数,其中就包括建立数据连接所需要的信息;数据连接用来获取目录及传输数据。数据连接使用的端口号是在控制连接中临时协商的。

根据数据连接的发起方式FTP协议分为两种工作模式:主动模式(PORT模式)和被动模式(PASV模式)。主动模式中,FTP Server主动向FTP Client发起数据连接;被动模式中,FTP Server被动接收FTP Client发起的数据连接。

模式在一般的FTP客户端中都是可以设置的,主动模式的协议交互流程如下:
在这里插入图片描述
被动模式的协议交互流程如下:
在这里插入图片描述

ASPF — 针对应用层的包过滤 — 用来抓取多通道协议中协商端口的关键数据包,之后,将端口算出,将结果记录在sever-map表中,相当于开辟了一条隐形的通道。
在这里插入图片描述
记录临时协商的数据连接的表项称为Server-map表,这相当于在防火墙上开通了“隐形通道”,使得像FTP这样的特殊应用的报文可以正常转发。当然这个通道不是随意开的,是防火墙分析了报文的应用层信息之后,提前预测到后面报文的行为方式,所以才打开了这样的一个通道。

默认FTP协议开启了ASPF。
在这里插入图片描述

五、用户认证

防火墙管理员登录认证 — 检验身份的合法性,划分身份权限

用户认证 — 上网行为管理的一部分

  • 用户,行为,流量 — 上网行为管理三要素

1.用户认证的分类

上网用户认证 — 三层认证 — 所有的跨网段的通信都可以属于上网行为。正对这些行为,我们希望将行为和产生行为的人进行绑定,所以,需要进行上网用户认证。
入网用户认证 — 二层认证 — 我们的设备在接入网络中,比如插入交换机或者接入wifi后,需要进行认证才能正常使用网络。
接入用户认证 — 远程接入 — VPN — 主要是校验身份的合法性的

2.认证方式

本地认证 — 用户信息在防火墙上,整个认证过程都在防火墙上执行
服务器认证 — 对接第三方服务器,防火墙将用户信息传递给服务器,之后,服务器将认证结果返回,防火墙执行对应的动作即可
单点登录 — 和第三方服务器认证类似。
在这里插入图片描述

认证域 — 可以决定认证的方式和组织结构
登录名 — 作为登录凭证使用,一个认证域下不能重复
显示名 — 显示名不能用来登录,只用来区分和标识不同的用户。如果使用登录名区分,则也可以不用写显示名。显示名可以重复。
账号过期时间 — 可以设定一个时间点到期,但是,如果到期前账号已登录,到期后,防火墙不会强制下线该用户。

允许多人同时使用该账号登录

  • 私有用户 — 仅允许一个人使用,第二个人使用时,将顶替到原先的登录
  • 公有用户— 允许多个人同时使用一个账户

IP/MAC绑定 — 用户和设备进行绑定(IP地址/MAC地址)

  • 单向绑定 — 该用户只能在这个IP或者这个MAC或者这个IP/MAC下登录,但是,其他用户可以在该设备下登录
  • 双向绑定 — 该用户只能在绑定设备下登录,并且该绑定设备也仅允许该用户登录。

安全组和用户组的区别 — 都可以被策略调用,但是,用户组在调用策略后,所有用户组成员
以及子用户组都会生效,而安全组仅组成员生效,子安全组不生效。

3.认证策略

Portal — 这是一种常见的认证方式。我们一般见到的网页认证就是portal认证。我们做上网认证,仅需要流量触发对应的服务时,弹出窗口,输入用户名和密码进行认证。
免认证 — 需要在IP/MAC双向绑定的情况下使用,则对应用户在对应设备上登录时,就可以选择免认证,不做认证。
匿名认证 — 和免认证的思路相似,认证动作越透明越好,选择匿名认证,则登录者不需要输入用户名和密码,直接使用IP地址作为其身份进行登录。

4.认证域

如果这里的上网方式选择protal认证,则认证策略里面也要选择portal认证。
如果这里的上网方式选择免认证或者单点登录,则认证策略中对应动作为免认证
如果认证策略中选择的是匿名认证,则不触发这里的认证动作。
不同的认证域之间是或的关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1419705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计 基于SpringBoot的车辆违章信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Android 中的动态应用程序图标

Android 中的动态应用程序图标 一、需求二、解决方案三、方案实现四、结论 一、需求 您可能遇到过那些可以实现巧妙技巧的应用程序 - 更改应用程序图标(也许是在您的生日那天),然后无缝切换回常规图标。这种功能会激起你的好奇心&#xff0c…

websocket 通信协议

websocket是什么 答: 它是一种网络通信协议,是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 意思就是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息 属于服务器推送技术的一种. 为什么需要websocket? 疑问?…

Java 面试题之 IO(一)

字节流 文章目录 字节流InputStream(字节输入流)OutputStream(字节输出流) 文章来自Java Guide 用于学习如有侵权,立即删除 InputStream(字节输入流) InputStream用于从源头(通常是…

【command】使用nr简化npm run命令

参考文章 添加 alias nrnpm run通过alias启动命令可以帮助我们节省运行项目输入命令的时间 $ cd ~ $ vim .bash_profile $ source ~/.bashrc

【51单片机Keil+Proteus8.9】门锁控制电路

门锁控制电路 二、设计思路 电路设计 1.电源部分:使用BATTERY为整个电路提供电源,可以在电路中加入一个电 源开关,以便控制电源的开启和关闭。 2.处理器部分:使用AT89C51芯片作为主处理器,通过编写程序实现门锁的 …

【Java IO 源码详解】: InputStream

本文主要从JDK 11 源码角度分析InputStream。 Java IO - 源码: InputStream InputStream 类实现关系InputStream 抽象类源码实现InputStreamFilterInputStreamByteArrayInputStreamBufferedInputStream 参考文章 InputStream 类实现关系 InputStream是输入字节流,具…

来聊聊大厂面试题:求Java对象的大小

写在文章开头 日常使用Java进行业务开发时,我们基本不关心一个Java对象的大小,所以经常因为错误的估算导致大量的内存空间在无形之间被浪费了,所以今天笔者就基于这篇文章来聊聊一个Java对象的大小。 你好,我叫sharkchili&#x…

网络体系结构 和网络原理之UDP和TCP

目录 网络分层 一. 应用层 http协议 二. 传输层 1. 介绍 2.UDP协议 (1)组成 (2)细节 3.TCP协议 (1)特性如下链接: (2)组成 (3)特点 三. 网络层 四. 数据链路层 1.介绍 2.以太网协议 3.mac地址和ip地址 五. 物理层 DNS 网络分层 一. 应用层 应用程序 现成的…

【深度优先搜索】【组合数学】【动态规划】1467.两个盒子中球的颜色数相同的概率

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 深度优先搜索 组合数学 LeetCode1467 两个盒子中球的颜色数相同的概率 桌面上有 2n 个颜色不完全相同的球,球上的颜色共有 k 种。给你一个大小为 k 的整数数组 balls …

数据写入HBase(scala)

package sourceimport org.apache.hadoop.hbase.{HBaseConfiguration, TableName} import org.apache.hadoop.hbase.client.{ConnectionFactory, Put} import org.apache.hadoop.hbase.util.Bytesobject ffff {def main(args: Array[String]): Unit {//hbase连接配置val conf …

c++连接mysql

c连接mysql 安装mysql以及c对应的库进入数据库,创建数据库,表,并新建管理员用户编写c代码编译运行,测试结果头文件解释 安装mysql以及c对应的库 sudo apt-get update sudo apt-get install mysql-server sudo apt-get install li…

2023年算法CDO-CNN-BiLSTM-ATTENTION回归预测(matlab)

2023年算法CDO-CNN-BiLSTM-ATTENTION回归预测(matlab) CDO-CNN-BiLSTM-Attention切诺贝利灾难优化器优化卷积-长短期记忆神经网络结合注意力机制的数据回归预测 Matlab语言。 切诺贝利灾难优化器Chernobyl Disaster Optimizer (CDO)是H. Shehadeh于202…

新书推荐——《趣读数字经济》

文章目录 缘起:“躺嬴”的一天/ 001 第1章 名花解语,石心铁肠,当属“人工智能”/ 009 1.1 自学成才的人工智能/ 011 1.2 狂飙的话病ChatGPT / 017 1.3 算力、算法与数据:人工智能的核心/ 026 1.4 人工智能会抢走我们的饭碗吗/032 1.5 人工智能有多能/ 036 1.6 AI…

地址解析工具---AddressParseUtil

一、工具源码 package com.rural_vibration.common.utils;import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** description: 地址解析工具 <…

FTP服务之WindowsServer2019中搭建私有FTP服务器

WindowsServer2019搭建FTP服务器 文章目录 WindowsServer2019搭建FTP服务器1. 查看FTP服务是否开启2. 配置FTP服务站点3. 访问 1. 查看FTP服务是否开启 WindowsServer2019默认是开启FTP服务的&#xff0c;如果未开启&#xff0c;则按下面步骤开启即可 打开服务器管理 添加角色和…

java OA办公自动化系统

java OA办公自动化系统&#xff0c;java项目&#xff0c;springboot项目。eclipse和idea都能打开运行。 前端技术&#xff1a;Bootstrap&#xff0c;Jquery&#xff0c;My97 DatePicker&#xff0c;kindeditor&#xff0c;freemarker 后端技术&#xff1a;SpringBoot&#xf…

KVM 内存概述

KVM 内存概述 CPU缓存基本概念内存基本概念EPT和VPID内存过载使用大页透明大页透明大页使用 KSM NUMA CPU缓存基本概念 CPU工作过程中会直接读取内存的数据&#xff0c;而大部分同学对内存的感觉是内存条的一个概念&#xff0c;其实CPU中也有内存的概念&#xff0c;称之为L1-L…

langchain + hugginface入门体验

简介 本文记录一次使用langchain调用openai并部署在huggingface上的经历 安装环境依赖 我的python版本是3.9 pip install langchain pip install openai代码 app.py import streamlit as st # from langchain_community.chat_models import ChatOpenAI from langchain_openai …

qt5-入门

参考&#xff1a; qt学习指南 Qt5和Qt6的区别-CSDN博客 Qt 学习之路_w3cschool Qt教程&#xff0c;Qt5编程入门教程&#xff08;非常详细&#xff09; 本地环境&#xff1a; win10专业版&#xff0c;64位 技术选择 Qt5力推QML界面编程。QML类似HTML&#xff0c;可以借助CSS进…