基于MAC的攻击:MAC地址泛洪和欺骗
- mac地址泛洪是通过大量虚假mac爆破mac表的形式 使交换机mac表项达到最大值 然后覆盖掉真实mac 从而达到攻击的目的
- mac地址欺骗是通过伪造的mac地址报文来欺骗交换机。这种攻击会导致交换机的mac表记录与真实的主机mac地址不一致,使得交换机错误地将网络流量转发给攻击者
MAC地址表项分类
| 类型 | 备注 |
|---|
| 动态表项 | 通过对帧的源mac进行学习而来,有老化时间 300s |
| 静态表项 | 由管理员手动配置,不会老化 |
| 黑洞表项 | 丢弃特定源mac或目的mac,不会老化 |
- 静态和黑洞表项不会被动态表项覆盖,而动态表项可以被静态和黑洞表项覆盖
MAC地址表安全功能
| 功能 | 备注 |
|---|
| 禁止mac地址学习功能 | 可以限制非信任用户接入 |
| 限制mac地址学习数量 | 可防止变化mac地址攻击 |
| 端口安全 | 可阻止其他非信任的主机通过本端口与设备通信 |
| mac-spoofing-defend | 一个端口学习到的mac不会再其他端口上学习 |
| mac地址防飘移 | 对于固定的上行设备,通过提高端口优先级,可防止伪造mac地址攻击 |
| mac地址飘移检测功能 | 减少网络环路对设备的影响 |
| 丢弃全0非法mac地址报文 | 网络中一些主机和设备发生故障时,会发送源或目的mac全0的报文 |
| mac地址刷新arp功能 | mac地址表项的端口发生变化时,及时更新arp表项 |
MAC地址表特性参数
| 特性 | 默认值 |
|---|
| 动态mac地址表项老化时间 | 300s |
| mac地址学习 | 开启 |
| 端口mac地址优先级 | 0 |
| 端口安全功能 | 关闭 |
| 端口安全mac地址学习限制数量 | 1 |
| 端口安全的保护动作 | restrict |
| mac地址漂移表项老化时间 | 300s |
| 丢弃全0非法mac地址报文 | 关闭 |
| 收到全0非法mac地址mac地址报文告警 | 关闭 |
| mac刷新arp功能 | 关闭 |
MAC安全特性配置
mac-address static 0000-1111-2222 G0/0/1 vlan 10 // 添加静态mac地址表项
mac-address blackhole 0001-0001-0001 // 添加黑洞mac地址表项
mac-adress aging-time 60 // 配置老化时间
// 禁止mac地址学习功能 可在端口和VLAN下配置 VLAN下只有forword
mac-address learning disable // discard 根据目的mac匹配情况,有则转发,无则丢弃 forward 直接转发[默认]
mac-limit maximum 500 // 限制端口mac地址学习数量 可在端口和vlan下配置 超过的mac不会覆盖原有mac
mac-limit alarm enable/disable // 配置告警
drop illegal-mac enable // 丢弃全0非法mac地址报文功能
mac-address update arp // 配置mac刷新arp功能 [mac地址老化快于arp表项 配置此项解决表项不同步导致网络中断问题]
display mac-address summary // 查看mac地址表汇总表项
Port Security端口安全技术
- 限制mac的数量
- 限制mac的内容
- 将学习到的动态mac地址转换为安全mac地址(包括安全动态mac、安全静态mac和Sticky MAC),阻止非法用户通过本接口和交换机通信,从而增强设备的安全性
| 类型 | 备注 |
|---|
| 安全动态mac地址 | 设备重启后表项会丢失,需要重新学习,默认不会被老化,只有配置老化时间后才会老化 |
| 安全静态 | 不会被老化,手动保存配置后重启设备不会丢弃 [原有静态mac转换为安全静态mac] |
| Sticky MAC地址 | 不会被老化,手动保存配置后重启设备不会丢失 [手动配置的安全mac] |

shutdown 检测到非法流量直接关闭接口 restrict检测到非法流量丢弃发送告警 protect检测到非法流量丢弃
端口安全配置
华为配置
port-security enable // 开启端口安全
port-security protect-action {protect|shutdown|restric} // 配置保护动作
port-security max-mac-num 10 // 配置mac地址学习限制数量
port-security aging-time 10 // 配置老化时间
port-security mac-address sticky // 配置粘性mac功能,把动态学习到的mac转换为静态mac
display mac-address security // 查看安全动态mac表项
华三配置
# 允许同时接入的最大MAC地址数
port-security mac-limit 10
# 配置入侵检测特性[保护动作]
port-security intrusion-mode {blockmac|disableport|disableport-temporarily}
# 配置mac阻塞时间 与blockmac搭配使用
port-security timer blockmac 10
# 配置关闭端口时间 与disableport-temporarily搭配使用
port-security timer disableport 10
# 配置安全MAC地址的老化方式为无流量老化
port-security mac-address aging-type inactivity
保护模式[必选]

安全模式

MAC地址防漂移
现象
一个接口学习的mac在同一个VLAN内其他接口上也能学习到
- 主要原因
- 环路 [网络故障]
- 伪造 [网络攻击]
- VRRP [正常]
- 无线AP漫游 [正常]
方案一 mac-learning priority 调整接口优先级
mac-learning priority 2
undo mac-learning priority 2 allow-flapping
mac-adress flapping trigger/action {quit-vlan | err-down}
display mac-address flapping record
方案二 MAC-Spoofing-Defend 配置信任端口来防止mac地址漂移
mac-spoofing-defend enable
mac-spoofing-defend enable
端口安全配置实验

port-security timer autolearn aging 30
interface GigabitEthernet1/0/1
port-security intrusion-mode blockmac
port-security mac-address dynamic
port-security mac-address aging-type inactivity
port-security max-mac-count 10
port-security port-mode autolearn
port-security mac-address security sticky 84a9-386e-0a8a vlan 1

