5.2 SSH和交换机端口安全概述

交换机的安全是一个很重要的问题,因为它可能会遭受到一些恶意的攻击,例如MAC泛洪攻击、DHCP欺骗和耗竭攻击、中间人攻击、CDP 攻击和Telnet DoS 攻击等,为了防止交换机被攻击者探测或者控制,必须采取相应的措施来确保交换机的安全性,常见的安全措施包括:配置访问密码、配置标语消息、远程管理使用SSHv2替代Telnet、禁用不需要的服务和应用、禁用未使用的端口、关闭SNMP或者使用SNMPv3、启用系统日志和及时安装最新的IOS软件等。部分安全措施如配置访问密码和配置标语消息等在第3章已经讨论过。

5.2.1 SSH简介

采用Telnet远程管理设备时对登录身份验证和通信设备之间传输的数据都采用不安全的明文传输,不能有效防止远程管理过程中的信息泄露问题。SSH是Secure Shell(安全外壳)的简称,当用户通过一个不能保证安全的网络环境远程登录到设备时,SSH可以利用加密和验证功能提供安全保障,保护设备不受诸如IP地址欺诈、明文密码截取等攻击。SSH工作端口为TCP22端口。SSH目前包括SSH1和SSH2两个版本,而且两个版本不兼容,通信双方通过协商确定使用的版本。为实现SSH的安全连接,在整个通信过程中服务器端与客户端要经历版本号、密钥和算法、验证阶段协商以及会话请求和会话交互5个阶段,由于SSH版本2在数据加密和完整性验证方面更加强大,建议使用。

5.2.2 交换机端口安全简介

交换机依赖CAM表转发数据帧,当数据帧到达交换机端口时,交换机可以获得其源MAC地址并将其记录在CAM表中。如果CAM表中存在目的MAC地址条目,交换机将把帧转发到CAM表中指定的MAC地址所对应的端口。如果MAC地址在CAM表中不存在,则交换机将帧转发到除收到该帧端口外的每一个端口(即未知单播帧泛洪)。然而CAM表的大小是有限的,MAC泛洪攻击正是利用这一限制,使用攻击工具以大量无效的源MAC地址发送给交换机,直到交换机CAM表被填满,这种使得交换机CAM表溢出的攻击称为MAC泛洪攻击。当CAM表被填满时,交换机将接收到的流量泛洪到所有端口,因为它在自己的CAM表中找不到对应目的MAC地址的端口号,交换机实际上是起到类似于集线器的作用。

配置交换机端口安全特性可以防止MAC泛洪攻击。端口安全限制交换机端口上所允许的有效MAC地址的数量或者特定的MAC地址。端口安全工作方式主要有如下3种。

  1. 静态:只允许具有特定MAC地址的终端设备从该端口接入交换机。如果配置静态端口安全,那么当数据包的源MAC地址不是静态指定的MAC地址时,交换机将按照惩罚模式进行惩罚,并且端口不会转发这些数据包。
  2. 动态:通过限制交换机端口接入MAC地址的数量来实现端口安全。默认情况下,交换机每个端口只允许一个 MAC地址接入该端口。
  3. 粘滞:这是一种将动态和静态端口安全结合在一起的方式。交换机端口通过动态学习获得终端设备的MAC地址,然后将信息保存到运行配置文件中,结果就像静态方式,只不过MAC地址不是管理员静态配置的,而是交换机自动学习的。当学到的MAC地址的数量达到端口限制的数量时,交换机就不会自动学习了。

无论采用以上哪种方式配置端口安全,当尝试访问该端口的终端设备违规时,都可以通过如下三种模式之一进行惩罚。

  1. 保护(Protect):当新的终端设备接入交换机时,如果该端口的 MAC 地址条目超过最大数目或者与静态配置的 MAC地址不同,则这个新的终端设备将无法接入,而原有的设备不受影响,交换机不发送警告信息。
  2. 限制(Restrict):当新的终端设备接入交换机时,如果该端口的 MAC 地址条目超过最大数目或者与静态配置的MAC地址不同,则这个新的终端设备将无法接入,而原有的设备不受影响,交换机会发送警告信息,同时会增加违规计数器的计数。
  3. 关闭(Shutdown):当新的终端设备接入交换机时,如果该端口的MAC地址条目超过最大数目或者与静态配置的MAC地址不同,交换机该端口将会被关闭,并立即变为错误禁用(error-disabled)状态,这个端口下的所有设备都无法接入交换机,交换机会发送警告信息,同时会增加违规计数器的计数。当交换机端口处于error-disabled状态时,在端口先输入shutdown命令,然后再输入 no shutdown命令可重新开启端口,如果仍有违规终端设备接入,则继续进入error-disabled 状态。这种惩罚模式是交换机端口安全的默认惩罚模式。3种交换机端口安全交换机端口安全惩罚模式比较如下表所示。

3种交换机接口安全惩罚模式比较

|----------|----------|------|--------|------|
| 惩罚模式 | 转发违规设备流量 | 发出警告 | 增加违规计数 | 关闭端口 |
| Protect | 否 | 否 | 否 | 否 |
| Restrict | 否 | 是 | 是 | 否 |
| Shutdown | 否 | 是 | 是 | 是 |

相关推荐
恰薯条的屑海鸥3 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十五期-URL重定向模块)
学习·安全·web安全·渗透测试·网络安全学习
Tipray20063 小时前
让敏感数据在流转与存储中始终守护在安全范围
安全
码农101号3 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
powerfulzyh4 小时前
非Root用户启动SSH服务经验小结
运维·ssh
云道轩4 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
前端页面仔4 小时前
易语言是什么?易语言能做什么?
开发语言·安全
爱学习的小道长4 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb4 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
402 Payment Required4 小时前
serv00 ssh登录保活脚本-邮件通知版
运维·chrome·ssh
小柏ぁ4 小时前
calico/node is not ready: BIRD is not ready: BGP not established with xxx
运维·docker·kubernetes