一、端口安全概述
为什么需要端口安全?
说实话,我刚入行那会儿,觉得交换机端口安全就是个摆设。直到有一次,客户公司内部网络被攻击,原因就是有人随便插了个无线路由器到办公网口上。嗯,从那以后,我再也不敢小看端口安全了。
你想想看,一个企业网络里,交换机端口是最容易被忽视的入口。任何一个人,只要拿着笔记本电脑往墙上的网口一插,就能直接接入内网。这就像你家大门没上锁,谁都能进来溜达一圈。
我在项目中遇到过这样的情况:某公司财务部员工离职后,他的工位网口被新员工使用。结果新员工的电脑中了病毒,直接在内网横向扩散,导致整个财务系统瘫痪了三天。事后排查发现,如果当时启用了端口安全,这种问题完全可以避免。
端口安全主要解决以下几个痛点:
- 非法设备接入——防止未授权的电脑、路由器、AP 等设备接入网络
- MAC 地址欺骗——防止攻击者伪造合法设备的 MAC 地址进行中间人攻击
- DHCP 耗尽攻击——防止攻击者通过大量伪造 MAC 地址耗尽 DHCP 地址池
- 网络资源滥用——防止员工私自接入个人设备占用带宽
端口安全的基本概念
端口安全,说白了就是给交换机的每个端口设置一个「白名单」。只有白名单里的设备才能通过这个端口通信。其他设备想进来?门儿都没有。
核心概念其实就三个:
| 概念 | 说明 | 我的经验 |
|---|---|---|
| 安全 MAC 地址 | 允许通过该端口的 MAC 地址列表 | 我习惯手动配置关键设备的 MAC,比如服务器、打印机 |
| 最大安全 MAC 数 | 端口允许学习/配置的最大 MAC 地址数量 | 普通办公口设 1-2 个就够了,别设太多 |
| 违规处理模式 | 当非法 MAC 出现时,端口怎么处理 | 我最常用的是 shutdown 模式,简单粗暴有效 |
这里有个容易混淆的地方:安全 MAC 地址分为三种类型——
- 静态安全 MAC:管理员手动配置,保存在 running-config 中
- 动态安全 MAC:交换机自动学习,重启后丢失
- 粘性安全 MAC:交换机自动学习后保存到配置中,重启不丢失
我个人比较推荐粘性 MAC。为什么呢?因为静态配置太麻烦,动态的又怕重启后丢数据。粘性 MAC 刚好取了个折中——第一次插上设备让它自动学习,之后配置就固化下来了。
端口安全的工作原理
工作原理其实不复杂。我尽量用大白话讲清楚:
当一台设备连接到交换机端口时,交换机会检查这个设备的 MAC 地址。如果这个 MAC 地址在安全 MAC 列表里,就放行。如果不在,就触发违规处理。
具体流程是这样的:
- 设备接入端口,发送第一个数据帧
- 交换机提取源 MAC 地址
- 检查该 MAC 是否在安全 MAC 列表中
- 如果在,正常转发;如果不在,检查当前已学习的安全 MAC 数量
- 如果未达到最大安全 MAC 数,学习该 MAC 并加入列表
- 如果已达到最大数,触发违规处理
💡 核心要点:端口安全是在端口级别生效的。同一个交换机上,你可以给不同端口设置不同的安全策略。比如给服务器端口设 5 个 MAC,给办公端口只设 1 个。
违规处理有三种模式,我分别说说:
| 模式 | 行为 | 恢复方式 | 我推荐场景 |
|---|---|---|---|
| protect | 丢弃非法 MAC 的流量,不通知 | 自动恢复 | 不太推荐,出了问题你都不知道 |
| restrict | 丢弃非法 MAC 的流量,发送日志 | 自动恢复 | 监控场景,先观察再决定 |
| shutdown | 直接关闭端口 | 手动恢复或配置自动恢复 | 生产环境首选,安全第一 |
我曾经在一个客户现场遇到过这种情况:他们启用了 shutdown 模式,结果有个员工换电脑后端口直接被 shutdown 了。运维人员不知道怎么回事,折腾了半天才找到原因。所以我现在都会建议:启用 shutdown 模式的同时,配置 errdisable 自动恢复,比如 5 分钟后自动恢复端口。这样既保证了安全,又不会因为一次误操作导致长时间断网。
📌 小技巧:配置端口安全前,先用 show mac address-table 看看端口上当前有哪些 MAC 地址。这样你心里有数,知道该设多少个安全 MAC 比较合理。
嗯,端口安全的基本概念和原理就这些。说白了就是给端口上个锁,钥匙就是 MAC 地址。下一节我会讲具体的配置命令和实战案例,到时候咱们再细聊。