Cisco交换机安全配置

Cisco交换机安全配置

前提

我们以下命令一般都要先进入Config模式

S1> enable
S1# conf t
S1(config)#

端口安全保护

禁用未使用的端口

以关闭fa0/1到fa0/24的端口为例

S1(config)# interface range fa0/1-24
S1(config-if-range)# shutdown

缓解MAC地址表攻击

防止CAM表溢出的最简单有效的方法是启用端口安全,它限制了端口上所允许的有效MAC地址数量。

我们以fa0/1为例子

S1(config)# interface fa0/1
S1(config-if)# switchport port-security

这里你可能会遇到报错,内容如下:

Command rejected: FastEthernet0/1 is a dynamic port.

这是因为端口安全只能在手动配置的接入模式(access)端口或手动配置的中继(trunk)端口上!

我们先将端口切换到access(如果是trunk的话命令中相应部分请改为trunk),然后开启端口安全。

S1(config-if)# switchport mode access
S1(config-if)# switchport port-security

接下来限制端口上MAC地址最大数量,默认值为1

S1(config-if)# switchport port-security maximum

当然我们可以手动置顶数目,范围在<1-8192>,我们这里以手动设置1为例

S1(config-if)# switchport port-security maximum 1
手动配置MAC

在接口配置模式中,执行以下命令,可手动指定安全MAC:

switchport port-security mac-address 这里写MAC地址

我们以aaaa.bbbb.1234地址为例

S1(config-if)# switchport port-security mac-address aaaa.bbbb.1234
动态获取

除了手动之外还有动态获取的方式。在执行switchport port-security之后,这个端口直接连接的设备的源MAC地址就会成为安全MAC。但是,这个地址不会添加到启动配置中,也就是说,交换机重启后必须重新学习MAC地址!!

动态获取-粘滞(Sticky)

管理员可以执行以下命令,将动态获取的MAC地址,写入到运行配置文件中

S1(config-if)# switchport port-security mac-address sticky

查看端口安全信息

我们可以在特权模式#下来查看端口安全的具体信息

同样我们以fa0/1为例子

S1# show port-security interface fa0/1

当然你在config及其子模式下可以用do来执行特权模式下的命令

S1(config-if)# do show port-security interface fa0/1

大致能看到如下字段(字段对应的值取决于你的配置)

S1# show port-security interface fa0/1
Port Security : Enabled
Port Status : Secure-up
Violation Mode : Shutdown
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 4
Total MAC Addresses : 2
Configured MAC Addresses : 1
Sticky MAC Addresses : 1
Last Source Address:Vlan : a41f.7302.375b:2
Security Violation Count : 0

还用一条命了可以查看安全MAC地址表

S1# show port-security address
S1# show port-security address
Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan Mac Address Type Ports Remaining Age
(mins)
---- ----------- ---- ----- -------------
1 a41f.7302.375b:2 SecureSticky Fa0/1 -
1 aaaa.bbbb.1234 SecureConfigured Fa0/1 -
-----------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port) : 1
Max Addresses limit in System (excluding one mac per port) : 8192

端口安全老化

通过端口安全老化可对端口上的动态和静态安全地址设置老化时间

端口老化时间有两种:

  • 绝对老化时间(Absolute):老化时间到期后删除MAC地址
  • 非活动老化时间(Inactivity):仅当端口上的安全地址在老化时间内

使用老化功能删除安全端口上的安全 MAC 地址,无需手动删除现有安全 MAC 地址。还可增加老化时间限制,

确保即使在添加新 MAC 地址时同样保持之前的安全 MAC 地址。可以对每个端口启用或禁用静态配置的安全地址老化。

switchport port-security aging { static | time time | type {absolute | inactivity}}

下面是各个参数的说明:

参数说明
static为此端口上静态配置的安全地址启用老化。
time time为此端口指定老化时间。范围为 0 至 1440 分钟。如果 时间为 0,则表示这个端口禁用老化。
type absolute设置绝对老化时间。所有安全地址 都会在到达设置的时间之后立刻在这个端口上老化,并且从 安全地址列表中被删除。
type inactivity设置不活动老化类型。这个端口上的安全地址只有在设定的时间范围内,没有数据流量来自安全地址,安全地址才会老化。

我们对把老化类型设置为非活动类型,并且时间为10分钟

S1(config-if)# switchport port-security aging time 10
S1(config-if)# switchport port-security aging type inactivity

端口安全违规模式

连接到端口的设备 MAC 地址与安全地址列表不一致,则会触发端口违规。在默认情况下,这个端口就会进入error-disabled状态

设置端口安全违规模式可以用以下命令:

switchport port-security violation { protect | restrict | shutdown}
模式说明
shutdown(默认)端口会立刻过渡到error-disabled状态,关闭端口LED并且发送一条系统日志消息。它会增加违规计数器的值。当一个安全端口处于error-disabled状态,管理员必须重新启用这个端口,这时需要输入shutdownno shutdown命令。
restrict端口会丢弃携带未知源地址的数据包,直到管理员删除了 足够数量的安全MAC地址,让安全MAC地址的数量降到了 最大值以下,或者管理员增加了最大值。这种模式会让违规计数器的值增加,并生成一条系统日志消息。
protect这是最不安全的安全违规模式。端口会丢弃携带未知源地址的数据包,直到管理员删除了足够数量的安全MAC地址,让安全MAC地址的数量降到了最大值以下,或者管理员增加了最大值。不会发送系统日志消息。

用一张图来概括

缓解VLAN攻击

VLAN攻击的方式

下列三种方式都可以发起VLAN跳跃攻击:

  • **发起攻击的主机伪造DTP消息,使交换机进入中继模式。**然后,攻击者可以发送标记为目标 VLAN 的流量,然后交换机向目的地传输数据包。
  • **引入非法交换机并启用中继。**然后攻击者就可以通过非法交换机访问被攻击交换机上的所有 VLAN。
  • 另一种VLAN跳跃攻击是双重标记 (Double-Tagging) 攻击,又称双封装 (double-encapsulated) 攻击。这种攻击方式利用的是大多数交换机的硬件工作原理。

缓解VLAN跳跃攻击的步骤

实际上很简单,我们就把开启自动的一些端口变为手动模式,然后对中继端口设置下本征VLAN即可。

  • 使用switchport mode access接口配置命令禁用非中继端口上的 DTP(自动中继)协商。
  • 禁用未使用的端口并将其放在未使用的 VLAN 中。
  • 使用switchport mode trunk命令手动启用中继端口上的中继链路。
  • 使用switchport nonegotiate命令禁用中继端口上的 DTP(自动中继)协商。
  • 使用switchport trunk native vlan 这里写VLAN号命令把本征VLAN设置为VLAN 1之外的其他 VLAN。

缓解DHCP攻击

什么是DHCP攻击

DHCP攻击针对的目标是网络中的DHCP服务器,原理是耗尽DHCP服务器所有的IP地址资源,使其无法正常提供地址分配服务。然后在网络中再架设假冒的DHCP服务器为客户端分发IP地址,从而来实现中间人攻击。

DHCP耗竭攻击可以使用端口安全来得到有效地缓解,因为每个发送的DHCP请求消息中使用一个唯一的源MAC地址。

但是,缓解 DHCP欺骗攻击需要采取更多保护措施。使用真实的接口 MAC地址作为源以太网地址,在DHCP负载中使用一个不同的以太网地址。这样就有可能导致端口安全无法发挥作用,因为源 MAC地址此时会是合法的。通过在可信端口上使用DHCP监听可缓解 DHCP 欺骗攻击。

DHCP监听

DHCP监听并不依赖源MAC地址。它的作用是判断 DHCP消息是否来自于管理员配置的可信或不可信源。接下来,它就会对 DHCP消息执行过滤,并且对来自不可信源的DHCP流量执行限速。

所有管理员可以管理的设备(如交换机、路由器和服务器)都是可信源。超出防火墙范围或者网络范围之外的设备都是不可信源。另外,所有接入端口一般都会视为不可信源。

这张图显示了一个关于可信端口和不可信端口的示例。

在启用了 DHCP监听之后,欺诈 DHCP服务器可能连接的是不可信端口。在默认情况下,所有接口都会被视为是不可信端口。可信端口往往是中继链路,以及与合法 DHCP服务器相连的那些端口。这些端口都必须由管理员手动配置为可信端口。

在创建 DHCP表时,其中会包含不可信端口上的设备源MAC地址,以及 DHCP服务器分配给这台设备的 IP地址。MAC 地址和IP地址是绑定的。因此,这个表也就称为DHCP监听绑定表

S1(config)# ip config snooping
S1(config)# interface f0/1
S1(config-if)# ip dhcp snooping trust
S1(config-if)# exit
S1(config)# interface range f0/5 - 24
S1(config-if-range)# ip dhcp snooping limit rate 6
S1(config-if-range)# exit
S1(config)# ip dhcp snooping vlan 5,10,50-52
S1(config)# end

上面的示例显示了如何在S1上配置 DHCP监听。请注意第一次如何启用 DHCP 监听。

然后可以明确信任向上连接 DHCP 服务器的接口。接下来,FastEthernet F0/5 到 F0/24 这个范围的端口均保持默认的不可信端口状态,因此这些端口还设置了每秒 6 个数据包的速率限制。最后,在 VLAN 5、10、50、51、和 52 上启用 DHCP监听

缓解ARP攻击

什么是ARP攻击

攻击方将自己MAC地址与其他人的IP封装成虚假的ARP报文,使被攻击方不停学习伪装条目,当被攻击方与伪装目标通信时,数据会送达攻击方,攻击方再将数据转发给伪装目标,即可实现双方正常通信情况下窃取通信数据。

当然这个过程可以简化成攻击方可以不停的发送一个伪装报文,不停的让被攻击方学习一个或多个条目,实现单向的断网攻击。

但无论是双向欺骗还是单向攻击都需要攻击者不断发送ARP报文。

动态ARP检测(DAI)

动态ARP 检测(DAI)需要使用DHCP监听,可以防止ARP攻击,因为这种特性可以:

  • 不会向同一 VLAN 中的其他端口转发无效或无故 ARP 应答。
  • 在不可信端口上拦截所有的ARP 请求和应答。
  • 每个被拦截的数据包都要接受检验,看它是否具有有效的 IP-MAC 绑定。
  • 丢弃并记录从无效绑定关系发来的ARP应答,以防止ARP毒化。
  • 如果超出了配置的ARP数据包DAI数量,端口就会进入error-disable状态。

要缓解 ARP欺骗和ARP毒化,可以执行下列 DAI实施的指导方针:

  • 全局启用 DHCP 监听。
  • 在选定的 VLAN 上启用 DHCP 监听。
  • 在选定的 VLAN 上启用 DAI。
  • 为 DHCP 监听和 ARP 检测配置可信端口。

通常建议将所有交换机的接入端口配置为不可信,将所有连接到其他交换机的上行链路端口配置为可信。

图中的示例拓扑标识了受信任和不受信任的端口:

S1(config)# ip dhcp snooping
S1(config)# ip dhcp snooping vlan 10
S1(config)# ip arp inspection vlan 10
S1(config)# interface fa0/24
S1(config-if)# ip dhcp snooping trust
S1(config-if)# ip arp inspection trust

还可以配置 DAI 以检查目的或源 MAC 和 IP 地址:

  • 目的 MAC - 根据ARP正文中的目的MAC地址检查以太网报头中的目的 MAC 地址。
  • 源 MAC - 根据ARP正文中的发送方MAC地址检查以太网报头中的源 MAC 地址。
  • IP 地址 - 在 ARP 正文中检查无效和意外IP地址,包括地址 0.0.0.0 和 255.255.255.255 以及所有IP组播地址。

在Config输入下方命令可以配置 DAI,在IP地址无效时丢弃ARP数据包。它可用于ARP数据包正文中的 MAC 地址与以太网报头中指定的地址不匹配的场合。

ip arp inspection validate {[src-mac] [dst-mac] [ip]}

缓解STP攻击

PortFast和BPDU防护

攻击者可以操纵生成树协议(STP),通过伪造根网桥和更改网络拓扑的方式发起攻击。为了缓解生成树(STP)操纵攻击,应该使用 PortFast和BPDU(桥协议数据单元)防护特性:

  • PortFast - 可让配置为接入端口或中继端口的接口直接从阻止状态变为转发状态,绕过侦听和学习状态。适用于所有最终用户端口。PortFast只应该配置在那些连接终端设备的端口上。
  • BPDU 防护(BPDU Guard) - BPDU 防护会立即让接收到 BPDU 的端口进入errordisable状态。BPDU防护也应该只配置在那些连接终端设备的端口上,这一点和PortFast特性相同。

配置PortFast防护

PortFast会绕过STP侦听(listening)和学习(learning)状态,把接入端口等待 STP收敛的时间降到最低。如果在连接到其他交换机的端口上启用 PortFast,则会产生形成生成树环路的风险。

可以使用接口配置命令spanning-tree portfast在接口上启用PortFast。另外,也可以通过全局配置命令spanning-tree portfast default以全局方式在所有接入端口上配置 Portfast。

要想验证是否 PortFast已经在全局启用,可以使用命令show running-config | begin span或命令show spanning-tree summary进行查看。要想验证是否PortFast已经在一个接口上启用,可以使用命令show running-config interface type/number进行查看,如下面的示例所示。可以特权模式下使用命令show spanning-tree interface type/number detail进行验证。

S1(config)# interface fa0/1
S1(config-if)# switchport mode access
S1(config-if)# spanning-tree portfast
S1(config-if)# exit
S1(config)# spanning-tree portfast default
S1(config)# exit

配置BPDU防护

即使启用了 PortFast,接口仍将侦听 BPDU。偶尔可能会收到意外 BPDU,或发生未经授权尝试将交换机添加到网络的操作。

如果在启用 BPDU 防护的端口上收到 BPDU,则该端口将进入错误禁用状态。这表示这个端口已经关闭,必须手动重新启用,或者通过全局命令 errdisable recovery cause psecure_violation让它自动恢复。

BPDU防护可以使用接口配置命令spanning-tree bpduguard enable在一个接口上启用。另外,也可以使用全局配置spanning-tree portfast bpduguard default在全部启用了PortFast的端口上启用 BPDU防护。要显示有关生成树状态的信息,可以使用命令show spanning-tree summary 。在这个示例中,针对接入模式的端口,PortFast和BPDU防护都是默认启用的。

请始终在所有已启用 PortFast 的端口上启用 BPDU 防护。

S1(config)# interface fa0/1
S1(config-if)# spanning-tree bpduguard enable
S1(config-if)# exit
S1(config)# spanning-tree portfast bpduguard default
S1(config)# end

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯刷题第六天(昨天忘记发了)

今天想从不一样的角度来解题&#xff1a;从时间紧张暴力求解到思路阔达直接通过所有案例 暴力方法&#xff1a; 思路第一眼看到这个问题我就想到了第一个思路就是先用两个数组一个存石子数一个存颜色状态&#xff0c;每次遍历一遍看看有没有相邻石子颜色一样且为和最小的。 im…

前端订阅后端推送WebSocket定时任务

0.需求 后端定时向前端看板推送数据&#xff0c;每10秒或者30秒推送一次。 1.前言知识 HTTP协议是一个应用层协议&#xff0c;它的特点是无状态、无连接和单向的。在HTTP协议中&#xff0c;客户端发起请求&#xff0c;服务器则对请求进行响应。这种请求-响应的模式意味着服务器…

Spring-IoC 基于注解

基于xml方法见&#xff1a;http://t.csdnimg.cn/dir8j 注解是代码中的一种特殊标记&#xff0c;可以在编译、类加载和运行时被读取&#xff0c;执行相应的处理&#xff0c;简化 Spring的 XML配置。 格式&#xff1a;注解(属性1"属性值1",...) 可以加在类上…

纯C代码模板

一、快排 void QuickSort(int *a,int left,int right){if(left>right) return;else{int low left,high right;int pivot a[low];while(low<high){while(a[high] > pivot && low < high){high--;}a[low] a[high]; //必须先动a[low]while(a[low] < …

工厂方法模式与抽象工厂模式的深度对比

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;设计模式深度解析&#xff1a;工厂方法模式与抽象工厂模式的深…

intellij idea 使用git撤销(取消)commit

git撤销(取消) 未 push的 commit Git&#xff0c;选择分支后&#xff0c;右键 Undo Commit &#xff0c;会把这个 commit 撤销。 git撤销(取消) 已经 push 的 commit 备份分支内容&#xff1a; 选中分支&#xff0c; 新建 分支&#xff0c;避免后续因为操作不当&#xff0c;导…

Spring重点知识(个人整理笔记)

目录 1. 为什么要使用 spring&#xff1f; 2. 解释一下什么是 Aop&#xff1f; 3. AOP有哪些实现方式&#xff1f; 4. Spring AOP的实现原理 5. JDK动态代理和CGLIB动态代理的区别&#xff1f; 6. 解释一下什么是 ioc&#xff1f; 7. spring 有哪些主要模块&#xff1f;…

layui框架实战案例(26):layui-carousel轮播组件添加多个Echarts图标的效果

在Layui中&#xff0c;使用layui-carousel轮播组件嵌套Echarts图表来实现多个图表的展示。 css层叠样式表 调整轮播图背景色为白色&#xff1b;调整当个Echarts图表显示loading…状态&#xff1b;同一个DIV轮播项目添加多个Echarts的 .layui-carousel {background-color: #f…

前端路径问题总结

1.相对路径 不以/开头 以当前资源的所在路径为出发点去找目标资源 语法: ./表示当前资源的路径 ../表示当前资源的上一层路径 缺点:不同位置,相对路径写法不同2.绝对路径 以固定的路径作为出发点作为目标资源,和当前资源所在路径没关系 语法:以/开头,不同的项目中,固定的路径…

当前2024阿里云服务器哪个地域价格比较优惠,哪个地域便宜?

目前2024年阿里云服务器地域对比哪个价格更优惠&#xff1f;华北6&#xff08;乌兰察布&#xff09;、华北3&#xff08;张家口&#xff09;、华北1&#xff08;青岛&#xff09;和华南2&#xff08;河源&#xff09;地域更便宜&#xff0c;云服务器吧yunfuwuqiba.com整理阿里云…

Python 网络请求:深入理解Requests库

目录 引言 一、Requests库简介 二、安装与基本使用 三、requests库的特性与优势 四、requests库在实际应用中的案例 1.get请求 2.post请求 3.超时重试 4.headers设置 5.session会话 6.携带cookie​​​​​​​ 7.携带代理​​​​​​​ 8.携带身份认证​​​​​…

SpringBoot学习笔记-S2

1. SpringBoot中的常见注解 RequestBody&#xff1a;使SpringMVC框架可自动读取请求体里面的JSON格式的数据&#xff0c;转换成map类型的集合对象RestController&#xff1a;开发RESTful API 时使用&#xff0c;等价于ResponseBody Controller。RestController和Controller的…

【简单讲解下WebSocket】

&#x1f308;个人主页:程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

卷积神经网络-池化层

卷积神经网络-池化层 池化层&#xff08;Pooling Layer&#xff09;是深度学习神经网络中的一个重要组成部分&#xff0c;通常用于减少特征图的空间尺寸&#xff0c;从而降低模型复杂度和计算量&#xff0c;同时还能增强模型的不变性和鲁棒性。 池化操作通常在卷积神经网络&am…

号卡极团分销管理系统 index.php SQL注入漏洞复现

0x01 产品简介 号卡极团分销管理系统,同步对接多平台,同步订单信息,支持敢探号一键上架,首页多套UI+商品下单页多套模板,订单查询支持实时物流信息、支持代理商自定义域名、泛域名绑定,内置敢探号、172平台、号氪云平台第三方接口以及号卡网同系统对接! 0x02 漏洞概述…

深入解析Hadoop生态核心组件:HDFS、MapReduce和YARN

这里写目录标题 01HDFS02Yarn03Hive04HBase1&#xff0e;特点2&#xff0e;存储 05Spark及Spark Streaming关于作者&#xff1a;推荐理由&#xff1a;作者直播推荐&#xff1a; 一篇讲明白 Hadoop 生态的三大部件 进入大数据阶段就意味着进入NoSQL阶段&#xff0c;更多的是面向…

如何用python绘制地图并计算地图上两点之间的距离【附源码】

一、这段代码用plotiy库绘制了可视化世界平面地图,计算了纽约和洛杉矶两个城市之间的距离,并将其打印输出。同时,在地图上显示了这两个城市的坐标点,具体代码如下: import plotly.graph_objects as go from geopy.distance import geodesic # 创建地图对象 fig = go.Fig…

Docker Desktop 不支持 host 网络模式

先把这个结论的放在前面&#xff0c;直接访问链接就能看到官方文档中已经明确说了不支持。 参考链接&#xff1a;docker desktop for windows 不支持 host 网络模式 以前对于 docker 的网络模式&#xff0c;一直只是了解&#xff0c;没有亲自尝试过。结果今天在尝试 docker 的 …

Android12 简单的共享内存驱动实现 参考Ashmem

Android12 共享内存驱动实现 SOC&#xff1a;RK3568 system&#xff1a;Android12 概述&#xff1a; 1. 概述 Ashmem&#xff08;Anonymous Shared Memory&#xff0c;Android 匿名共享内存&#xff09;&#xff0c;它基于 mmap 系统调用&#xff0c;可以让不同进程将同一段…

Flutter Web 的未来,Wasm Native 即将到来

早在去年 Google I/O 发布 Flutter 3.10 的时候就提到过&#xff0c; Flutter Web 的未来会是 Wasm Native &#xff0c;当时 Flutter 团队就表示&#xff0c;Flutter Web 的定位不是设计为通用 Web 的框架&#xff0c;类似的 Web 框架现在有很多&#xff0c;而 Flutter 的定位…