前言
顧名思義,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 2014-07-29
Posted In: 保安 Security
發佈留言