前言
顾名思义,Port Security 可以为 Switch 的 Port 提高 Security,达到保护网络的目的。透过 Port Security 来记录 host 的 Mac Address,可以只批准某些已知的 host 连到网络,阻止未认可的 host 使用网络资源或进行不法行为。
启动 Port Security
使用指令 switchport port-security 便可启动 Port Security,不过要先为 Port 设定 mode,否则会出现错误讯息。因为 Port Security 是针对 host 的设定,通常在 host port 执行,一般我们都会使用 Access Mode。
Switch(config)#interface fastEthernet 0/1 Switch(config-if)#switchport port-security Command rejected: FastEthernet0/1 is a dynamic port. Switch(config-if)# Switch(config-if)#switchport mode access Switch(config-if)#switchport port-security
用 show port-security interface <interface> 看看现时的状态,因为还未有 host 连接,所以现时是 Secure-down,也没有 Mac Address 被记录。
Switch#show port-security interface fastEthernet 0/1 Port Security : Enabled Port Status : Secure-down Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 0 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : 0000.0000.0000:0 Security Violation Count : 0
现在连接一台 PC,Mac Address 立刻被记录下来了,状态变成 Secure-up。
Switch#show port-security interface fastEthernet 0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 1 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : 18a9.05e7.a35c:1 Security Violation Count : 0
我们可以用 switchport port-security mac-address <MAC> 来手动加入 record,以後就只有这个 MAC Address 的 PC 可以连接这个 port。留意要先 shutdown port 才做这个设定,否则会有错误讯息。
Switch(config-if)#switchport port-security mac-address 18a9.05e7.a35c
Found duplicate mac-address 18a9.05e7.a35c.
Switch(config-if)#shutdown
Switch(config-if)#
*Mar 1 00:18:00.989: %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down
*Mar 1 00:18:01.996: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
Switch(config-if)#switchport port-security mac-address 18a9.05e7.a35c
Switch(config-if)#no shutdown
Switch(config-if)#
*Mar 1 00:18:13.320: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up
*Mar 1 00:18:14.327: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
再看一下状态,确定没问题。
Switch#show port-security interface fastEthernet 0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 1 Configured MAC Addresses : 1 Sticky MAC Addresses : 0 Last Source Address:Vlan : 18a9.05e7.a35c:1 Security Violation Count : 0
如果换了另一台 PC 会怎样呢?因为 Mac Address 与纪录不同,这个 port 会变成 Error Disable (err-disable) 状态,不能使用。
Switch# *Mar 1 00:19:23.013: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down *Mar 1 00:19:24.019: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to down *Mar 1 00:19:24.967: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/1, putting Fa0/1 in err-disable state *Mar 1 00:19:24.967: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 18a9.05e7.5d70 on port FastEthernet0/1. Switch# Switch#show port-security interface fastEthernet 0/1 Port Security : Enabled Port Status : Secure-shutdown Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 1 Configured MAC Addresses : 1 Sticky MAC Addresses : 0 Last Source Address:Vlan : 18a9.05e7.5d70:1 Security Violation Count : 1 Switch#show interfaces fastEthernet 0/1 | include down FastEthernet0/1 is down, line protocol is down (err-disabled)
如果你确认这台 PC 也是一台合法连接网络的 host,你可以把 Port Security 的 Maximum 改成 2,并加入这台 PC 的 MAC Address,这样就可以容许两台电脑同时使用这个 Port 了。
Switch(config-if)#switchport port-security maximum 2 Switch(config-if)#switchport port-security mac-address 18a9.05e7.5d70 Switch(config-if)#shutdown Switch(config-if)#no shutdown Switch(config-if)#end Switch#show port-security interface fastEthernet 0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 2 Total MAC Addresses : 2 Configured MAC Addresses : 2 Sticky MAC Addresses : 0 Last Source Address:Vlan : 18a9.05e7.5d70:1 Security Violation Count : 0
不过每次都用指令输入 host 的 MAC Address 似乎太麻烦了,我们可以使用 sticky 让 Switch 自动记录 host 的 MAC Address。
interface FastEthernet0/1
switchport mode access
switchport port-security maximum 2
switchport port-security
switchport port-security mac-address sticky
当有 host 连接时,Configuration File 的 Interface 里会自加入指令。
interface FastEthernet0/1 switchport mode access switchport port-security maximum 2 switchport port-security switchport port-security mac-address sticky switchport port-security mac-address sticky 18a9.05e7.5d70 vlan access switchport port-security mac-address sticky 18a9.05e7.a35c vlan access
这些纪录预设是会永久保存的,即是说就算 PC 关机了,Switch 仍然贮存这两台 PC 的 MAC Address,如果希望 Switch 自动清除纪录的话,可以使用 switchport port-security aging type <type> 和 switchport port-security aging time <time> 来进行设定,但需注意此设定对透过 sticky 加入的 MAC Address 不起作用。
Switch(config-if)#switchport port-security aging type ? absolute Absolute aging (default) inactivity Aging based on inactivity time period
absolute
经过一段时间便清除纪录,预设会用 absolute。这样便可限制某 Mac Address 能够使用此 Port 的使用时间。
inactivity
当 Host 过了一段时间没有连接,便清除纪录。此设定方便 Switch 在 Host 离线後一段时间,重新接受另一台 Host,前题是该 Port 没有被手动设定 MAC Address。
最後输入时间便完成设定,时间单位是分钟。
Switch(config-if)#switchport port-security aging type inactivity Switch(config-if)#switchport port-security aging time 600
如果每次有违规连接就把 Port Err-disable 的话,网络管理人员会相常麻烦,因为 Err-disable 必需由管理人员手动重新打开 Port,其实除了 Err-disable 之外,还可以做其他动作。
Switch(config-if)#switchport port-security violation ? protect Security violation protect mode restrict Security violation restrict mode shutdown Security violation shutdown mode
Protect
把不法 host 的 Frame Drop 掉不传送。
Restrict
把不法 host 的 Frame Drop 掉不传送,并且在 Log 记录。
Shutdown
就是把 Port Err-disable,这是预设的设定。
另一个方法是把因为 Port Security 问题而 Err-Disable 的 Port 自动复原,指令如下。
Switch(config)# errdisable recovery cause psecure-violation Switch(config)# errdisable recovery interval 600
相關主題
Jan Ho 2021-07-22
Posted In: 保安 Security
发表回复