以太网交换安全:端口安全

news/2024/12/22 2:05:19/

一、端口安全介绍

端口安全是一种网络设备防护措施,通过将接口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC和Sticky MAC),阻止除安全MAC和静态MAC之外的主机通过本接口和设备通信,从而增强设备的安全性。以下是对它的详细介绍:

  1. 基本原理:端口安全通过记录连接到交换机端口的以太网MAC地址(网卡号),并只允许特定的MAC地址通过本端口通信来实现安全控制。当其他MAC地址尝试通过该端口时,会被阻止,从而防止非法设备的接入和数据包的传输。
  2. 主要功能:端口安全能够限制特定端口上可以学习和接受的MAC地址数量,超过这个数量后,新的MAC地址将无法通过该端口进行通信。当检测到非法MAC地址或未授权的设备试图通过端口时,端口安全机制会采取一系列保护措施,如丢弃非法报文、发送警告消息等。
  3. 应用场景:端口安全技术广泛应用于各种需要严格网络安全控制的场合,如企业网络、数据中心、教育机构等。在无线网络环境中,端口安全同样发挥着重要作用,通过与802.1X认证、MAC地址过滤等技术结合,确保无线网络的安全性。
  4. 配置方式:管理员可以通过静态绑定的方式,手动指定允许通过特定端口的MAC地址,这种方式适用于固定不变的网络环境。对于动态变化的网络环境,可以采用动态学习的方式,让交换机自动学习并记录通过端口的MAC地址。
  5. 违规动作:当端口接收到未经允许的MAC地址流量时,交换机会根据预先设置的策略执行相应的违规动作,如关闭端口、发送警告消息等。
  6. 安全优势:端口安全能够有效防止未经授权的设备接入网络,减少潜在的安全风险。通过对端口上的MAC地址进行严格控制,可以有效防止MAC地址泛洪攻击,保护网络的稳定性和可用性。
  7. 安全挑战:随着网络环境的不断变化和发展,端口安全策略可能需要不断调整和优化,以应对新的安全威胁和挑战。虽然端口安全能够提供一定程度的安全保障,但仍需与其他安全技术和管理措施相结合,形成多层次、全方位的安全防护体系。

二、安全MAC地址的分类

安全MAC地址主要分为安全动态MAC地址、安全静态MAC地址和Sticky MAC地址三类。以下是对这三类地址的详细介绍:

  1. 安全动态MAC地址:当使能端口安全但未使能Sticky MAC功能时,接口上学习到的动态MAC地址会被转换为安全动态MAC地址。在设备重启后,这些表项会丢失,需要重新学习。缺省情况下,这些地址不会被老化,除非配置了安全MAC的老化时间。安全动态MAC地址的老化类型分为绝对时间老化和相对时间老化。
  2. 安全静态MAC地址:当使能端口安全时,可以通过手工配置的方式设置静态MAC地址。这些地址不会因设备的老化或重启而失效,提供了更高的安全性和稳定性。
  3. Sticky MAC地址:当使能端口安全后又同时使能Sticky MAC功能时,接口上的安全动态MAC地址表项将转化为Sticky MAC地址。这些地址也不会因设备的老化或重启而失效,同样提供了高度的安全性和稳定性。

三、实验

实验目的:
掌握交换机端口安全的基本配置 
实验步骤:
1. 配置S1的G0/0/1口的端口安全
2. 使用PC1、PC2访问PC4,查看S1的mac地址表
3. 在S2设备上接入一台非法设备,尝试访问PC4
4. 配置S1的G0/0/2口为安全静态mac
5. 配置S1的G0/0/3口为sticky mac

(1)配置G0/0/1的端口安全,设置它的MAC地址最大学习数量为2,设置它的安全动作为shutdwon关闭接口

[S1]int g0/0/1
[S1-GigabitEthernet0/0/1]port-security enable   //开启端口安全功能
[S1-GigabitEthernet0/0/1]port-security max-mac-num 2   //限制最大学习数量为2
[S1-GigabitEthernet0/0/1]port-security protect-action shutdown    //配置安全保护动作为shutdown

配置完后,去ping10.1.1.4,将PC1和PC2的MAC地址学习到MAC地址表里去

可以看到PC1和PC2的MAC地址已经学习到地址表里了,这时我们就可以去用攻击者去ping10.1.1.4,就会执行设置的安全动作关闭接口

可以看到G0/0/1的接口已经关闭说明我们的安全设置已经完成

注:要打开接口可以进入G0/0/1的接口用restart来打开接口

(2)配置S1的G0/0/2接口为安全静态MAC地址

安全静态MAC地址(手动粘贴),首先开启粘贴(sticky)功能,手动将MAC地址配置到VLAN1上

[S1]int g0/0/2
[S1-GigabitEthernet0/0/2]port-security enable     //开启端口安全功能
[S1-GigabitEthernet0/0/2]port-security mac-address sticky   //开启粘贴MAC功能

[S1-GigabitEthernet0/0/2]port-security mac-address sticky 5489-9809-5783 vlan 1  //配置VLAN 1的安全静态MAC地址
[S1-GigabitEthernet0/0/2]port-security max-mac-num 1   //限制最大学习数为1

我们可以发现即使没有进行通信我们也可以直接查看到G0/0/2上有MAC地址,所以MAC地址已经被静态绑定到G0/0/2上了
(3)配置S1的G0/0/3接口为sticky mac

配置sticky MAC(自动粘贴),首先开启sticky功能,然后进行通信,将MAC地址自动粘贴到MAC地址表上

[S1]int g0/0/3
[S1-GigabitEthernet0/0/3]port-security enable
[S1-GigabitEthernet0/0/3]port-security mac-add sticky
[S1-GigabitEthernet0/0/3]port-security max-mac-num 1
 

我们可以看到PC4没去通信之前,MAC地址表是没有G0/0/3所对应的MAC地址

可以看到通信之后,MAC地址表上G0/0/3学习到了MAC地址

四、总结

端口安全作为一种重要的网络安全技术手段,在保护网络免受未经授权访问和潜在安全威胁方面发挥着关键作用。


http://www.ppmy.cn/news/1534387.html

相关文章

go基础面试题汇总第一弹

init函数是什么时候执行的? init的函数的作用是什么? 通常作为程序执行前包的初始化,例如mysql redis 等中间件的初始化 init函数的执行顺序是怎样的? 分不同情况来回答: 在同一个go文件里面如果有多个init方法,它们…

IDEA在git提交时添加忽略文件

在IntelliJ IDEA中,要忽略target目录下所有文件的Git提交,你可以通过设置.gitignore文件来实现。以下是步骤和示例代码: 1、打开项目根目录下的.gitignore文件。也可以先下载这个.ignore插件。 2、如果不存在,利用上面的插件新建…

ElasticSearch备考 -- 多字段查询

一、题目 索引task有3个字段a、b、c,写一个查询去匹配这三个字段为mom,其中b的字段评分比a、c字段大一倍,将他们的分数相加作为最后的总分数 二、思考 通过题目要求对多个字段进行匹配查询,可以考虑multi match、bool query操作。…

从0学习React(5)---通过例子体会setState

上篇文章中,我们讲到了通过setState来更新组件的状态。我觉得上篇文章我讲的已经是比较详细的了,而且讲的很通俗易懂。但是上篇文章终归还是理论,没有实践,所以还是学了个表面而已。这篇文章我就结合一点实践来讲讲怎么使用这个se…

Spring Boot 进阶-Spring Boot 开发第一个Web接口

在前面的文章中我们对Spring Boot的配置以及日志配置有了大概的了解,在我们搭建完成第一个Spring Boot项目之后也提到了一个概念就是RestFul风格的接口开发。下面我们就来详细介绍一下使用Spring Boot如何去开发一个RestFul的Web接口。 准备 在开发接口之前,需要引入的就是W…

鸿蒙harmonyos next纯flutter开发环境搭建

公司app是用纯flutter开发的,目前支持android和iOS,后续估计也会支持鸿蒙harmonyos。目前谷歌flutter并没有支持咱们国产手机操作系统鸿蒙harmonyos,于是乎国内有个叫OpenHarmony-SIG的组织,去做了鸿蒙harmonyos适配flutter开发的…

云原生周刊:Argo CD v2.13 发布候选版本丨2024.9.30

开源项目推荐 Argo Events Argo Events 是一款事件驱动的工作流自动化框架,专门为 Kubernetes 环境开发。 UptimeFlare UptimeFlare 是一个基于 Cloudflare Workers 的免费无服务器监控和状态页开源项目 BunkerWeb BunkerWeb 是一个开源的下一代 Web 应用防火…

项目-坦克大战学习-人机随机生成

想要做到人机随机生成我们需要做到以下几点 1,确定随机生成的位置 2,确定随机生成人机的样式 3,实例化人机 4,绘制人机 在项目中我们由三个位置让人机生成,但是每次生成人机就需要在3个位置中随机挑选一个&#x…