「Network Switching」- 端口安全(Port Security)

  CREATED BY JENKINSBOT

问题描述

在企业网中,对希望接入网络的设备,有如下要求:
1)在接入层交换机上,连接终端设备的每个接口均只允许一台 PC 接入网络(限制 MAC 地址接入数量)。如果试图在某个接口下级联交换机等设备来扩展接口数量,那么这种行为应该被发现或被禁止;
2)另某些企业还可能会要求只有 MAC 地址为可信任的终端发送的数据帧才允许被交换机转发到上层网络,员工不能私自更换位置(变更交换机的接入端口);

解决方案

通过交换机的 Port Security(端口安全)特性可以解决这些问题。

在交换机的特定接口上,通过部署 Port Security 特性:(1)可以限制接口的 MAC 地址学习数量;(2)并且配置出现越限时的惩罚措施。

Port Security 通过将接口学习到的 动态 MAC 地址 转换为 安全 MAC 地址,阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。

原理简述

特性说明

应用场景

为了保证汇聚设备的安全性,控制接入用户的数量,可以在汇聚设备上配置 Port Security 功能,同时指定安全MAC地址的限制数量。

在对接入用户的安全性要求较高的网络中,可以配置端口安全功能及端口安全动态MAC学习的限制数量:
1)此时接口学习到的MAC地址会被转换为安全MAC地址,接口学习的最大MAC数量达到上限后不再学习新的MAC地址,仅允许这些MAC地址和交换机通信。
2)而且接口上安全MAC地址数达到限制后,如果收到源MAC地址不存在的报文,无论目的MAC地址是否存在,交换机即认为有非法用户攻击,就会根据配置的动作对接口做保护处理。
3)这样可以阻止其他非信任用户通过本接口和交换机通信,提高交换机与网络的安全性。

配置端口安全功能后,接口学习到的MAC地址会转换为安全MAC地址,接口学习的最大MAC数量达到上限后不再学习新的MAC地址,仅允许这些MAC地址和交换机通信。
如果接入用户发生变动,可以通过设备重启或者配置安全MAC老化时间刷新MAC地址表项。
对于相对比较稳定的接入用户,如果不希望后续发生变化,可以进一步使能接口Sticky MAC功能,这样在保存配置之后,MAC地址表项不会刷新或者丢失。

概念术语

Secure MAC Address

Dynamic Secure MAC Address

1)解释:使能 Port Security,但未使能 Sticky MAC 功能,此时转换的 MAC 地址为安全动态 MAC;
2)特点:设备重启后表项会丢失,需要重新学习;缺省情不会被老化,只有在配置安全MAC的老化时间后才可以被老化;

安全动态MAC地址的老化类型分为:
1)绝对时间老化(在固定时间后,立即老化):如设置为 5min:系统每分钟计算一次每个 MAC 的存在时间,若 >=5min,则立即将该安全动态MAC地址老化;
2)相对时间老化(在固定时间内,若未刷新则老化):如设置为 5min:系统每隔分钟检测一次是否有该 MAC 的流量。若没有流量,则经过 5min 后将该安全动态MAC地址老化。

Static Secure MAC Address

1)解释:使能 Port Security 时,手工配置的静态 MAC 地址。
2)特点:不会被老化;当手动保存配置后重启设备不会丢失。

Sticky MAC Address

1)解释:使能 Port Security 及 Sticky MAC 功能后,此时转换到的 MAC 地址为 Sticky MAC;
2)特点:不会被老化,手动保存配置后重启设备不会丢失;

安全保护动作

安全MAC地址通常与安全保护动作结合使用,常见的安全保护动作有:
2)Protect:仅丢弃 SRC-MAC-ADDR 不存在的报文,不上报告警。
1)Restrict:丢弃 SRC-MAC-ADDR 不存在的报文,并上报告警。
3)Shutdown:接口状态被置为 error-down,并上报告警。

关于 Shutdown 动作:
1)在默认情况下,接口关闭(error-down)后不会自动恢复,只能由网络管理人员在接口视图下使用 restart 命令重启接口进行恢复。
2)如果用户希望被关闭的接口可以自动恢复,则可在接口 error-down 前通过在系统视图下执行 error-down auto-recovery cause port-security interval interval-value 命令使能接口状态自动恢复为 Up 的功能,并设置接口自动恢复为Up的延时时间,使被关闭的接口经过延时时间后能够自动恢复。

接口 MAC 地址变化

当端口安全功能或者 Sticky MAC 功能使能/去使能时,接口上的MAC地址变化如下:

调整 Port Security 功能:
1)使能之后,接口上之前学习到的动态MAC地址表项将被删除,之后学习到的MAC地址将变为安全动态MAC地址。
2)关闭之后,接口上的安全动态MAC地址将被删除,重新学习动态MAC地址。

调整 Sticky MAC 功能:
使能之后,接口上的安全动态MAC地址表项将转化为Sticky MAC地址,之后学习到的MAC地址也变为Sticky MAC地址。
关闭之后,接口上的Sticky MAC地址,会转换为安全动态MAC地址。

配置命令

# 使能端口安全功能
[Huawei-GigabitEthernet0/0/1] port-security enable                              # 缺省情况下,未使能端口安全功能。

# 配置端口安全动态MAC学习限制数量
[Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number              # 缺省情况下,接口学习的安全MAC地址限制数量为1。

#(可选)手工配置安全静态MAC地址表项
[Huawei-GigabitEthernet0/0/1] port-security mac-address mac-address vlan vlan-id

#(可选)配置端口安全保护动作
[Huawei-GigabitEthernet0/0/1] port-security protect-action { protect | restrict | shutdown } # 缺省情况下,端口安全保护动作为restrict。

# (可选)配置接口学习到的安全动态MAC地址的老化时间
[Huawei-GigabitEthernet0/0/1] port-security aging-time time [ type { absolute | inactivity } ]

Stick MAC Address:

# 使能接口Sticky MAC功能
[Huawei-GigabitEthernet0/0/1] port-security mac-address sticky                  # 缺省情况下,接口未使能Sticky MAC功能。

# 配置接口Sticky MAC学习限制数量。
[Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number              # 使能接口Sticky MAC功能后,缺省情况下,接口学习的MAC地址限制数量为1。

# (可选)手动配置一条sticky-mac表项
[Huawei-GigabitEthernet0/0/1] port-security mac-address sticky mac-address vlan vlan-id

查看安全MAC地址:

display mac-address security   [ vlan vlan-id | interface-type interface-number ] * [ verbose ] # 查看安全动态 MAC 表项。
display mac-address sec-config [ vlan vlan-id | interface-type interface-number ] * [ verbose ] # 查看配置的安全静态MAC表项。
display mac-address sticky     [ vlan vlan-id | interface-type interface-number ] * [ verbose ] # 查看 Sticky MAC 表项。

案例:限制接口接入的设备数量

需求:我们不希望成员任意向网络内添加设备,

SW1:

interface GigabitEthernet0/0/2
 shutdown
 stp edged-port enable
 port-security enable
 port-security protect-action shutdown
 port-security mac-address sticky