交换机的安全是一个很重要的问题,因为它可能会遭受到一些恶意的攻击,例如MAC泛洪攻击、DHCP欺骗和耗竭攻击、中间人攻击、CDP 攻击和Telnet DoS 攻击等,为了防止交换机被攻击者探测或者控制,必须采取相应的措施来确保交换机的安全性,常见的安全措施包括:配置访问密码、配置标语消息、远程管理使用SSHv2替代Telnet、禁用不需要的服务和应用、禁用未使用的端口、关闭SNMP或者使用SNMPv3、启用系统日志和及时安装最新的IOS软件等。
SSH简介
采用Telnet远程管理设备时对登录身份验证和通信设备之间传输的数据都采用不安全的明文传输,不能有效防止远程管理过程中的信息泄露问题。SSH是Secure Shell(安全外壳)的简称,当用户通过一个不能保证安全的网络环境远程登录到设备时,SSH可以利用加密和验证功能提供安全保障,保护设备不受诸如IP地址欺诈、明文密码截取等攻击。SSH工作端口为TCP22端口。SSH目前包括SSH1和SSH2两个版本,而且两个版本不兼容,通信双方通过协商确定使用的版本。为实现SSH的安全连接,在整个通信过程中服务器端与客户端要经历版本号、密钥和算法、验证阶段协商以及会话请求和会话交互5个阶段,由于SSH版本2在数据加密和完整性验证方面更加强大,建议使用。
交换机端口安全简介
交换机依赖CAM表转发数据帧,当数据帧到达交换机端口时,交换机可以获得其源MAC地址并将其记录在CAM表中。如果CAM表中存在目的MAC地址条目,交换机将把帧转发到CAM表中指定的MAC地址所对应的端口。如果MAC地址在CAM表中不存在,则交换机将帧转发到除收到该帧端口外的每一个端口(即未知单播帧泛洪)。然而CAM表的大小是有限的,MAC泛洪攻击正是利用这一限制,使用攻击工具以大量无效的源MAC地址发送给交换机,直到交换机CAM表被填满,这种使得交换机CAM表溢出的攻击称为MAC泛洪攻击。当CAM表被填满时,交换机将接收到的流量泛洪到所有端口,因为它在自己的CAM表中找不到对应目的MAC地址的端口号,交换机实际上是起到类似于集线器的作用。
配置交换机端口安全特性可以防止MAC泛洪攻击。端口安全限制交换机端口上所允许的有效MAC地址的数量或者特定的MAC地址。端口安全工作方式主要有如下3种。
- 静态:只允许具有特定MAC地址的终端设备从该端口接入交换机。如果配置静态端口安全,那么当数据包的源MAC地址不是静态指定的MAC地址时,交换机将按照惩罚模式进行惩罚,并且端口不会转发这些数据包。
- 动态:通过限制交换机端口接入MAC地址的数量来实现端口安全。默认情况下,交换机每个端口只允许一个 MAC地址接入该端口。
- 粘滞:这是一种将动态和静态端口安全结合在一起的方式。交换机端口通过动态学习获得终端设备的MAC地址,然后将信息保存到运行配置文件中,结果就像静态方式,只不过MAC地址不是管理员静态配置的,而是交换机自动学习的。当学到的MAC地址的数量达到端口限制的数量时,交换机就不会自动学习了。
无论采用以上哪种方式配置端口安全,当尝试访问该端口的终端设备违规时,都可以通过如下三种模式之一进行惩罚。
- 保护(Protect):当新的终端设备接入交换机时,如果该端口的 MAC 地址条目超过最大数目或者与静态配置的 MAC地址不同,则这个新的终端设备将无法接入,而原有的设备不受影响,交换机不发送警告信息。
- 限制(Restrict):当新的终端设备接入交换机时,如果该端口的 MAC 地址条目超过最大数目或者与静态配置的MAC地址不同,则这个新的终端设备将无法接入,而原有的设备不受影响,交换机会发送警告信息,同时会增加违规计数器的计数。
- 关闭(Shutdown):当新的终端设备接入交换机时,如果该端口的MAC地址条目超过最大数目或者与静态配置的MAC地址不同,交换机该端口将会被关闭,并立即变为错误禁用(error-disabled)状态,这个端口下的所有设备都无法接入交换机,交换机会发送警告信息,同时会增加违规计数器的计数。当交换机端口处于error-disabled状态时,在端口先输入shutdown命令,然后再输入 no shutdown命令可重新开启端口,如果仍有违规终端设备接入,则继续进入error-disabled 状态。这种惩罚模式是交换机端口安全的默认惩罚模式。3种交换机端口安全交换机端口安全惩罚模式比较如下表所示。
3种交换机接口安全惩罚模式比较
惩罚模式 | 转发违规设备流量 | 发出警告 | 增加违规计数 | 关闭端口 |
Protect | 否 | 否 | 否 | 否 |
Restrict | 否 | 是 | 是 | 否 |
Shutdown | 否 | 是· | 是 | 是 |