天天看點

詭秘的“端口安全”功能

我們經常聽說“端口安全”功能是如何強大,應用如何靈活,但我們很少人系統地對“端口安全”功能有一個比較系統的了解。Cisco IOS交換機中的端口安全(Port security)功能可以使你限制在端口上使用的MAC位址(稱之為“安全MAC位址”),或者MAC位址範圍,或者最大安全位址數,以實作阻止未授權MAC位址的使用者通路,當然它的應用方式很靈活。本篇僅介紹其基本簡介,詳細的介紹參見《Cisco/H3C交換機進階醘與管理技術手冊》一書。

15.3.1 端口安全功能簡介

     Cisco IOS交換機的端口安全功能允許你通過配置靜态安全MAC位址實作僅允許固定裝置連接配接,也允許你在一個端口上配置一個最大的安全MAC位址數,僅允許在此數之前識别到的裝置連接配接在該端口上。當超過了所設定的最大安全端口數,将觸發一個安全違例事件,在端口上配置的一個基于違例行為模式的違例行為将被執行。如果你在某個端口上配置的最大安全MAC位址數為1,則裝置上的該安全端口僅允許與固定裝置連接配接。如果一個安全MAC位址在一個端口上進行了安全綁定,則這個MAC位址不能進入該端口加入的VLAN以外的任何其他端口,否則包将在硬體層被悄悄地丢棄。

1.    端口安全功能支援的安全MAC位址類型

Cisco IOS交換機端口安全功能支援以下幾種安全MAC位址類型:

l  動态或者學習類型:動态安全MAC位址是在接收到連接配接在安全端口上主機發來的包時學習到的。在使用者的MAC位址不固定時(如網絡使用者使用的經常移動的便攜式電腦,如筆記本電腦),你可以使用此種類型。

l  靜态或配置類型:靜态安全MAC位址是使用者通過CLI或者SNMP配置的MAC位址。在你的MAC位址保持固定時(如使用者使用的是PC機),可以使用這種類型。

l  粘性(Sticky)類型:粘性安全MAC位址也是像動态安全MAC位址一樣,是通過學習得到的,但是它是交換機重新開機後仍然有效,又有點像靜态安全MAC位址那樣。在存在大量固定MAC位址,而且你又不想手動配置這些安全MAC位址時,就可以使用這種類型。

    如果一個端口已達到了它最大的安全MAC位址數,而你又想配置一個靜态安全MAC位址,此時會被拒絕的,并顯示一個錯誤提示。如果一個端口已達到了它最大的安全MAC位址數,而又添加了一個新的動态安全MAC位址,則會觸發一個違例行為。

    你可以使用<b>clear port-security</b>指令清除動态安全MAC位址,你可以使用<b>no</b> <b>switchport port-security mac-address</b>指令一次性清除粘性和靜态安全MAC位址。

2.    安全MAC位址的最大數

    一個安全端口預設有一個安全MAC位址。你可以改變這個預設值在1~3000之間。當你在一個端口上設定最大安全MAC數後,你可以以下任一方式在位址表中包括這些安全MAC位址:

l  你可以使用<b>switchport port-security mac-address </b>mac_address接口配置模式指令配置安全MAC位址。

l  你可以通過<b>port-security mac-address</b> VLAN範圍配置指令在中繼端口上一個範圍VLAN中配置所有安全MAC位址。

l  你可以允許端口用所連接配接裝置的MAC位址動态配置安全MAC位址。

l  你可以靜态配置一些安全MAC位址,而允許其餘的安全MAC位址動态配置(如果端口鍊路關閉,則該端口上所有動态安全MAC位址将不再是安全的)。

l  你可以MAC位址為粘性的(sticky)。這些安全MAC位址可以動态學習,也可以手動配置,然後儲存在MAC位址表中,并添加到運作配置檔案中。然後這些位址會儲存在交換機的啟動配置檔案中,在交換機重新開機後,接口不用再重新學習。雖然你可以手動配置粘性安全MAC位址,但這種做法是不建議的。

    【經驗之談】在一個中繼端口上,最大的安全MAC位址數可以基于端口和基于端口VLAN來配置。端口上配置的最大安全MAC位址數可以大于或等于(不能小于)端口VLAN上配置的最大安全MAC位址數。如果端口上配置的最大安全MAC位址數小于端口VLAN上配置的最大安全MAC位址數(例如VLAN 10上設定的最大安全MAC位址為3,而端口的最大安全MAC位址數采用預設的1),則在端口VLAN上的安全MAC位址數超過端口上設定的最大安全MAC位址數時,端口就将被關閉。

3.安全MAC位址老化

    在接收超過3000個MAC位址時,你可能想要老化安全MAC位址,以便對一些長時間沒有連接配接的安全MAC位址從MAC位址表中除去。但是粘性(sticky)安全MAC位址不支援老化過程。

    預設情況下,端口安全不會對安全位址進行老化的,學習到後,這個MAC位址将一直在端口上保留,直到交換機重新開機或才鍊路斷開(當然這是在沒有啟用粘性MAC位址功能時)。端口安全允許你基于絕對(absolute)或者靜止(inactivity)模式配置MAC位址老化和老化時間。絕對模式的老化周期是n~n+1分鐘之間;靜止模式的老化周期是在n+1~n+2分鐘之間(時間增量為1分鐘)。

    使用安全MAC位址老化功能可以還沒達到端口上配置的最大安全MAC位址數之前,在安全端口上删除和添加PC,無需手動删除現有的安全MAC位址。

    除非明确地使用<b>switchport port-security aging static</b>指令靜态配置MAC位址老化時間,靜态安全MAC位址是不會進行老化程序的,即使在在該端口上配置了老化程序。

4.端口上的粘性MAC位址

    通過啟用粘性端口安全功能,你可以配置一個接口去轉換動态MAC位址為粘性安全MAC位址,并添加他們到交換機的運作配置檔案中。在你不需要使用者移動到其他端口時,你可以使用這種功能,這樣你就無需要在每個端口上手動配置大量的安全MAC位址。

    要啟用粘性端口安全功能,可鍵入<b>switchport</b> <b>port-security mac-address sticky</b>接口配置模式指令。此時,接口将轉換所有動态安全MAC位址為粘性安全MAC位址,包括在啟用粘性安全MAC位址功能前動态學習到的所有MAC位址。

    粘性安全MAC位址不會自動成為交換機啟動配置檔案的一部分,如果你儲存了運作配置檔案,則在交換機重新開機後,接口也不用再重新學習MAC位址了,但是如果你不儲存運作配置檔案,則以前自動轉換的粘性安全MAC位址表将丢失。

    如果禁止粘性端口安全功能,則粘性安全MAC位址将自動轉換為動态安全MAC位址,并自動從交換機的運作配置檔案中删除。在配置了最大安全MAC位址數後,這些粘性安全MAC位址将以表的形式存儲。要使某裝置成為某端口唯一的連接配接者,則可以在該端口上配置最大的安全MAC位址數為1。如果添加到某端口的安全MAC位址數超過配置的最大安全MAC位址數将發生違例事件。

5. 違例行為模式

你可以配置發生違例事件後所采取的行為模式:

l  保護(protect):當安全MAC位址數超過端口上配置的最大安全MAC位址數時,未知源MAC位址的包将被丢棄,直到MAC位址表中的安全MAC位址數降到所配置的最大安全MAC位址數以内,或者增加最大安全MAC位址數。而且這種行為沒有安全違例行為發生通知。建議不要在中繼端口上配置保護行為,因為在中繼端口上某個VLAN達到該VLAN中所配置的最大安全MAC位址數時端口将被禁止,即使端口上的安全MAC位址數并未達到端口上配置的最大安全MAC位址數。

l  限制(Restrict):與前面的保護模式差不多,也是在安全MAC位址數達到端口上配置的最大安全MAC位址數時,未知源MAC位址的包将被丢棄,直到MAC位址表中的安全MAC位址數降到所配置的最大安全MAC位址數以内,或者增加最大安全MAC位址數。但這種行為模式會有一個SNMP捕獲消息發送,并記錄系統日志,違例計數器增加1。SNMP捕獲通知發送的頻率可以通過<b>snmp-server enable traps port-security trap-rate</b>指令來控制,預設值為0,表示在發生任何安全違例事件時發送SNMP捕獲通知。

l  關閉(Shutdown):發生安全違例事件時,端口立即呈現錯誤(error-disabled)狀态,關閉端口(端口訓示燈熄滅)。同時也會發送一個SNMP捕獲消息并記錄系統日志,違例計數器增加1。在想禁止非MAC位址,需要安全安全環境下,你可以使用這種模式。

l  關閉VLAN(Shutdown VLAN):适用于VLAN的安全違例模式。在這種模式下,在發生安全違者罰款例事件時,該端口對應的VLAN都将呈錯誤禁止狀态,關閉對應VLAN,而不關閉對應的端口。

     表15-1列出了各種違例模式和對應采取的行為。

表15-1    端口安全下的各種違例模式和對應采取的行為

違例模式

違例通信轉發

發送SNMP trap消息

發送系統日志消息

顯示錯誤消息

違例計數器遞增

關閉端口

保護(protect)

No

限制(restrict)

Yes

關閉(shutdown)

關閉VLAN(shutdown vlan)

    當一個安全端口處于錯誤禁止(error-disabled)狀态,你可以通過<b>errdisable recovery cause</b><b>psecure-violation</b>全局配置模式指令進行恢複,或者你可以通過<b>shutdown</b>和<b>no shut down</b>接口配置模式指令重新開機。如果端口是處于每VLAN錯誤禁止(per-VLAN errdisable)狀态,則你可以使用<b>clear errdisable interface</b> <b>name</b> <b>vlan</b> <b>range</b>指令在端口上重新開機這個VLAN。你也可以使用<b>errdisable recovery interval</b> interval指令自定義從指定的錯誤禁止狀态恢複的時間,預設為300秒。

    【經驗之談】如果你可以預見有非法安全MAC位址包将在某端口上發送,你可能想要在安全端口上對非法安全MAC位址包進行傳輸速率限制。端口安全認為MAC位址為0的包為多點傳播或廣播源MAC位址,認為是非法包。你可以選擇限制這些包的傳輸速率,在超過速率時将在端口上捕獲一個違例事件。也就為像多點傳播或廣播包傳輸留有一定的空間。

本文轉自王達部落格51CTO部落格,原文連結http://blog.51cto.com/winda/865543如需轉載請自行聯系原作者

茶鄉浪子

繼續閱讀