园区网安全-Port Security
一、Port-Security概述
大部分园区网或者办公网的场景下,客户对于员工的工位都有着明确分配。每个员工都有一个工位,工位下方的网口用于员工接入内部网络。对于安全性要求较高的客户,会为每个工位配备一台台式机,对于员工采用的非公司的移动笔记本接入内部网络执行限制。
客户通常通过对台式机及公司笔记本进行MAC登记,根据MAC的唯一性这个特点来执行设备识别。将交换机端口编号和员工设备的MAC一一绑定,当交换机从某个接口收到属于该员工的设备所发出的MAC后,放行这些数据包,反之拒绝,该技术叫Port-Security。配置了Port-Security的接口具备以下功能:
限制接入的用户设备数量;
限制接入的特定用户;
二、Port-Security机制
Port-Security技术通常配置在接入交换机的接入端口上,通过某种方式得知的Secure-Mac-Address为依据,对违规的终端执行惩罚措施,从而达到限制非法终端接入的效果。Secure-Mac-Address是指根据公司政策规定的具有合法的终端MAC地址。交换机允许通过三种方式(Static、Dynamic或Sticky)得知这些Secure-Mac-Address。
Static是指端口下手动配置Secure-Mac-Address;Dynamic是指交换机自行从端口下学习Secure-Mac-Address;Sticky是指端口下设置某些手动指定的Secure-Mac-Address,剩下的可以通过Dynamic方式自动学习。三种方式可以设置最大的Secure-Mac-Address数量,如果设置为1,则表示该员工只能使用台式机,即使公司发给他的笔记本也不能用。
当端口出现违规操作时,就会触发惩罚措施。触发条件:
MAC地址数量达到配置的MAX Secure-Mac-Address数量,收到一个新的但是不在安全地址表项中的MAC;
某个端口记录了Secure-Mac-Address,但是该安全地址又准备接入同VLAN的另一个port-security时;
惩罚动作(violation action):
shutdown(默认):端口关闭,状态err-disables,产生syslog消息
restrict:丢弃非法数据帧(端口仍up),产生syslog消息;
security violation count +1
protect:仅丢弃非法数据帧(端口仍up)
Port-security是需要消耗CPU资源的,如果发生违规事件比如大量的非法数据涌入也会消耗大量资源。使用以下命令来防止CPU过高:mls rate-limit layer2 port-security X
X∈[10,1000000],无默认值,值越低表示对CPU的保护程度越高,这个值在惩罚前后都生效,一般低于1000即可。
三、Port-Security配置
接口的port-security默认关闭,默认最大允许的安全MAC地址数量为1,惩罚模式为shutdown(进入err-disable状态,同时发送一个SNMP trap)。注意IOS 12.2(33)SXH及以后的版本支持port-security和802.1X部署在同一个接口上。
启用port-security:switchport port-security
通常在access接口启用Port-security,trunk接口不建议启用(如果启用必须为DTP非协商模式并调整max secure-mac-address数量)
配置接口的最大允许的安全地址数量:sw port-security maximum value
静态secure MAC address:switchport port-security mac-address xx:xx:xx:xx:xx:xx
端口up/down,静态表项不变
动态secure MAC address:switchport port-security mac-address dynamic
端口up/down,动态表项清空
sticky:switchport port-security mac-address sticky
端口up/down,表项不变
清空安全地址表项:clear port-security {dynamic | sticky | configured | all}
配置惩罚措施:sw port-security violation {restrict | shutdown| protect}
惩罚恢复:接口up/down
查看Port-security接口:show port-security interface g0/0
四、Port-Security实践
1、Enable Port-security&Violation
主机接入到G0/0,主机MAC为5254.0006.876f。
在G0/0接入接口下启用Port-security的配置。
interface GigabitEthernet0/0
switchport access vlan 20
switchport mode access
switchport port-security
通过show port-security interface g0/0查看该安全接口的信息。
修改主机MAC为5254.0006.876e后交换机产生的日志。
*Dec 21 07:41:26.746: %PM-4-ERR_DISABLE: psecure-violation error detected on Gi0/0, putting Gi0/0 in err-disable state
*Dec 21 07:41:26.746: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 5254.0006.876e on port GigabitEthernet0/0.
*Dec 21 07:41:27.746: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down
*Dec 21 07:41:28.746: %LINK-3-UPDOWN: Interface GigabitEthernet0/0, changed state to down
查看g0/0安全接口的状态和违规次数。
查看接口的状态为err-disabled。
2、Static
主机接入到G0/0,主机MAC为5254.0006.876e。
G0/0接口中添加静态MAC 5254.0006.876f以及最大安全MAC数配置。
interface GigabitEthernet0/0
switchport access vlan 20
switchport mode access
switchport port-security maximum 2
switchport port-security mac-address 5254.0006.876f
switchport port-security
查看安全MAC地址表项:5254.0006.876f为静态配置,5254.0006.876e为动态学习。
修改主机MAC为5254.0006.876f,因为G0/0静态配置了该MAC为安全MAC,因此理论可以ping通网关。
查看G0/0安全端口的最大安全MAC数应当为2以及最近一次的MAC源地址应当为5254.0006.876f。
3、Sticky
静态手动绑定的方式太过笨拙,而采用sticky方式使得交换机自动学习上来的MAC,并将其添加进Secure Mac Address Table,并自动生成静态捆绑配置到接口下,这样即使交换机接口滚动都不会丢失(但是交换机重启会导致丢失,因此配置完成后记得保存,这样写入到config.txt中就不会丢失了)。因此所谓的“Sticky”就是将自动学习到的Secure-Mac-Address自动的粘滞到接口配置下。
G0/0接口下的Sticky方式学习安全MAC地址配置。
interface GigabitEthernet0/0
switchport access vlan 20
switchport mode access
switchport port-security maximum 2
switchport port-security mac-address sticky
switchport port-security mac-address sticky 5254.0006.876f #自动生成
switchport port-security
查看安全MAC地址表项:5254.0006.876f的类型应该是SecureSticky。
修改主机MAC为5254.0006.876e,理论是可以ping通的,因为安全MAC地址表项未被填满。
查看安全MAC地址表项:新增了5254.0006.876e这一项。
查看G0/0接口配置:新增了5254.0006.876e这一项静态捆绑配置。
interface GigabitEthernet0/0
switchport access vlan 20
switchport mode access
switchport port-security maximum 2
switchport port-security mac-address sticky
switchport port-security mac-address sticky 5254.0006.876e #自动生成
switchport port-security mac-address sticky 5254.0006.876f
switchport port-security
如果此时配置了no switchport port-security mac-address sticky,那么Secure Mac Address Table中原来的SecureSticky就变成了SecureDynamic。
4、aging-time
老化时间只对Dynamic学习到的Secure-Mac-Address有效。absolute表示所有动态学习的MAC都开始倒计时,而inactivity则表示某个动态学习的MAC表项不活跃时,才开始倒计时。
switchport port-security aging type { absolute | inactivity }
switchport port-security aging time <1-1440minutes>
评论