端口安全技术原理与应用
目录
概述
端口安全原理
端口安全术语
二层安全地址配置
端口模式下配置
全局模式下配置
动态学习
二层数据包处理流程
三层安全地址配置
三层数据包处理流程
端口安全违例动作和安全地址老化时间
查看命令
端口安全的注意事项
小结
概述
- 园区网的接入安全关系着使用者的信息安全,因此既要保证合法用户正常接入,也要防止非法用户的接入。两者均要满足的情况下,就需要接入设备能够辨别哪些报文是合法的,哪些是非法的;
- 设备MAC表项资源有限,需要一种技术,能够防止设备遭受MAC扫描攻击时导致MAC表项耗尽;
- 端口安全是实现以上需求的技术之一
端口安全原理
- 基本原理:通过在端口绑定合法地址的方法来限制端口的接入访问
- 实现方式:在接入交换机上建立端口和MAC、IP,或MAC+IP的对应关系表,对该端口收到的报文进行控制。当该端口收到符合对应关系的报文时,进行正常转发,当收到的不符合该对应关系的报文进行下一步判断
端口安全术语
安全端口:1.锐捷设备只有Access端口可以配置为安全端口,并且不能是端口镜像目的端口
锐捷设备的端口安全功能默认关闭
安全地址:在安全端口上绑定的地址称为安全地址
二层安全地址:即基于MAC的安全地址
三层安全地址:即基于IP或IP+MAC的安全地址
安全地址绑定方式:
--静态绑定方式,即手工命令进行,可以绑定二层和三层安全地址(即MAC、IP、MAC+IP)
--动态绑定方式,即让交换机自动学习地址并转化为安全地址,只能学习二层安全地址;
- 两种方式下都可以配置最大的安全地址限制个数。默认为128个,通过限制安全地址个数的方式,防止设备遭受MAC扫描攻击时,MAC表项占满
端口安全违例动作:
Protect:端口安全默认动作,当违例产生时,安全端口将丢弃违例的报文;
Restrict:当违例产生时,将发送一个Trap通知;
Shutdown:当违例产生时,将关闭端口并发送一个Trap通知;
二层安全地址配置
端口模式下配置
- Ruijie(config)#interface gigabitEthernet 0/1
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security --开启端口安全功能
- Ruijie(config-if-GigabitEthernet 0/1)#switchport access vlan 2
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security mac-address 144f.d7c0.79c3 vlan 2 --如不配VLAN, 默认为接口VLAN
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security maximum 1 --配置安全地址限制数量,可选范围1-128,默认128
全局模式下配置
- Ruijie(config)#interface gigabitEthernet 0/1
- Ruijie(config-if-GigabitEthernet 0/1)#switchport access vlan 2
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security maximum 1 --配置安全地址限制数量,可选范围1-128,默 认128
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security --开启端口安全功能
- Ruijie(config)# switch port-security interface gigabitEthernet 0/1 mac-address 144f.d7c0.79c3 --全局模式下配置
动态学习
- Ruijie(config)#interface gigabitEthernet 0/2
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security --开启端口安全功能
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security mac-address sticky --开启二层安全地址动态学习功能
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security maximum 1 --配置安全地址限制数量,可选范围1-128, 默认128
二层数据包处理流程
- 端口收到数据流时,会对数据的报文地址进行解析。仅二层安全地址绑定时,步骤如下:
- 先解析报文的二层地址,如果源地址在安全地址列表中,则认为是合法报文;
- 如果不在安全地址列表,检查已经绑定的二层安全地址个数是否达到限制,如果未达到限 制,则把该地址在端口进行动态绑定,变为该端口的二层安全地址(显示为dynamic);
- 如果已经达到限制,认为发现非法报文,进行违例处理
三层安全地址配置
- 方式一:端口模式下,仅绑定IP
- Ruijie(config)#interface gigabitEthernet 0/1
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security
- Ruijie(config-if-GigabitEthernet 0/1)#switchport access vlan 2
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security binding 172.16.1.10
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security maximum 1
- 配置效果:该端口下只允许源IP地址为172.16.1.10(MAC地址无限制)的终端报文通过,其他地址的终端报文则无法通过
- 方式二:端口模式下,绑定IP+MAC
- Ruijie(config)#interface gigabitEthernet 0/1
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security
- Ruijie(config-if-GigabitEthernet 0/1)#switchport access vlan 2
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security binding 144f.d7c0.79c3 vlan 2 172.16.1.10
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security maximum 1
- 配置效果:该端口下只允许源Mac地址为144f.d7c0.79c3,且原IP地址为172.16.1.10的终端报文通过,其他终端接入后无法访问网络
三层数据包处理流程
1.当符合二层安全地址表项后,还需要匹配三层安全地址绑定才算是合法报文;
2.在仅三层绑定时,只需匹配IP地址,匹配成功则符合合法报文,否则丢弃;
3.在IP+MAC绑定时,需要同时匹配IP+MAC ,同时匹配成功才算合法报文,否则丢弃
配置了IP+MAC绑定或仅IP绑定,交换机还是会动态学习下联用户的MAC地址
(三层安全地址不占用安全地址条目,即安全地址条目限制只对二层安全地址生效)
匹配时,三层安全地址表只要有一条匹配,则算匹配成功
端口安全违例动作和安全地址老化时间
- 违例动作:
- Ruijie(config)#interface gigabitEthernet 0/1
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security violation [ protect | restrict | shutdown ]
- Protect:发现违例,则丢弃违例的报文,默认违例动作为Protect
- Restrict :发现违例,则丢弃违例的报文并且发送Trap
- Shutdown:发现违例,则丢弃报文、并关闭接口
- 老化时间(对于所有的安全地址,到达老化时间后,安全地址将会老化掉,并可以重新进行学习或配置):
- Ruijie(config)#interface gigabitEthernet 0/1
- Ruijie(config-if-GigabitEthernet 0/1)#switchport port-security aging time [ static | time 0-1440 ]
- time:范围0-1440分钟。0则表示老化关闭,默认为0
- static :表示老化时间将同时应用于动态学习的安全地址和手工配置的安全地址
查看命令
查看所有的安全地址:
Show port-security address
查看所有的安全绑定:
Show port-security binding
查看所有生效的端口安全地址和端口安全绑定记录:
Show port-security all
查看某接口上的端口安全配置情况
Show port-security int g0/2
查看端口安全统计信息:
Show port-security
端口安全的注意事项
1.安全端口不能是SPAN的目的端口;
2.安全端口不能是DHCP Snooping信任端口;
3.端口安全和其他接入功能如全局IP+MAC安全地址绑定、IP Source Guard等共用时,必须 满足所有的安全检查才能进入交换机;
4.如果交换机同一VLAN下的0/1端口设置了端口安全(将PC1的MAC绑定),但是同VLAN 下的其他端口没有设置端口安全,那么PC1插到0/1口可以上网,但是插到其他端口是不能上网的
小结
- 端口安全技术可以基于手工配置或者动态学习的方式形成安全表项,设备会以安全表项为检查基线,对经过接口的报文进行合法性检查,对合法的报文转发,非法的报文采取不同的违例动作;
- 端口安全分为二层端口安全和三层端口安全,其中二层安全地址会占用安全地址表项以及安全地址限制数;
- 二层端口安全配置之下的报文处理流程:先检查报文源地址是否在安全地址表中,在则放行,不在则检查安全地址数是否达到最大限制,如果达到则丢弃报文,如果没达到则会将该地址学习到安全地址表中,并对报文进行转发;
- 三层端口安全配置之下的报文处理流程:三层安全地址表只要有一条匹配,则算匹配成功
- 二层和三层端口安全同时配置的情况下,当符合二层安全地址表项后,还需匹配三层安全地址绑定才算是合法报文
相关文章:
端口安全技术原理与应用
目录 概述 端口安全原理 端口安全术语 二层安全地址配置 端口模式下配置 全局模式下配置 动态学习 二层数据包处理流程 三层安全地址配置 三层数据包处理流程 端口安全违例动作和安全地址老化时间 查看命令 端口安全的注意事项 小结 概述 园区网的接入安全关系着…...
数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall
数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall 数据集-目标检测系列-鲨鱼检测数据集 shark 数据量:6k 数据样例项目地址: gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview github: https://github.com/Te…...
数字乡村解决方案-3
1. 国家大数据战略与数字乡村 中国第十三个五年规划纲要强调实施国家大数据战略,加快建设数字中国,推进数据资源整合和开放共享,保障数据安全,以大数据助力产业转型升级和提高社会治理的精准性与有效性。 2. 大数据与数字经济 …...
WPF文本框无法输入小数点
问题描述 在WPF项目中,文本框BInding双向绑定了数据Text“{UpdateSourceTriggerPropertyChanged}”,但手套数据是double类型,手动输入数据时,小数点输入不进去 解决办法: 在App.xaml.cs文件中添加语句: …...
R开头的后缀:RE
RE表示方位上的向后,一种时空上的折返,和表示否定意味的不。 68.re- 空间顺序 ①表示"向后,相反,不" RE表示正向抵抗的力的词语,和情绪的词语,用来表示一种极力的反抗和拒绝,包括…...
Vue2配置环境变量的注意事项
在实际开发中时常会遇到需要开发环境与生产环境中一些参数的替换,为了方便线上线下环境变量切换可以利用node中的process进行环境变量管理 实现步骤如下: 1.在 根目录 新增环境文件 .env.development 和 .env.production 注意文件名称保持一致( 需要强调的是文件中的变量名切…...
机器学习:探索未知边界,解锁智能潜力
欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 在这个日新月异的科技时代,机器学习作为人工智能领域的核心驱动力,正以前所未有的速度改变着我们的世界。从智能家居的个性化推荐到自动驾驶汽车的精准导航,从医疗诊断的辅助…...
万户OA-ezOFFICE fileUpload.controller 任意文件上传漏洞复现
0x01 产品描述: 万户OA(Office Automation)是一款企业级协同办公管理软件,旨在为企业提供全面的办公自动化解决方案。万户ezOFFICE存在任意文件上传漏洞。攻击者可以通过该远程下载任意文件到目标服务器,导致攻击者可获…...
Time-MoE : 时间序列领域的亿级规模混合专家基础模型
Time-MoE : 时间序列领域的亿级规模混合专家基础模型 时间序列预测一直是量化研究和工业应用中的重要课题。随着深度学习技术的发展,大规模预训练模型在自然语言处理和计算机视觉领域取得了显著进展,但在时间序列预测领域,这些模型的规模和运…...
Spring Boot入门指南
前言 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。本文将详细介绍 Spring Boot 的基本概念、环境搭建、第一…...
MYSQL(学习笔记)
<div>深分页怎么优化?</div> <div>还是以上面的SQL为空:select * from xxx order by id limit 500000, 10;</div> <div>方法一:</div> <div>从上面的分析可以看出,当offset非常大时&am…...
学校周赛(1)
A - Short Sort 题目: 思路: 本条题目只允许改一处地方,只有三个字母,我们可以直接枚举所有移动过的结果,同时使用哈希去记录其值,对于每一个输入我们都寻找是否有这个值记录,有则输出YES否则…...
人生苦短,我用Python✌
面向代码的解释型语言 数据开发和AI 编程语言:让计算机了解我们干什么,翻译官 1.下载软件 解释器安装 点击第二个 改路径 D:\python 安装 测试 winr打开 输入代码 输出 退出环境 exit() 新建文本文档后缀改成py 编写 运行 安装编写代码…...
uniapp js判断key是否在json中?
推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...
Codeforces Round 975 (Div. 2) C. Cards Partition
题目链接:题目 大意: 给出若干种卡片,每种卡片有一定数量,你可以加入不超过 k k k张任意已给出种类的卡片,使得它们可以被分成若干组,每组容量一定,且同组内不存在相同种类的卡片,…...
Qt 首次配置 Qt Creator 14.01 for Python
前言: 如何用QT实现Python的配置的交互界面。本文从0开始,进行实践的介绍。 在上一节里面,我们做了社区版本的配置: https://blog.csdn.net/yellow_hill/article/details/142597007?spm1001.2014.3001.5501 这一节࿰…...
【python】代码发布前检查- vulture:查找死代码
分析Python项目中未被使用的.py文件 Vulture: Vulture是一个专门用于查找Python代码中的死代码的工具。它可以识别未使用的代码,包括未导入的模块。 安装: pip install vulture使用: vulture your_project_directory...
Yolov10环境配置
参考文章:1.YOLOv10超详细环境搭建以及模型训练(GPU版本)-CSDN博客 2.Windows下安装pytorch教程(下载.whl的方式)_pytorch whl-CSDN博客 安装步骤和文件夹顺序一样 1.安装CUDA和cuDNN 1.1安装CUDA 1.1.1查看当前你的电脑显卡支持的最高CUD…...
iOS 提取图片的主题色,并支持灵活提取
遇到一个需求,要提取图片中的色调,但还有一点特殊的需求,就是不是提取颜色最多的色调,也不是平均的色调,是图片中偏暗的色调 这就需要我们动态的调整我们提取的算法, 下面就看代码 dispatch_async(dispatch…...
语雀笔记使用记录
初识语雀 语雀官网 语雀帮助 教你如何使用语雀提高效率 语雀极简使用指南 | 10个常用技巧,带你快速入门 语雀安装 语雀下载地址 根据自己的pc平台下载对应的版本,然后傻瓜式安装即可 初试语雀 语雀为云笔记,并且其特性比较符合我个人的需求…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
