本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹如何保護Cisco IOS®系統裝置並提高網路的整體安全性。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
當您保護Cisco IOS系統裝置時,網路的整體安全性會增加。
網路的整體安全圍繞網路裝置功能可分類的三個層面來構建。 網路的三個功能平面是:管理平面、控制平面和資料平面,每個平面提供需要保護的不同功能。本檔案提供每個內含功能的概觀,以及相關檔案的參照。
本文檔中涉及的安全功能通常可提供足夠的詳細資訊來配置所述功能。但是,如果沒有詳細資訊,則會以某種方式說明特徵,以便您可以評估是否需要對該特徵給予額外注意。如果可能和適當,本文檔包含實施後有助於保護網路安全的建議。
安全網路操作是一個重要主題。雖然本文檔的大部分內容都用於Cisco IOS裝置的安全配置,但僅靠配置並不能完全保護網路。網路上使用的操作過程與底層裝置的配置一樣有助於提高安全性。
這些主題包含建議您實施的操作建議。這些主題重點介紹網路運營的特定關鍵領域,並不全面。
思科產品安全事件響應團隊(PSIRT)針對思科產品的安全相關問題建立和維護出版物,通常稱為PSIRT建議。用於不太嚴重問題的通訊方法是Cisco Security Response。在思科安全諮詢中可以找到安全建議及響應。
在Cisco安全漏洞策略中可以找到有關這些通訊手段的其他資訊。
要維護安全網路,請注意已發佈的思科安全建議和響應。您需要先瞭解漏洞,然後才能評估漏洞對網路造成的威脅。有關此評估過程的幫助,請參閱安全漏洞通告風險分類。
身份驗證、授權和記帳(AAA)架構對於保護網路裝置安全至關重要。AAA架構提供管理會話的身份驗證,還可以將使用者限制為管理員定義的特定命令,並記錄所有使用者輸入的所有命令。有關如何利用AAA的詳細資訊,請參閱本文檔的身份驗證、授權和記帳部分。
要瞭解與安全事件相關的當前、緊急和歷史事件,您的組織必須具有統一的事件日誌和相關策略。此統一策略必須利用來自所有網路裝置的日誌並使用預打包和可定製的關聯功能。
實施集中日誌後,您必須開發一種結構化方法來記錄分析和跟蹤事件。根據您組織的需要,此方法範圍廣泛,從對日誌資料的簡單認真稽核到基於規則的高級分析。
有關如何在Cisco IOS網路裝置中實施日誌的詳細資訊,請參閱本文檔的日誌記錄最佳實踐部分。
使用多個協定來傳輸敏感的網路管理資料。儘可能使用安全協定。安全協定選擇包括使用SSH而不是Telnet,因此身份驗證資料和管理資訊都會加密。此外,在複製配置資料時使用安全檔案傳輸協定。例如,使用「安全複製通訊協定」(SCP)來取代FTP或TFTP。
有關Cisco IOS裝置安全管理的詳細資訊,請參閱本文檔的安全互動式管理會話部分。
NetFlow允許您監控網路上的流量。NetFlow最初旨在將流量資訊導出到網路管理應用程式,但也可以用於顯示路由器上的流量資訊。此功能允許您即時檢視哪些流量流經網路。無論流量資訊是否導出到遠端收集器,都建議您為NetFlow配置網路裝置,以便在需要時可反應性地使用。
有關此功能的詳細資訊可在本文檔的資料流標識和回溯部分中找到,也可以在Cisco IOS NetFlow中找到。
注意:只有註冊思科使用者才能訪問內部工具和資訊。
組態管理是建議、稽核、批准和部署配置更改的過程。在Cisco IOS裝置配置中,組態管理的另外兩個方面至關重要:配置存檔和安全性。
使用配置存檔來回滾對網路裝置所做的更改。在安全情景中,還可以使用配置存檔來確定進行了哪些安全更改以及更改發生的時間。此資訊與AAA日誌資料一起有助於網路裝置的安全稽核。
Cisco IOS裝置的配置包含許多敏感詳細資訊。使用者名稱、密碼和訪問控制清單的內容都是此類敏感資訊的示例。需要保護用於存檔Cisco IOS裝置配置的儲存庫。對此類資訊的不安全訪問可能會破壞整個網路的安全。
管理平面包括實現網路管理目標的功能。這包括使用SSH的互動式管理會話,以及使用SNMP或NetFlow收集統計資訊。當您考慮網路裝置的安全性時,保護管理平面至關重要。如果安全事件能夠破壞管理平面的功能,則不可能恢復或穩定網路。
本文檔的這些部分詳細介紹有助於加強管理平面的Cisco IOS軟體提供的安全功能和配置。
管理平面用於訪問、配置和管理裝置,以及監控其操作和部署裝置的網路。管理平面接收和傳送用於這些功能操作的流量。保護裝置的管理平面和控制平面,因為控制平面操作直接影響管理平面的操作。管理平面使用的協定包括:
必須採取措施確保管理和控制平面在安全事件期間繼續存在。如果其中任一平面被成功利用,所有平面都可能被入侵。
密碼控制對資源或裝置的訪問。這可透過用於驗證請求的密碼來實現。當接收到訪問資源或裝置的請求時,該請求被詢問以驗證密碼和身份,並且基於該結果可以授予、拒絕或限制訪問。作為安全最佳實踐,密碼必須使用TACACS+或RADIUS身份驗證伺服器進行管理。但是,在發生TACACS+或RADIUS服務故障時,仍然需要本地配置的用於特權訪問的密碼。裝置還可以在其配置中顯示其他密碼資訊,如NTP金鑰、SNMP社群字串或路由協定金鑰。
enable secret
命令用於設定授予對Cisco IOS系統的特權管理訪問許可權的口令。必須使用enable secret
命令,而不是更舊的enable password
命令。其 enable password
命令使用弱加密演算法。
如果未設定任何enable secret
且為控制檯tty線路配置了口令,則可以使用控制檯口令來接收特權訪問,即使是從遠端虛擬tty (vty)會話也是如此。此操作幾乎肯定是不需要的,這也是確保配置啟用加密的另外一個原因。
service password-encryption
全局配置命令指示Cisco IOS軟體對口令、質詢握手身份驗證協定(CHAP)加密口令和儲存在其配置檔案中的類似資料進行加密。這種加密有助於防止臨時觀察者觀察密碼,例如當他們看到管理員肩膀上的螢幕時。但是,service password-encryption
命令使用的演算法是一種簡單的Vigenre密碼演算法。此演演算法並非設計用來保護組態檔,使其免受即使是略為複雜的攻擊者的嚴重分析,因此不得用於此目的。任何包含加密口令的Cisco IOS配置檔案都必須謹慎對待,就像處理這些相同口令的明文清單一樣。
雖然enable secret
命令並不使用這一加密強度較低的加密演算法,但enable password
全局配置命令以及password
線路配置命令均使用該加密演算法。必須去除這種型別的口令,並需要使用enable secret
命令或增強的口令安全功能。
enable secret
命令和「增強的口令安全」功能將消息摘要5 (MD5)用於口令雜湊。這種演算法已經過相當多的公開審查,目前還不知道是否可逆。但是,該演算法會受到詞典攻擊。在詞典攻擊中,攻擊者會嘗試詞典或其他候選密碼清單中的每個字來查詢匹配項。因此,必須安全地儲存配置檔案,並且僅與受信任的個人共用。
在Cisco IOS軟體版本12.2(8)T中引入的「增強的口令安全」功能允許管理員為username
命令配置MD5口令雜湊。在此功能之前,有兩種型別的密碼:型別0(為明文密碼)和型別7(使用Vigen re密碼的演算法)。「增強的口令安全」功能不能用於要求可檢索明文口令的協定,例如CHAP。
要使用MD5雜湊功能加密使用者口令,請發出
全局配置命令。username secret
!
username <name> secret <password>
!
在Cisco IOS軟體版本12.3(14)T中新增的登入密碼重試鎖定功能,可讓您在設定的登入嘗試失敗次數後,鎖定本機使用者帳戶。鎖定使用者後,其帳號會一直鎖定,直到您將其解除鎖定為止。無法使用此功能鎖定設定為許可權層級15的授權使用者。將許可權級別為15的使用者數保持為最小值。
請注意,如果達到不成功的登入嘗試次數,授權使用者可以將自己鎖定在裝置之外。此外,惡意使用者可能會透過多次嘗試使用有效使用者名稱進行身份驗證來建立拒絕服務(DoS)條件。
此示例說明如何啟用登入密碼重試鎖定功能:
!
aaa new-model
aaa local authentication attempts max-fail <max-attempts>
aaa authentication login default local
!
username <name> secret <password>
!
此功能也適用於CHAP和密碼驗證通訊協定(PAP)等驗證方法。
在Cisco IOS軟體版本12.3(14)T和更新版本中,無服務密碼復原功能不允許任何擁有主控台存取許可權的人以不安全的方式存取裝置組態和清除密碼。它還不允許惡意使用者更改配置暫存器值並訪問NVRAM。
!
no service password-recovery
!
Cisco IOS軟體提供密碼復原程式,該程式依賴於在系統啟動期間使用Break鍵存取ROM Monitor Mode (ROMMON)。在ROMMON中,可以重新載入裝置軟體,以提示包含新密碼的新系統配置。
目前的密碼復原程式可讓任何具有主控台存取許可權的使用者存取裝置及其網路。無服務口令恢復功能可阻止完成Break鍵序列並在系統啟動期間輸入ROMMON。
如果在裝置上啟用no service password-recovery
命令,則建議儲存該裝置配置的離線副本,並實施配置存檔解決方案。啟用此功能後,如果需要恢復Cisco IOS裝置的口令,則刪除整個配置。
有關此功能的詳細資訊,請參閱安全ROMMON配置示例。
作為安全最佳做法,請停用任何不必要的服務。不需要的服務,尤其是使用使用者資料包協定(UDP)的服務,很少用於合法目的,但可用於發起DoS和其他透過資料包過濾防止的攻擊。
停用TCP和UDP小型服務。這些服務包括:
儘管透過反欺騙訪問清單可以避免濫用小型服務,或者降低其危險性,但請停用網路中可訪問的任何裝置上的服務。預設情況下,Cisco IOS軟體版本12.0及更高版本中停用小型服務。在更早的軟體中,可以使用no service tcp-small-servers
和no service udp-small-servers
全局配置命令來停用它們。
如果不使用,則必須停用以下其他服務:
no ip finger
全局配置命令可停用Finger服務。預設情況下,高於12.1(5)和12.1(5)T的Cisco IOS軟體版本會停用此服務。
no ip bootp server
全局配置命令以停用Bootstrap協定(BOOTP)。要設定時間間隔,EXEC命令解釋程式在終止會話之前會等待使用者輸入,請發出exec-timeout 行配置命令。使用exec-timeout命令註銷vty或tty線路上處於空閒狀態的會話。依預設,工作階段會在閒置十分鐘後中斷連線。
!
line con 0
exec-timeout <minutes> [seconds]
line vty 0 4
exec-timeout <minutes> [seconds]
!
service tcp-keepalives-in 和service tcp-keepalives-out 全局配置命令允許裝置傳送TCP keepalive以進行TCP會話。使用此配置對裝置的入站連線和裝置的出站連線啟用TCP keepalive。這可以確保連線遠端端的裝置仍然可訪問,並且從本地Cisco IOS裝置中移除半開放或孤立的連線。
!
service tcp-keepalives-in
service tcp-keepalives-out
!
在物理或邏輯管理介面上以帶內或帶外方式訪問裝置的管理平面。理想情況下,每個網路裝置都有帶內和帶外管理訪問,因此可以在網路中斷期間訪問管理平面。
用於裝置帶內訪問的最常見介面之一是邏輯環回介面。環回介面始終處於打開狀態,而物理介面可以更改狀態,並且介面可能無法訪問。建議為每個裝置增加一個環回介面作為管理介面,並且僅用於管理平面。這允許管理員在整個網路中為管理平面應用策略。一旦在裝置上配置了環回介面,管理平面協定(如SSH、SNMP和syslog)就可以使用該介面傳送和接收流量。
!
interface Loopback0
ip address 192.168.1.1 255.255.255.0
!
Cisco IOS軟體版本12.3(4)T新增的記憶體臨界值通知功能可讓您緩解裝置上的記憶體不足情況。此功能使用兩種方法來完成此操作:記憶體閾值通知和記憶體保留。
「記憶體臨界值通知」會產生記錄訊息,指出裝置上的可用記憶體已低於設定的臨界值。本配置示例說明如何使用memory free low-watermark 全局配置命令啟用此功能。這允許裝置在可用空閒記憶體低於指定閾值時生成通知,並在可用空閒記憶體高於指定閾值時再次生成通知。
!
memory free low-watermark processor <threshold>
memory free low-watermark io <threshold>
!
使用記憶體保留,以便有足夠的記憶體可供重要通知使用。此配置示例演示如何啟用此功能,以確保裝置記憶體用盡時管理進程仍能正常運行。
!
memory reserve critical <value> !
有關此功能的詳細資訊,請參閱記憶體閾值通知。
在Cisco IOS軟體版本12.3(4)T中引入的「CPU閾值通知」功能可讓您在裝置上的CPU負載超過設定的閾值時,進行偵測並接收通知。當超過閾值時,裝置將生成並傳送SNMP陷阱消息。Cisco IOS軟體支援兩種CPU使用閾值方法:上升閾值和下降閾值。
此示例配置顯示如何啟用上升和下降閾值以觸發CPU閾值通知消息:
!
snmp-server enable traps cpu threshold
!
snmp-server host <host-address> <community-string> cpu
!
process cpu threshold type <type> rising <percentage> interval <seconds>
[falling <percentage> interval <seconds>]
process cpu statistics limit entry-percentage <number> [size <seconds>]
!
有關此功能的詳細資訊,請參閱CPU閾值通知。
在Cisco IOS軟體版本12.4(15)T和更新版本中,「保留記憶體以供主控台存取」功能可用於保留足夠的記憶體,以確保主控台存取Cisco IOS裝置以進行管理和故障隔離。當裝置記憶體不足時,此功能特別有用。您可以發出memory reserve console 全局配置命令啟用此功能。此示例將Cisco IOS裝置配置為為此保留4096 KB。
!
memory reserve console 4096
!
在Cisco IOS軟體版本12.3(8)T1中引入的記憶體洩漏偵測器功能可讓您偵測裝置上的記憶體洩漏。記憶體洩漏檢測器可以發現所有記憶體池、資料包緩衝區和資料塊中的洩漏。記憶體洩漏是記憶體的靜態或動態分配,它不能用於任何用途。此功能著重於動態的記憶體配置。您可以使用show memory debug leaks EXEC命令檢測到是否存在記憶體洩漏。
在Cisco IOS軟體版本12.3(7)T和更新版本中,可以在裝置上啟用「緩衝區溢位:偵測和修正Redzone損毀」功能,以偵測和修正記憶體區塊溢位並繼續作業。
全局配置命令可用於啟用此功能。配置show memory overflow 命令後,可以使用該命令顯示緩衝區溢位檢測和修復統計資訊。
!
exception memory ignore overflow io
exception memory ignore overflow processor
!
增強的Crashinfo檔案收集功能可自動刪除舊的crashinfo檔案。在Cisco IOS軟體版本12.3(11)T中增加的這項功能可讓裝置在當裝置當機時重新取得空間以建立新的crashinfo檔案。此功能還允許配置要儲存的crashinfo檔案的數量。
!
exception crashinfo maximum files <number-of-files>
!
網路時間協定(NTP)不是一種危險的服務,但任何不需要的服務都可能代表攻擊媒介。如果使用NTP,則明確配置受信任的時間源並使用適當的身份驗證非常重要。系統日誌需要準確可靠的時間,例如在潛在攻擊的取證調查期間,以及在依賴證書進行第1階段身份驗證時,VPN連線是否成功。
以下是使用NTP身份驗證的示例配置:
使用者端:
(config)#ntp authenticate
(config)#ntp authentication-key 5 md5 ciscotime
(config)#ntp trusted-key 5
(config)#ntp server 172.16.1.5 key 5
伺服器:
(config)#ntp authenticate
(config)#ntp authentication-key 5 md5 ciscotime
(config)#ntp trusted-key 5
思科智慧安裝(SMI)功能的安全最佳實踐取決於在特定使用者環境中如何使用該功能。思科區分以下使用案例:
以下各節詳細說明了每個方案:
注意:Cisco IOS版本12.2(55)SE03中引入了vstack命令。
以下是在停用SMI客戶端功能的Cisco Catalyst交換機上show vstack命令的輸出示例:
switch# show vstack
config Role: Client (SmartInstall disabled)
Vstack Director IP address: 0.0.0.0
完成非接觸式安裝後,停用SMI客戶端功能,或使用no vstack 命令。
要將no vstack命令傳播到網路中,請使用以下方法之一:
要稍後啟用SMI客戶端功能,請在所有客戶端交換機上手動或藉助指令碼輸入vstack命令。
在SMI架構的設計中,請小心以免不可信方訪問基礎架構IP地址空間。在不支援vstack命令的版本中,確保僅SMI控制器與埠4786上的所有SMI客戶端具有TCP連線。
管理員可以使用以下安全最佳實踐在受影響的裝置上部署SMI:
此範例顯示SMI導向器IP位址為10.10.10.1,SMI使用者端IP位址為10.10.10.200的介面ACL:
ip access-list extended SMI_HARDENING_LIST
Permit tcp host 10.10.10.1 host 10.10.10.200 eq 4786
deny tcp any any eq 4786
permit ip any any
必須在所有客戶端的所有IP介面上部署此ACL。它也可以在首次部署交換機時由指揮交換機來推送。
為進一步限制對基礎設施中所有客戶端的訪問,管理員可以在網路上的其他裝置上使用以下安全最佳實踐:
iACL旨在防止未經授權直接與網路裝置通訊,是網路中實施的最關鍵的安全控制之一。iACL的理念是,幾乎所有網路流量都會流經網路,而不是發往網路本身。
構建並應用iACL以指定需要允許的主機或網路到網路裝置的連線。這些連線型別的常見示例包括eBGP、SSH和SNMP。在允許所需的連線後,到基礎設施的所有其他流量都會被顯式拒絕。然後會明確地允許所有透過網路且並非目的地為基礎架構裝置的傳輸流量。
iACL提供的保護與管理和控制層面都有關。透過對網路基礎設施裝置使用不同地址,可以使iACL的實施更加容易。有關IP地址安全含義的詳細資訊,請參閱面向安全的IP編址方法。
以下示例iACL配置說明了在開始iACL實施過程時必須用作起點的結構:
!
ip access-list extended ACL-INFRASTRUCTURE-IN
!
!--- Permit required connections for routing protocols and
!--- network management
!
permit tcp host <trusted-ebgp-peer> host <local-ebgp-address> eq 179
permit tcp host <trusted-ebgp-peer> eq 179 host <local-ebgp-address>
permit tcp host <trusted-management-stations> any eq 22
permit udp host <trusted-netmgmt-servers> any eq 161
!
!--- Deny all other IP traffic to any network device
!
deny ip any <infrastructure-address-space> <mask>
!
!--- Permit transit traffic
!
permit ip any any
!
建立iACL後,必須應用到面向非基礎設施裝置的所有介面。這包括連線到其他組織、遠端訪問網段、使用者網段和資料中心網段的介面。
有關基礎架構ACL的詳細資訊,請參閱保護您的核心:基礎架構保護訪問控制清單。
網際網路控制訊息通訊協定(ICMP)是設計為IP控制通訊協定。因此,一般而言,它傳達的消息可以與TCP和IP協定進行大量的互動。雖然使用ping和traceroute網路工具來排查使用ICMP的故障,但網路的正常運行很少需要外部ICMP連線。
Cisco IOS軟體提供特定功能,可按名稱或型別及程式碼過濾ICMP訊息。此範例ACL必須搭配先前範例中的存取控制專案(ACE)使用,允許來自受信任管理站和NMS伺服器的ping並封鎖所有其他的ICMP封包:
!
ip access-list extended ACL-INFRASTRUCTURE-IN
!
!--- Permit ICMP Echo (ping) from trusted management stations and servers
!
permit icmp host <trusted-management-stations> any echo
permit icmp host <trusted-netmgmt-servers> any echo
!
!--- Deny all other IP traffic to any network device
!
deny ip any <infrastructure-address-space> <mask>
!
!--- Permit transit traffic
!
permit ip any any
!
對安全裝置而言,針對分段的IP資料包的過濾過程可能是一個挑戰。這是因為用於過濾TCP和UDP資料包的第4層資訊只存在於初始分段中。Cisco IOS軟體使用特定方法,根據已設定的存取清單檢查非初始片段。Cisco IOS軟體會根據ACL評估這些非初始片段,並忽略所有第4層篩選資訊。這將導致非初始分段僅在任何已配置ACE的第3層部分上進行評估。
在此示例配置中,如果發往192.168.1.1(位於埠22)的TCP資料包在傳輸過程中進行分段,則根據資料包中的第4層資訊,初始ACE分段會如預期一樣被丟棄。但是,完全基於資料包和ACE中的第3層資訊,第一個ACE允許剩餘的所有(非初始)分段。此情況顯示在此組態中:
!
ip access-list extended ACL-FRAGMENT-EXAMPLE
permit tcp any host 192.168.1.1 eq 80
deny tcp any host 192.168.1.1 eq 22
!
由於分段處理的非直觀性質,ACL經常會無意中允許IP分段。分段通常用於嘗試逃避入侵檢測系統的檢測。由於這些原因,IP分段經常用於攻擊,以及為什麼必須在任何已配置iACL的頂部顯式過濾這些分段。此範例ACL包括全面過濾IP片段。此範例的功能必須搭配先前範例的功能使用。
!
ip access-list extended ACL-INFRASTRUCTURE-IN
!
!--- Deny IP fragments using protocol-specific ACEs to aid in
!--- classification of attack traffic
!
deny tcp any any fragments
deny udp any any fragments
deny icmp any any fragments
deny ip any any fragments
!
!--- Deny all other IP traffic to any network device
!
deny ip any <infrastructure-address-space> <mask>
!
!--- Permit transit traffic
!
permit ip any any
!
有關ACL如何處理分段IP資料包的詳細資訊,請參閱訪問控制清單和IP分段。
Cisco IOS軟體版本12.3(4)T新增了對使用ACL根據封包中包含的IP選項過濾IP封包的支援。IP選項對網路裝置來說是一個安全挑戰,因為這些選項必須作為例外資料包處理。這要求經過網路的典型資料包不需要一定的CPU工作量。資料包中存在IP選項也可能表示試圖破壞網路上的安全控制或改變資料包的傳輸特性。因此,必須在網路邊緣過濾帶有IP選項的資料包。
此示例必須與前面示例中的ACE一起使用,以包括完全過濾包含IP選項的IP資料包:
!
ip access-list extended ACL-INFRASTRUCTURE-IN
!
!--- Deny IP packets containing IP options
!
deny ip any any option any-options
!
!--- Deny all other IP traffic to any network device
!
deny ip any <infrastructure-address-space> <mask>
!
!--- Permit transit traffic
!
permit ip any any
!
Cisco IOS軟體版本12.4(2)T新增根據存留時間(TTL)值進行的IP封包的ACL支援過濾器。當資料包從源流向目標時,IP資料包的TTL值由每台網路裝置遞減。雖然初始值因作業系統而異,但當資料包的TTL達到零時,必須丟棄該資料包。生成ICMP超時消息並將其傳送到資料包源時,需要將TTL遞減到零並因此丟棄資料包的裝置。
這些報文的生成和傳輸是一個例外過程。當到期的IP資料包數量少時,路由器可以執行此功能,但如果到期的資料包數量高,則生成和傳輸這些消息會佔用所有可用的CPU資源。這就構成了DoS攻擊媒介。因此,需要針對使用高速率IP資料包(即將過期)的DoS攻擊強化裝置。
建議組織過濾網路邊緣具有低TTL值的IP資料包。完全過濾TTL值不足以穿越網路的資料包可以緩解基於TTL的攻擊威脅。
此範例ACL會過濾TTL值小於六的封包。這可以為寬度最多五跳的網路提供保護,以抵禦TTL到期攻擊。
!
ip access-list extended ACL-INFRASTRUCTURE-IN
!
!--- Deny IP packets with TTL values insufficient to traverse the network
!
deny ip any any ttl lt 6
!
!--- Deny all other IP traffic to any network device
!
deny ip any <infrastructure-address-space> <mask>
!
!--- Permit transit traffic
!
permit ip any any
!
注意:某些協定會合法使用具有低TTL值的資料包。eBGP就是其中之一。有關減少基於TTL到期的攻擊的詳細資訊,請參閱辨識和防範TTL到期攻擊。
裝置管理會話提供檢視和收集裝置及其操作相關資訊的功能。如果向惡意使用者洩露此資訊,裝置可能會成為攻擊目標、受到危害並用於執行其他攻擊。任何對裝置進行特權訪問的人都能夠對該裝置進行完全管理控制。必須保護管理會話的安全,以防止資訊洩露和未經授權的訪問。
在Cisco IOS軟體版本12.4(6)T和更新版本中,管理平面保護(MPP)功能允許管理員對裝置接收的不同介面管理流量施加限制。這允許管理員對裝置及其訪問方式進行額外的控制。
此示例顯示如何啟用MPP,使其僅允許GigabitEthernet0/1介面上的SSH和HTTPS:
!
control-plane host
management-interface GigabitEthernet 0/1 allow ssh https
!
有關MPP的詳細資訊,請參閱管理平面保護。
注意:MPP不支援IPv6,並且僅限於IPv4輸入路徑。由於IPv6未被過濾,因此請在混合IPv4/IPv6環境中使用CoPP。
控制層面保護(CPPr)建立在控制層面策略功能的基礎上,用於限制和管制發往Cisco IOS裝置的路由處理器的控制層面流量。在Cisco IOS軟體版本12.4(4)T中增加,CPPr將控制平面分為不同的控制平面類別,稱為子介面。存在三個控制平面子介面:Host、Transit和CEF-Exception。此外,CPPr還包括以下控制層面保護功能:
CPPr允許管理員對傳送到裝置的流量進行分類、管制和限制,以便透過主機子介面進行管理。針對主機子介面類別分類的資料包示例包括管理流量(例如SSH或Telnet)以及路由協定。
注意:CPPr不支援IPv6,並且僅限於IPv4輸入路徑。
有關Cisco CPPr功能的詳細資訊,請參閱控制層面保護功能指南- 12.4T 和瞭解控制層面保護。
由於資訊可以在互動式管理會話中公開,因此必須加密此流量,使惡意使用者無法訪問傳輸的資料。流量加密允許到裝置的安全遠端訪問連線。如果管理會話的流量以明文形式透過網路傳送,攻擊者可以獲得有關裝置和網路的敏感資訊。
管理員能夠使用SSH或HTTPS(安全超文本傳輸協定)功能建立到裝置的加密安全遠端訪問管理連線。Cisco IOS軟體支援SSH版本1.0 (SSHv1)、SSH版本2.0 (SSHv2)和使用Secure Sockets Layer (SSL)和Transport Layer Security (TLS)進行身份驗證和資料加密的HTTPS。SSHv1和SSHv2不相容。SSHv1不安全,也不標準化,因此如果可以選擇SSHv2,則不建議使用。
Cisco IOS軟體也支援安全複製通訊協定(SCP),可透過加密和安全連線來複製裝置組態或軟體映像。SCP依賴SSH。此示例配置在Cisco IOS裝置上啟用SSH:
!
ip domain-name example.com
!
crypto key generate rsa modulus 2048
!
ip ssh time-out 60
ip ssh authentication-retries 3
ip ssh source-interface GigabitEthernet 0/1
!
line vty 0 4
transport input ssh
!
此配置示例啟用SCP服務:
!
ip scp server enable
!
此組態範例適用於HTTPS服務:
!
crypto key generate rsa modulus 2048
!
ip http secure-server
!
有關Cisco IOS軟體SSH功能的詳細資訊,請參閱在運行Cisco IOS的路由器和交換機上配置Secure Shell和Secure Shell (SSH)常見問題。
Cisco IOS軟體版本12.3(4)T中引入的SSHv2支援功能允許使用者設定SSHv2。(SSHv1支援在Cisco IOS軟體的早期版本中實施。) SSH在可靠的傳輸層上運行,並提供強大的身份驗證和加密功能。為SSH定義的唯一可靠傳輸是TCP。SSH提供了一種透過網路安全訪問並安全執行另一台電腦或裝置上的命令的方法。透過SSH隧道傳輸的安全複製協定(SCP)功能允許安全傳輸檔案。
如果未明確配置ip ssh version 2命令,則Cisco IOS會啟用SSH版本1.99。SSH版本1.99允許SSHv1和SSHv2連線。SSHv1被認為是不安全的,可能會對系統產生不利影響。如果啟用了SSH,建議使用ip ssh version 2命令停用SSHv1。
此示例配置在Cisco IOS裝置上啟用SSHv2(停用SSHv1):
!
hostname router
!
ip domain-name example.com
!
crypto key generate rsa modulus 2048
!
ip ssh time-out 60
ip ssh authentication-retries 3
ip ssh source-interface GigabitEthernet 0/1
!
ip ssh version 2
!
line vty 0 4
transport input ssh
!
有關使用SSHv2的更多資訊,請參閱安全外殼版本2支援。
Cisco IOS SSHv2支援鍵盤互動和基於密碼的身份驗證方法。針對RSA金鑰的SSHv2增強功能還支援客戶端和伺服器的基於RSA的公鑰身份驗證。
對於使用者身份驗證,基於RSA的使用者身份驗證使用與每個使用者關聯的私有/公共金鑰對進行身份驗證。使用者必須在客戶端上生成私鑰/公鑰對,並在Cisco IOS SSH伺服器上配置公鑰以完成身份驗證。
嘗試建立憑證的SSH使用者會提供具有私密金鑰的加密簽名。加密簽名和使用者公鑰將傳送到SSH伺服器進行身份驗證。SSH伺服器透過使用者提供的公鑰計算雜湊。雜湊可用來判斷伺服器是否有相符的專案。如果找到匹配項,則使用公鑰執行基於RSA的消息驗證。因此,使用者根據加密簽名被認證或被拒絕訪問。
對於伺服器身份驗證,Cisco IOS SSH客戶端必須為每個伺服器分配一個主機金鑰。當客戶端嘗試與伺服器建立SSH會話時,它會在金鑰交換消息中接收伺服器的簽名。如果客戶端上啟用了嚴格主機金鑰檢查標誌,客戶端將檢查它是否具有與預配置的伺服器對應的主機金鑰條目。如果找到匹配項,客戶端將嘗試使用伺服器主機金鑰驗證簽名。如果伺服器成功透過身份驗證,會話建立將繼續;否則將終止並顯示伺服器身份驗證失敗消息。
此示例配置允許在思科IOS裝置上使用RSA金鑰和SSHv2:
!
! Configure a hostname for the device
!
hostname router
!
! Configure a domain name
!
ip domain-name cisco.com
!
! Specify the name of the RSA key pair (in this case, "sshkeys") to use for SSH
!
ip ssh rsa keypair-name sshkeys
!
! Enable the SSH server for local and remote authentication on the router using
! the "crypto key generate" command
! For SSH version 2, the modulus size must be at least 768 bits
!
crypto key generate rsa usage-keys label sshkeys modulus 2048
!
! Configure an ssh timeout (in seconds)
!
! The following enables a timeout of 120 seconds for SSH connections
!
ip ssh time-out 120
!
! Configure a limit of five (5) authentication retries
!
ip ssh authentication-retries 5
!
! Configure SSH version 2
!
ip ssh version 2
!
有關使用RSA金鑰及SSHv2的更多資訊,請參閱適用於RSA金鑰的安全外殼版本2增強功能。
此示例配置使Cisco IOS SSH伺服器能夠執行基於RSA的使用者身份驗證。如果使用客戶端上儲存的公鑰或私鑰對驗證儲存在伺服器上的RSA公鑰,則使用者身份驗證成功。
!
! Configure a hostname for the device
!
hostname router
!
! Configure a domain name
!
ip domain-name cisco.com
!
! Generate RSA key pairs using a modulus of 2048 bits
!
crypto key generate rsa modulus 2048
!
! Configure SSH-RSA keys for user and server authentication on the SSH server
!
ip ssh pubkey-chain
!
! Configure the SSH username
!
username ssh-user
!
! Specify the RSA public key of the remote peer
!
! You must then configure either the key-string command
! (followed by the RSA public key of the remote peer) or the
! key-hash command (followed by the SSH key type and version.)
!
有關使用RSA金鑰及SSHv2的更多資訊,請參閱配置思科IOS SSH伺服器以執行基於RSA的使用者驗證部分。
此示例配置使Cisco IOS SSH客戶端能夠執行基於RSA的伺服器身份驗證。
!
!
hostname router
!
ip domain-name cisco.c
!
! Generate RSA key pairs
!
crypto key generate rsa
!
! Configure SSH-RSA keys for user and server authentication on the SSH server
!
ip ssh pubkey-chain
!
! Enable the SSH server for public-key authentication on the router
!
server SSH-server-name
!
! Specify the RSA public-key of the remote peer
!
! You must then configure either the key-string command
! (followed by the RSA public key of the remote peer) or the
! key-hash <key-type> <key-name> command (followed by the SSH key
! type and version.)
!
! Ensure that server authentication takes place - The connection will be
! terminated on a failure
!
ip ssh stricthostkeycheck
!
有關使用RSA金鑰及SSHv2的更多資訊,請參閱配置思科IOS SSH客戶端以執行基於RSA的伺服器驗證部分。
在Cisco IOS裝置中,控制檯和輔助(AUX)埠是可用於對裝置進行本地和遠端訪問的非同步線路。請注意,Cisco IOS裝置上的控制檯埠具有特殊許可權。這些許可權尤其可讓管理員執行密碼復原程式。要執行密碼恢復,未經身份驗證的攻擊者需要訪問控制檯埠並中斷裝置的電源或導致裝置崩潰。
任何用於訪問裝置控制檯埠的方法都必須以與對裝置進行特權訪問所實施的安全性相同的方式加以保護。用於保護訪問的方法必須包括使用AAA、exec-timeout和數據機口令(如果數據機連線到控制檯)。
如果不需要口令恢復,則管理員可以透過no service password-recovery 全局配置命令取消執行口令恢復過程的能力;但是,一旦啟用no service password-recovery 命令,管理員將無法對裝置執行口令恢復。
在大多數情況下,必須停用裝置AUX埠,以防止未經授權的訪問。可以使用以下命令停用AUX埠:
!
line aux 0
transport input none
transport output none
no exec
exec-timeout 0 1
no password
!
Cisco IOS軟體中的互動式管理會話使用tty或虛擬tty (vty)。tty是一種本地非同步線路,終端可以連線到該線路以本地訪問裝置,也可以連線到數據機以撥號訪問裝置。請注意,ttys可用於連線到其他裝置的控制檯埠。此功能允許具有tty線路的裝置充當控制檯伺服器,在該伺服器中,可以透過網路與連線到tty線路的裝置的控制檯埠建立連線。還必須控制網路中用於這些反向連線的tty線路。
vty線路用於裝置支援的所有其他遠端網路連線,而不考慮協定(例如SSH、SCP或Telnet)。為確保本地或遠端管理會話可以訪問裝置,必須在vty和tty線路上實施適當的控制。Cisco IOS裝置具有數量有限的vty線路;可用的線路數量可透過show line EXEC命令確定。當所有vty線路都處於使用狀態時,無法建立新管理會話,這會為訪問裝置建立DoS條件。
對裝置的vty或tty的最簡單訪問控制是在所有線路上使用身份驗證,而不考慮裝置在網路上的位置。這對vty線路至關重要,因為網路可以訪問這些線路。連線到用於遠端訪問裝置的數據機的tty線路,或者連線到其它裝置控制檯埠的tty線路,也可以由網路訪問。使用transport input或access-class配置命令、CoPP和CPPr功能或在裝置上對介面應用訪問清單,也可以執行其他形式的vty和tty訪問控制。
身份驗證可以透過使用AAA來執行,這是使用本地使用者資料庫對裝置進行身份驗證訪問的推薦方法,也可以透過直接在vty或tty線路上配置的簡單密碼身份驗證來執行。
必須使用exec-timeout命令註銷vty或tty線路上處於空閒狀態的會話。還必須使用service tcp-keepalives-in 命令對裝置的傳入連線啟用TCP keepalive。這可以確保連線遠端端的裝置仍然可訪問,並且從本地Cisco IOS裝置中移除半開放或孤立的連線。
將vty和tty配置為僅接受到裝置或透過該裝置(如果用作控制檯伺服器)的加密和安全遠端訪問管理連線。本節介紹tty,因為此類線路可以連線到其他裝置上的控制檯埠,這些埠允許透過網路訪問tty。要防止資訊洩露或禁止對在管理員與裝置之間傳輸的資料進行未授權的訪問,請使用transport input ssh,而不使用Telnet和rlogin等明文協定。可以在tty上啟用transport input none配置,該配置禁止將tty線路用於反向控制檯連線。
vty和tty線路都允許管理員連線到其他裝置。要限制管理員能夠用於傳出連線的傳輸型別,請使用transport output line 配置命令。如果不需要傳出連線,請使用transport output none。但是,如果允許傳出連線,則透過使用transport output ssh 對連線執行加密的安全遠端訪問方法。
注意:如果支援IPSec,它可用於對裝置進行加密和安全遠端訪問連線。如果使用IPSec,也會為裝置增加額外CPU開銷。但是,即使使用IPSec,仍必須將SSH作為傳輸來執行。
在一些法律管轄區,除非收到不允許使用系統的通知,否則不可能起訴惡意使用者並對其進行非法監控。提供此通知的一種方法是在使用Cisco IOS軟體banner login命令配置的標語消息中放入此資訊。
法律通知要求很複雜,因管轄區和情況而異,需要與法律顧問進行討論。即使在司法管轄區內,法律意見也可能不同。與律師合作時,橫幅可以提供以下部分或全部資訊:
從安全的角度來看,登入標語不能包含任何有關路由器名稱、型號、軟體或所有權的特定資訊,而不是合法的資訊。此資訊可能被惡意使用者濫用。
身份驗證、授權和記帳(AAA)架構對於保護對網路裝置的互動式訪問至關重要。AAA架構提供了高度可配置的環境,可以根據網路的需求進行定製。
TACACS+是Cisco IOS裝置可用於對遠端AAA伺服器的管理使用者進行身份驗證的身份驗證協定。這些管理使用者可透過SSH、HTTPS、Telnet或HTTP訪問Cisco IOS裝置。
TACACS+身份驗證(更常見的是AAA身份驗證)提供為每個網路管理員使用單個使用者帳戶的功能。當您不依賴於單個共用密碼時,網路安全性會得到提高,您的責任也會得到增強。
RADIUS是一種與TACACS+類似的通訊協定;但是,它只會加密在網路中傳送的密碼。相反,TACACS+會加密整個TCP負載,包括使用者名稱和密碼。因此,當AAA伺服器支援TACACS+時,請使用TACACS+而不是RADIUS。有關比較這兩種協定的詳細資訊,請參閱比較TACACS+和RADIUS。
可以使用與以下示例類似的配置在Cisco IOS裝置上啟用TACACS+身份驗證:
!
aaa new-model
aaa authentication login default group tacacs+
!
tacacs-server host <ip-address-of-tacacs-server>
tacacs-server key <key>
!
可以將先前的配置用作組織特定的AAA身份驗證模板的起點。
方法清單是描述要查詢以驗證使用者的驗證方法的順序清單。方法清單可讓您指定一或多個要用於驗證的安全通訊協定,因此如果初始方法失敗,可確保備份系統用於驗證。Cisco IOS軟體會使用第一個列出的方法,成功接受或拒絕使用者。只有在早期方法由於伺服器不可用或配置錯誤而失敗時,才嘗試後續方法。
如果所有已配置的TACACS+伺服器都變為不可用,則Cisco IOS裝置可以依賴輔助身份驗證協定。典型配置包括:如果所有配置的TACACS+伺服器均不可用,則使用本地身份驗證或啟用身份驗證。
裝置內身份驗證選項的完整清單包括enable、local和line。每個選項都有其優點。首選使用enable secret
命令,因為使用單向演算法雜湊金鑰,該演算法本身比用於線路或本地身份驗證的7類密碼的加密演算法更安全。
但是,在支援對本地定義的使用者使用加密口令的Cisco IOS軟體版本中,可能需要回退到本地身份驗證。這允許為一或多個網路管理員建立本機定義的使用者。如果TACACS+完全不可用,則每個管理員可以使用其本地使用者名稱和密碼。雖然此動作可加強網路管理員在TACACS+服務中斷時的責任,但由於必須維護所有網路裝置上的本機使用者帳戶,因此可大幅增加管理負擔。
此配置示例建立在先前的TACACS+驗證示例基礎之上,包括將驗證回退到使用enable secret
命令在本地配置的口令:
!
enable secret <password>
!
aaa new-model
aaa authentication login default group tacacs+ enable
!
tacacs-server host <ip-address-of-tacacs-server>
tacacs-server key <key>
!
Type 7密碼最初設計為允許快速解密儲存的密碼,但它不是一種安全的密碼儲存形式。有許多工具可用於輕鬆解密這些密碼。避免使用型別7密碼,除非思科IOS裝置上使用的功能需要該密碼。
儘可能使用第9類(加密):
username <username> privilege 15 algorithm-type scrypt secret <secret>
廢除此型別的口令可以透過AAA驗證和使用增強的口令安全功能來執行,後者允許對透過username
全局配置命令在本地定義的使用者使用加密口令。如果無法完全禁止使用型別7密碼,請考慮將這些密碼混淆而不是加密。
有關刪除型別7口令的詳細資訊,請參閱一般管理平面強化部分。
TACACS+和AAA的命令授權提供一種機制,可允許或拒絕管理使用者輸入的每個命令。當使用者輸入EXEC命令時,Cisco IOS會將每個命令傳送到已配置的AAA伺服器。AAA伺服器使用其配置的策略允許或拒絕該特定使用者的命令。
此配置可以增加到前面的AAA身份驗證示例中以實施命令授權:
!
aaa authorization exec default group tacacs none
aaa authorization commands 0 default group tacacs none
aaa authorization commands 1 default group tacacs none
aaa authorization commands 15 default group tacacs none
!
配置後,AAA命令記賬將向配置的TACACS+伺服器傳送有關輸入的每個EXEC命令的資訊。傳送到TACACS+伺服器的資訊包括執行的命令、執行的日期和輸入命令的使用者名稱。RADIUS不支援指令計量。
此示例配置啟用了AAA命令,該命令記下在許可權級別0、1和15輸入的EXEC命令。此配置基於包括TACACS伺服器配置的先前示例。
!
aaa accounting exec default start-stop group tacacs
aaa accounting commands 0 default start-stop group tacacs
aaa accounting commands 1 default start-stop group tacacs
aaa accounting commands 15 default start-stop group tacacs
!
在環境中使用的AAA伺服器可以是冗餘的,並以容錯方式部署。這有助於確保在AAA伺服器不可用時,可以進行互動式管理訪問,例如SSH。
設計或實施冗餘AAA伺服器解決方案時,請記住以下注意事項:
有關詳細資訊,請參閱部署訪問控制伺服器。
本節重點介紹幾種可用於保護Cisco IOS裝置中SNMP部署的方法。SNMP必須妥善保護,以保護網路資料和資料傳輸的網路裝置的機密性、完整性和可用性。SNMP提供有關網路裝置運行狀況的豐富資訊。保護此資訊免受惡意使用者的攻擊,這些使用者希望利用此資料對網路執行攻擊。
團體字串是應用於Cisco IOS裝置的密碼,用於限制對裝置上SNMP資料的只讀和讀寫訪問。與所有密碼一樣,這些社群字串經過仔細選擇,以確保它們不是微不足道的。按照網路安全策略定期更改社群字串。例如,當網路管理員變更角色或離開公司時,請變更字串。
這些配置行配置只讀社群字串READONLY和讀寫社群字串READWRITE:
!
snmp-server community READONLY RO
snmp-server community READWRITE RW
!
注意:選擇前面的社群字串示例是為了清楚地說明這些字串的使用。對於生產環境,請謹慎選擇社群字串,並在其中包含一系列字母、數字和非字母數字元號。
有關此功能的詳細資訊,請參閱Cisco IOS SNMP命令參考。
除社群字串之外,還應用ACL,以進一步限制對一組選定源IP地址的SNMP訪問。此配置限制對位於192.168.100.0/24地址空間中的終端主機裝置的SNMP只讀訪問,並限制對位於192.168.100.1的終端主機裝置的SNMP讀寫訪問。
注意:這些ACL允許的裝置需要正確的社群字串才能訪問請求的SNMP資訊。
!
access-list 98 permit 192.168.100.0 0.0.0.255
access-list 99 permit 192.168.100.1
!
snmp-server community READONLY RO 98
snmp-server community READWRITE RW 99
!
有關此功能的詳細資訊,請參閱「Cisco IOS網路管理命令參考」中的snmp-server community。
基礎設施ACL (iACL)的部署可確保只有具有受信任IP地址的終端主機才能將SNMP流量傳送到Cisco IOS裝置。理想情況下,iACL包含拒絕UDP埠161上未授權的SNMP資料包的策略。
有關使用iACL的詳細資訊,請參閱本文檔的使用基礎架構ACL限制對網路的訪問部分。
SNMP檢視是一項安全功能,可允許或拒絕訪問某些SNMP MIB。建立檢視並使用snmp-server community community-string view全局配置命令將其應用於社群字串後,如果您訪問MIB資料,您將被限制為只能使用該檢視定義的許可權進行訪問。在適當時,使用檢視將SNMP使用者限制到他們需要的資料。
本配置示例使用社群字串LIMITED將MIB訪問限制為位於系統組中的MIB資料:
!
snmp-server view VIEW-SYSTEM-ONLY system include
!
snmp-server community LIMITED view VIEW-SYSTEM-ONLY RO
!
有關詳細資訊,請參閱配置SNMP支援。
SNMP第3版(SNMPv3)由RFC3410、RFC3411、RFC3412、RFC3413、RFC3414及RFC3415定義,是一種用於網路管理且具互通性的基於標準的通訊協定。SNMPv3可透過網路驗證資料包並選擇性地加密資料包,從而提供對裝置的安全訪問。在受支援的地方,部署SNMP時,可以使用SNMPv3增加另一層安全性。SNMPv3包含三個主要配置選項:
必須存在授權引擎ID才能使用SNMPv3安全機制(身份驗證或身份驗證和加密)來處理SNMP資料包;預設情況下,引擎ID在本地生成。可以使用show snmp engineID
命令顯示該引擎ID,如本例所示:
router#show snmp engineID
Local SNMP engineID: 80000009030000152BD35496
Remote Engine ID IP-addr Port
注意:如果更改了engineID,則必須重新配置所有SNMP使用者帳戶。
下一步是配置SNMPv3組。此命令使用SNMP伺服器組AUTHGROUP為SNMPv3配置思科IOS裝置,並僅使用auth關鍵字對此組啟用身份驗證:
!
snmp-server group AUTHGROUP v3 auth
!
此命令使用SNMP伺服器組PRIVGROUP為SNMPv3配置思科IOS裝置,並使用priv關鍵字對此組啟用身份驗證和加密:
!
snmp-server group PRIVGROUP v3 priv
!
此命令使用MD5身份驗證口令authpassword
和3DES加密口令privpassword
配置SNMPv3使用者snmpv3user:
!
snmp-server user snmpv3user PRIVGROUP v3 auth md5 authpassword priv 3des
privpassword
!
知道snmp-server user
配置命令沒有按照RFC 3414的要求顯示在裝置的配置輸出中。因此,無法從配置中檢視使用者密碼。要檢視已配置的使用者,請輸入show snmp user
命令,如本示例所示:
router#show snmp user
User name: snmpv3user
Engine ID: 80000009030000152BD35496
storage-type: nonvolatile active
Authentication Protocol: MD5
Privacy Protocol: 3DES
Group-name: PRIVGROUP
有關此功能的詳細資訊,請參閱配置SNMP支援。
Cisco IOS軟體中的管理平面保護(MPP)功能可用於協助保護SNMP,因為它會限制SNMP流量在裝置上終止的介面。MPP功能允許管理員指定一個或多個介面作為管理介面。僅允許管理流量透過這些管理介面進入裝置。啟用MPP後,除了指定的管理介面,其他介面均不接受發往裝置的網路管理流量。
MPP是CPPr功能的子集,需要支援CPPr的Cisco IOS版本。有關CPPr的詳細資訊,請參閱瞭解控制層面保護。
在本示例中,MPP用於限制僅對FastEthernet 0/0介面的SNMP和SSH訪問:
!
control-plane host
management-interface FastEthernet0/0 allow ssh snmp
!
有關詳細資訊,請參閱管理平面保護功能指南。
事件日誌提供對Cisco IOS裝置操作及其部署所在網路的可視性。Cisco IOS軟體提供多種靈活的日誌配置選項,可幫助實現組織的網路管理和可視性目標。
以下各節提供一些基本的日誌功能最佳實踐,可幫助管理員成功利用日誌功能,並將對Cisco IOS裝置上的日誌功能的影響降至最低。
建議您將日誌資訊傳送到遠端系統日誌伺服器。這使得能夠更有效地關聯和審計網路裝置之間的網路和安全事件。請注意,系統日誌消息透過UDP以明文形式傳輸時不可靠。因此,網路為管理流量提供的任何保護(例如加密或帶外訪問)都可以擴展為包括系統日誌流量。
此示例將Cisco IOS裝置配置為向遠端系統日誌伺服器傳送日誌資訊:
!
logging host <ip-address>
!
有關日誌關聯的詳細資訊,請參閱使用防火牆和Cisco IOS路由器Syslog事件辨識突發事件。
本機非揮發性儲存(ATA磁碟)功能整合在Cisco IOS 12.4(15)T中,最初是在12.0(26)S中導入,可讓系統記錄訊息儲存在進階技術附件(ATA)快閃磁碟上。重新啟動路由器後,儲存在ATA驅動器上的消息將持續存在。
這些配置行將日誌消息配置到ATA快閃記憶體(disk0)的syslog目錄中的134,217,728位元組(128 MB),指定檔案大小為16,384位元組:
logging buffered
logging persistent url disk0:/syslog size 134217728 filesize 16384
在將日誌消息寫入ATA磁碟上的檔案之前,Cisco IOS軟體會檢查以確定是否有足夠的磁碟空間。否則,將刪除最舊的日誌檔案消息(按時間戳),並儲存當前檔案。檔名格式為log_month:day:year::time
。
註:ATA快閃記憶體驅動器的磁碟空間有限,因此需要對其進行維護,以避免覆蓋儲存的資料的可能性。
本示例顯示如何在維護過程中將日誌消息從路由器ATA隨身碟複製到FTP伺服器192.168.1.129上的外部磁碟:
copy disk0:/syslog ftp://myuser/mypass@192.168.1.129/syslog
有關此功能的詳細資訊,請參閱本地非易失性儲存(ATA磁碟)的日誌記錄。
Cisco IOS裝置生成的每條日誌消息都被分配為從級別0(Emergencies)到級別7(Debug)的八個嚴重性之一。除非特別需要,否則建議您避免使用第7級的日誌。第7級的日誌會在裝置上產生更高的CPU負載,這可能導致裝置和網路不穩定。
全局配置命令logging trap
級別用於指定哪些日誌消息傳送到遠端系統日誌伺服器。指定的級別指示傳送的最低嚴重性消息。對於緩衝的日誌,使用logging buffered
級別命令。
此配置示例將傳送到遠端系統日誌伺服器和本地日誌緩衝區的日誌消息限制為嚴重性級別6(資訊)到0(緊急):
!
logging trap 6
logging buffered 6
!
有關詳細資訊,請參閱故障排除、故障管理和日誌記錄。
使用Cisco IOS軟體可以向監視會話(已發出EXEC命令terminal monitor
的互動式管理會話)和控制檯傳送日誌消息。但是,這可能會增加Cisco IOS裝置的CPU負載,因此不推薦使用。相反,將日誌資訊傳送到本地日誌緩衝區,然後可以使用show logging
命令檢視這些資訊。
使用全局配置命令no logging console
和no logging monitor
可停用到控制檯和監視會話的日誌。此組態範例顯示使用以下命令:
!
no logging console
no logging monitor
!
有關全局配置命令的詳細資訊,請參閱Cisco IOS網路管理命令參考。
Cisco IOS軟體支援使用本地日誌緩衝區,以便管理員可以檢視本地生成的日誌消息。強烈建議對控制檯或監視會話使用緩衝日誌,而不是使用日誌。
當您配置緩衝的日誌時,有兩個相關的配置選項:日誌緩衝區大小和儲存在緩衝區中的消息嚴重性。logging buffer
的大小使用全局配置命令logging buffered size.
配置。緩衝區中包括的最低嚴重性使用log buffered severity命令配置。管理員可以透過show logging
命令,檢視日誌緩衝區的內容。
此配置示例包括配置16,384位元組的日誌緩衝區,以及嚴重性為6, Informational的日誌緩衝區,表示儲存級別為0 (緊急)到6 (資訊)的消息:
!
logging buffered 16384 6
!
有關緩衝的日誌的詳細資訊,請參閱Cisco IOS網路管理命令參考。
為了在收集和檢視日誌消息時提高一致性級別,建議靜態配置日誌記錄源介面。這可以透過logging source-interface
介面命令來完成。靜態配置的日誌記錄源介面可確保從單個Cisco IOS裝置傳送的所有日誌消息中都顯示相同的IP地址。為了提高穩定性,請使用環回介面作為日誌源。
此配置示例描述了如何使用logging source-interface
介面全局配置命令,指定用於所有日誌消息的環回0介面的IP地址:
!
logging source-interface Loopback 0
!
有關詳細資訊,請參閱Cisco IOS命令參考。
記錄時間戳的配置有助於跨網路裝置關聯事件。必須實施正確且一致的日誌時間戳配置,以確保可以關聯日誌資料。配置日誌時間戳,以毫秒精度包括日期和時間,並包括裝置上使用的時區。
此範例包括協調世界時(UTC)區域內以毫秒精度配置日誌時間戳:
!
service timestamps log datetime msec show-timezone
!
如果您不希望記錄相對於UTC的時間,可以配置特定的本地時區,並配置在生成的日誌消息中顯示該資訊。此範例顯示太平洋標準時間(PST)區域的裝置組態:
!
clock timezone PST -8
service timestamps log datetime msec localtime show-timezone
!
Cisco IOS軟體套件含多項功能,可在Cisco IOS裝置上啟用某種形式的組態管理。這些功能包括存檔配置和將配置回滾到以前版本的功能,以及建立詳細的配置更改日誌。
在Cisco IOS軟體版本12.3(7)T及更高版本中,配置替換和配置回滾功能允許您將裝置上的Cisco IOS裝置配置存檔。手動或自動儲存在此檔案中的配置可用於用configure replace
命令替換當前正在運行的配置。這與copy
running-config
命令形成對比。configure replace
檔名命令替換正在運行的配置,而非copy
命令執行的合併。
建議您在網路上的所有Cisco IOS裝置上啟用此功能。一旦啟用,管理員可使用archive config EXEC
命令使當前的運行配置加入存檔中。使用show archive EXEC
命令可以檢視存檔的配置。
此示例說明了自動配置存檔的配置。本示例指示Cisco IOS裝置將存檔的配置作為名為archived-config-N的檔案儲存在disk0:檔案系統上,最多維護14個備份,並在管理員發出write memory EXEC
命令時每天存檔一次(1440分鐘)。
!
archive
path disk0:archived-config
maximum 14
time-period 1440
write-memory
!
雖然配置存檔功能可以最多儲存14個備份配置,但是,建議您在使用maximum
命令之前考慮空間要求。
在Cisco IOS軟體版本12.3(14)T中新增的獨佔組態變更存取功能可確保特定時間只有一個管理員對Cisco IOS裝置進行組態變更。此功能有助於消除同時更改相關配置元件所產生的不良影響。此功能是使用全局配置命令
模式配置的,並在兩種模式中的一種模式下運行:自動或手動。在自動模式下,當管理員發出configuration mode exclusive
configure terminal EXEC
命令時,配置自動鎖定。在手動模式下,當進入配置模式時,管理員使用configure terminal lock
命令鎖定配置。
此範例說明自動組態鎖定功能的組態:
!
configuration mode exclusive auto
!
在Cisco IOS軟體版本12.3(8)T中新增的彈性組態功能可讓您安全儲存Cisco IOS裝置目前使用的Cisco IOS軟體映像和裝置組態副本。啟用此功能後,將無法更改或刪除這些備份檔案。建議您啟用此功能,以防止無意和惡意嘗試刪除這些檔案。
!
secure boot-image
secure boot-config!
啟用此功能後,便可以恢復已刪除的配置或Cisco IOS軟體映像。使用show secure boot EXEC
命令可顯示此功能的當前狀態。
在Cisco 1900、2900和3900系列路由器的Cisco IOS軟體版本15.0(1)M中增加了數位簽章的思科軟體功能,它透過使用安全的不對稱(公鑰)加密技術,促進了數位簽章的思科IOS軟體的使用,因而受到信任。
數位簽章的影像會攜帶其本身的加密(私密金鑰)雜湊。在檢查時,裝置使用它在其金鑰儲存中的金鑰的關聯公鑰解密該雜湊,並且還計算它自己的影象的雜湊。如果解密的雜湊與計算的影象雜湊匹配,則表示影象未被篡改,並且可以信任。
數位簽章的思科軟體金鑰透過金鑰的型別和版本進行標識。金鑰可以是特殊、生產或變換金鑰型別。Production和特殊鍵型別具有關聯的鍵版本,當鍵被撤消和替換時,該鍵版本按字母順序遞增。當您使用數位簽章的思科軟體功能時,ROMMON和常規Cisco IOS映像都使用特殊或生產金鑰進行簽名。ROMMON映像可升級,必須使用與載入的特定或生產映像相同的金鑰進行簽名。
此命令使用裝置金鑰庫中的金鑰驗證快閃記憶體中的映像c3900-universalk9-mz.SSA的完整性:
show software authenticity file flash0:c3900-universalk9-mz.SSA
Cisco Catalyst 4500 E系列交換機的Cisco IOS XE版本3.1.0.SG中還整合了數位簽章的思科軟體功能。
有關此功能的詳細資訊,請參閱數位簽章的思科軟體。
在Cisco IOS軟體版本15.1(1)T和更新版本中,已引入數位簽章的Cisco軟體的金鑰取代。金鑰替換和撤銷從平台金鑰儲存中替換並刪除用於數位簽章的思科軟體檢查的金鑰。只有在金鑰受到危害時,才能撤銷特殊金鑰和生產金鑰。
用於(特殊或生產)映像的新(特殊或生產)金鑰來自用於撤銷先前的特殊或生產金鑰的(生產或撤銷)映像。使用預儲存在平台上的變換金鑰驗證撤銷映像的完整性。滑鼠指向效果鍵不會變更。當您撤銷生產金鑰時,在載入了撤銷映像後,它攜帶的新金鑰將增加到金鑰儲存中,並且關聯的舊金鑰可以撤銷,只要ROMMON映像已升級且新的生產映像已啟動。當您撤銷特殊金鑰時,會載入生產影像。此影像會新增特殊金鑰,而且可以撤銷舊的特殊金鑰。升級ROMMON後,可以啟動新的特殊映像。
本示例介紹如何撤消特殊金鑰。這些命令從當前生產映像向金鑰儲存中增加新的特殊金鑰,將新的ROMMON映像(C3900_rom-monitor.srec.SSB)複製到儲存區域(usbflash0:),升級ROMMON檔案,並撤銷舊的特殊金鑰:
software authenticity key add special
copy tftp://192.168.1.129/C3900_rom-monitor.srec.SSB usbflash0:
upgrade rom-monitor file usbflash0:C3900_PRIV_RM2.srec.SSB
software authenticity key revoke special
然後,可將新的特殊映像(c3900-universalk9-mz.SSB)複製到要載入的快閃記憶體中,並使用新增加的特殊金鑰(.SSB)驗證映像的簽名:
copy /verify tftp://192.168.1.129/c3900-universalk9-mz.SSB flash:
雖然執行Cisco IOS XE軟體的Catalyst 4500 E系列交換器支援數位簽章的Cisco軟體功能,但是這些交換器不支援金鑰撤銷和取代。
有關此功能的更多資訊,請參閱數位簽章的思科軟體指南的數位簽章的思科軟體金鑰撤消和替換部分。
在Cisco IOS軟體版本12.3(4)T中新增的「組態變更通知和記錄」功能可讓您記錄對Cisco IOS裝置所做的組態變更。該日誌儲存在Cisco IOS裝置上,包含更改者的使用者資訊、輸入的配置命令以及更改的時間。使用logging enable
配置更改記錄器配置模式命令可啟用此功能。可選的hidekeys
命令和logging size
條目用於改進預設配置,因為它們可防止密碼資料記錄並增加更改日誌的長度。
建議您啟用此功能,這樣可以更輕鬆地瞭解Cisco IOS裝置的配置更改歷史記錄。此外,建議您在更改配置時使用notify syslog
配置命令來生成系統日誌消息。
!
archive
log config
logging enable
logging size 200
hidekeys
notify syslog
!
啟用「配置更改通知和日誌記錄」功能後,可以使用特權EXEC命令show archive log config all
檢視配置日誌。
控制平面功能包括網路裝置之間通訊的協定和進程,用於將資料從源裝置移動到目標裝置。這包括路由協定(例如邊界網關協定)以及ICMP和資源預留協定(RSVP)等協定。
管理和資料平面中的事件不能對控制平面產生負面影響,這一點很重要。如果資料平面事件(例如DoS攻擊)影響控制平面,則整個網路可能變得不穩定。有關Cisco IOS軟體功能和配置的這些資訊有助於確保控制平面的恢復能力。
保護網路裝置的控制層面至關重要,因為控制層面可確保管理和資料層面的維護和運行。如果控制平面在安全事件期間變得不穩定,則可能無法恢復網路的穩定性。
在許多情況下,您可以停用介面上特定消息型別的接收和傳輸,以最大限度地減少處理不必要資料包所需的CPU負載。
當資料包在同一介面上接收和傳輸時,路由器可生成ICMP重定向消息。在這種情況下,路由器會轉送封包,並將ICMP重新導向訊息傳送回原始封包的傳送者。此行為允許傳送方繞過路由器,將未來的資料包直接轉發到目的地(或靠近目的地的路由器)。在正常運行的IP網路中,路由器僅將重定向消息傳送到其本地子網上的主機。換句話說,ICMP重定向通常不會超出第3層邊界。
ICMP重定向消息有兩種型別:重定向主機地址和重定向整個子網。惡意使用者可能會利用路由器傳送ICMP重定向的能力,繼續將資料包傳輸到路由器,從而強制路由器使用ICMP重定向消息做出響應,並會對路由器的CPU和效能造成負面影響。要防止路由器傳輸ICMP重定向,請使用no ip redirects
介面配置命令。
使用介面訪問清單過濾會導致ICMP不可達消息傳輸回已過濾流量的源。產生這些訊息可能會增加裝置上的CPU使用率。預設情況下,在Cisco IOS軟體中,ICMP不可達生成限制為每500毫秒生成一個資料包。使用介面配置命令no ip unreachables
可停用生成ICMP不可達消息。使用全局配置命令ip icmp rate-limit unreachable
interval-in-ms可更改預設的ICMP不可達速率限制。
代理ARP是一種技術,透過這種技術,一台裝置(通常是路由器)可以應答傳送給另一台裝置的ARP請求。透過偽造身份,路由器承擔將資料包路由到實際目的地的責任。代理ARP可以幫助子網中的電腦到達遠端子網,而無需路由配置或預設網關。代理ARP在RFC 1027中進行定義。
代理ARP使用有其缺點。它會導致網段上的ARP流量增加,造成資源耗盡和中間人攻擊。代理ARP會呈現資源耗盡攻擊向量,因為每個代理ARP請求會佔用少量記憶體。如果攻擊者傳送大量ARP請求,他們可能會用盡所有可用的記憶體。
中間人攻擊使網路上的主機能夠欺騙路由器的MAC地址,從而導致主機不慎將流量傳輸到攻擊者。可以使用介面配置命令停用代理ARP no ip proxy-arp.
保護控制平面至關重要。由於應用效能和終端使用者體驗可能會因沒有資料流量和管理流量而受到影響,因此控制平面的生存能力可確保其他兩個平面得到維護和運行。
要正確保護Cisco IOS裝置的控制平面,必須瞭解CPU所交換的流量型別。處理交換流量通常包含兩種不同的流量型別。第一種流量型別定向到Cisco IOS裝置,必須直接由Cisco IOS裝置CPU處理。此資料流包括接收鄰接資料流類別。此流量包含思科快速轉發(CEF)表中的條目,因此路由器下一跳是裝置本身(透過show ip cef
命令輸出中的詞語receive指示)。此指示適用於需要由Cisco IOS裝置CPU直接處理的任何IP地址,包括介面IP地址、組播地址空間和廣播地址空間。
CPU處理的第二個流量型別是資料平面流量-目的地超出Cisco IOS裝置自身的流量,這需要CPU進行特殊處理。雖然不是資料平面流量對CPU影響的詳盡清單,但這些流量型別是進程交換的,因此可能影響控制平面操作:
此清單詳細列出了確定哪些流量型別將由Cisco IOS裝置CPU處理的幾種方法:
show ip cef
命令提供CEF表中包含的每個IP字首的下一跳資訊。如前所述,包含接收作為「下一跳」的條目將被視為接收鄰接,並指示流量必須直接傳送到CPU。show interface switching
命令提供有關裝置進行處理交換的資料包數量的資訊。show ip traffic
命令提供有關具有以下特徵的IP資料包的數量的資訊:show policy-map control-plane
命令來執行。基礎架構ACL (iACL)會限制與網路裝置之間的外部通訊。本文檔的使用基礎架構ACL限制對網路的訪問部分全面介紹了iACL。
建議您實施iACL來保護所有網路裝置的控制平面。
對於分散式平台,接收ACL (rACL)可以是Cisco IOS軟體版本12.0(21)S2 (適用於12000 (GSR))、12.0(24)S (適用於7500)和12.0(31)S (適用於10720)的選項。rACL可在流量影響路由處理器之前保護裝置免受有害流量的影響。rACL僅用於保護配置它的裝置,傳輸流量不受rACL的影響。因此,圖中所示的示例ACL條目中使用的目標IP地址「any」僅指路由器的物理或虛擬IP地址。rACL也被視為網路安全最佳實踐,可視為對良好網路安全性的長期補充。
以下是寫入的接收路徑ACL,用於允許來自192.168.100.0/24網路上受信任主機的SSH (TCP連線埠22)流量:
!
!--- Permit SSH from trusted hosts allowed to the device.
!
access-list 151 permit tcp 192.168.100.0 0.0.0.255 any eq 22
!
!--- Deny SSH from all other sources to the RP.
!
access-list 151 deny tcp any any eq 22
!
!--- Permit all other traffic to the device.
!--- according to security policy and configurations.
!
access-list 151 permit ip any any
!
!--- Apply this access list to the receive path.
!
ip receive access-list 151
!
請參閱GSR:接收訪問控制清單以幫助標識合法資料流並允許其進入裝置,同時拒絕所有不需要的資料包。
CoPP功能還可用於限制發往基礎設施裝置的IP資料包。在本示例中,僅允許來自受信任主機的SSH流量到達Cisco IOS裝置CPU。
注意:從未知或不受信任的IP地址丟棄的資料流可能會阻止具有動態分配IP地址的主機建立與Cisco IOS裝置的連線。
!
access-list 152 deny tcp <trusted-addresses> <mask> any eq 22
access-list 152 permit tcp any any eq 22
access-list 152 deny ip any any
!
class-map match-all COPP-KNOWN-UNDESIRABLE
match access-group 152
!
policy-map COPP-INPUT-POLICY
class COPP-KNOWN-UNDESIRABLE
drop
!
control-plane
service-policy input COPP-INPUT-POLICY
!
在前面的CoPP示例中,將未授權的資料包與permit操作進行匹配的ACL條目導致這些資料包被policy-map drop函式丟棄,而與deny操作匹配的資料包並不會受到policy-map drop函式的影響。
CoPP適用於Cisco IOS軟體版本系列12.0S、12.2SX、12.2S、12.3T、12.4和12.4T。
在Cisco IOS軟體版本12.4(4)T中引入的控制層面保護(CPPr)可用於限制或管制目的地為Cisco IOS裝置CPU的控制層面流量。與CoPP類似,CPPr可以更精細地限制流量。CPPr將聚合控制平面分為三個單獨的控制平面類別,稱為子介面。存在主機、中轉和CEF-Exception流量類別的子介面。此外,CPPr還包括以下控制層面保護功能:
有關使用CPPr功能的詳細資訊,請參閱瞭解控制層面保護(CPPr)。
Cisco Catalyst 6500系列Supervisor引擎32和Supervisor引擎720支援平台特定的基於硬體的速率限制器(HWRL),適用於特殊網路場景。這些硬體速率限制器稱為特殊情況速率限制器,因為它們涵蓋一組特定預先定義的IPv4、IPv6、單點傳送及多點傳送DoS案例。HWRL可以保護Cisco IOS裝置免受需要CPU處理資料包的各種攻擊。
預設情況下啟用多個HWRL。有關HWRL的詳細資訊,請參閱PFC3基於硬體的速率限制器預設設定。
有關HWRL的詳細資訊,請參閱PFC3上的基於硬體的速率限制器。
邊界網關協定(BGP)是網際網路的路由基礎。因此,任何連線要求高於一般要求的組織都經常使用BGP。BGP經常成為攻擊者的攻擊目標,因為它無處不在,而且BGP配置設定在小型組織中並忽略其性質。但是,有許多特定於BGP的安全功能可用於提高BGP配置的安全性。
其中概述了最重要的BGP安全功能,並在適當時提出了配置建議。
每個IP資料包包含一個稱為生存時間(TTL)的1位元組欄位。IP資料包經過的每個裝置都會將此值遞減1。TTL起始值會因作業系統而異,通常介於64到255之間。當封包的TTL值達到零時,就會捨棄該封包。
基於TTL的安全保護稱為通用TTL安全機制(GTSM)和BGP TTL安全攻擊(BTSH),它利用IP資料包的TTL值來確保接收到的BGP資料包來自直接連線對等體。此功能通常需要來自對等路由器的協調;但是,一旦啟用,它就可以完全抵禦許多針對BGP的基於TCP的攻擊。
使用BGP路由器配置命令neighbor
的ttl-security
選項可啟用BGP的GTSM。此範例說明此功能的設定:
!
router bgp <asn>
neighbor <ip-address> remote-as <remote-asn>
neighbor <ip-address> ttl-security hops <hop-count>
!
收到BGP資料包時,將檢查其TTL值,並且該值必須大於或等於255減去指定的跳數。
使用MD5進行的對等驗證會建立作為BGP會話一部分傳送的每個資料包的MD5摘要。具體來說,IP和TCP報頭、TCP負載和金鑰的部分內容用於生成摘要。
然後,建立的摘要將儲存在TCP選項Kind 19中,該選項是RFC 2385專門為了此目的而建立的。接收方BGP揚聲器使用相同的演算法和金鑰重新生成消息摘要。如果接收和計算的摘要不相同,資料包將被丟棄。
使用BGP路由器配置命令neighbor
的password
選項可配置使用MD5進行對等驗證。此命令的使用說明如下:
!
router bgp <asn>
neighbor <ip-address> remote-as <remote-asn>
neighbor <ip-address> password <secret>
!
有關使用MD5進行BGP對等驗證的詳細資訊,請參閱鄰居路由器驗證。
BGP字首由路由器儲存在記憶體中。路由器必須保留的字首越多,BGP消耗的記憶體就越多。在某些配置中,可以儲存所有Internet字首的子集,例如在僅利用預設路由或提供商使用者網路的路由的配置中。
要防止記憶體耗盡,請配置每個對等體接受的最大字首數。建議為每個BGP對等體配置一個限制。
當您使用neighbor maximum-prefix
路由器配置命令BGP來配置此功能時,有一個引數是必需的:對等體關閉之前接受的最大字首數。或者,也可以輸入1到100之間的數字。此數字表示傳送日誌消息時的最大字首值的百分比。
!
router bgp <asn>
neighbor <ip-address> remote-as <remote-asn>
neighbor <ip-address> maximum-prefix <shutdown-threshold> <log-percent>
!
有關對等最大字首的詳細資訊,請參閱配置BGP最大字首功能。
字首清單允許網路管理員允許或拒絕BGP傳送或接收的特定字首。如果可能,請使用字首清單,以確保網路流量透過預期路徑傳送。在入站和出站方向上將字首清單應用於每個eBGP對等體。
配置的字首清單將傳送或接收的字首限制為網路路由策略明確允許的字首。如果由於收到大量字首而不可行,請配置字首清單以專門阻止已知的不良字首。這些已知的錯誤字首包括未分配的IP地址空間和RFC 3330為內部或測試目的保留的網路。 配置出站字首清單,以便僅允許組織打算通告的字首。
此配置示例使用字首清單來限制獲知和通告的路由。具體而言,字首清單BGP-PL-INBOUND只允許預設路由入站,並且字首192.168.2.0/24是BGP-PL-OUTBOUND允許通告的唯一路由。
!
ip prefix-list BGP-PL-INBOUND seq 5 permit 0.0.0.0/0
ip prefix-list BGP-PL-OUTBOUND seq 5 permit 192.168.2.0/24
!
router bgp <asn>
neighbor <ip-address> prefix-list BGP-PL-INBOUND in
neighbor <ip-address> prefix-list BGP-PL-OUTBOUND out
!
有關BGP字首過濾器資訊的完整範圍,請參閱使用外部BGP連線到服務提供商。
BGP自主系統(AS)路徑訪問清單允許使用者根據字首的AS-path屬性過濾已接收和通告的字首。這可以與字首清單一起使用,以建立穩健的過濾器集。
此配置示例使用AS路徑訪問清單將入站字首限制為由遠端AS發出的字首,將出站字首限制為由本地自治系統發出的字首。來自所有其他自治系統的字首會被過濾,而不會安裝在路由表中。
!
ip as-path access-list 1 permit ^65501$
ip as-path access-list 2 permit ^$
!
router bgp <asn>
neighbor <ip-address> remote-as 65501
neighbor <ip-address> filter-list 1 in
neighbor <ip-address> filter-list 2 out
!
網路正確轉發流量並從拓撲更改或故障中恢復的能力取決於拓撲的準確檢視。通常可以運行內部網關協定(IGP)來提供此檢視。預設情況下,IGP是動態的,會發現與使用中的特定IGP通訊的其他路由器。IGP還會發現網路鏈路發生故障時可以使用的路由。
以下小節概述了最重要的IGP安全功能。在適當的時候提供了涵蓋路由資訊協定版本2 (RIPv2)、增強型內部網關路由協定(EIGRP)和開放最短路徑優先(OSPF)的建議和示例。
如果無法保護路由資訊交換,攻擊者就會將錯誤的路由資訊引入網路。在路由器之間使用密碼身份驗證和路由協定,以提高網路安全性。但是,由於此身份驗證是以明文形式傳送的,因此攻擊者很容易破壞此安全控制。
將MD5雜湊功能增加到身份驗證過程後,路由更新不再包含明文密碼,並且路由更新的全部內容都更加防篡改。但是,如果使用弱密碼,則MD5身份驗證仍然容易遭受暴力攻擊和詞典攻擊。建議您使用具有足夠隨機化的密碼。由於MD5身份驗證比密碼身份驗證安全得多,因此這些示例特定於MD5身份驗證。IPSec還可用於驗證和保護路由協定,但這些示例沒有詳細說明其用法。
EIGRP和RIPv2都使用金鑰鏈作為配置的一部分。有關配置和使用「金鑰鏈」的詳細資訊,請參閱key。
以下是使用MD5進行EIGRP路由器身份驗證的示例配置:
!
key chain <key-name>
key <key-identifier>
key-string <password>
!
interface <interface>
ip authentication mode eigrp <as-number> md5
ip authentication key-chain eigrp <as-number> <key-name>
!
以下是RIPv2的MD5路由器身份驗證配置示例。RIPv1不支援身份驗證。
!
key chain <key-name>
key <key-identifier>
key-string <password>
!
interface <interface>
ip rip authentication mode md5
ip rip authentication key-chain <key-name>
!
以下是使用MD5進行OSPF路由器身份驗證的示例配置。OSPF不使用金鑰鏈。
!
interface <interface>
ip ospf message-digest-key <key-id> md5 <password>
!
router ospf <process-id>
network 10.0.0.0 0.255.255.255 area 0
area 0 authentication message-digest
!
有關詳細資訊,請參閱配置OSPF。
可以使用有助於對路由資訊的通告進行控制的passive-interface
命令來防範資訊洩漏或IGP中引入偽造的資訊。建議不要將任何資訊通告給您的管理控制之外的網路。
此範例示範此功能的使用:
!
router eigrp <as-number>
passive-interface default
no passive-interface <interface>
!
要減少在網路上引入錯誤路由資訊的可能性,請使用路由過濾。與passive-interface
路由器配置命令不同,一旦啟用路由過濾,路由將在介面上發生,但被通告或處理的資訊將受到限制。
對於EIGRP和RIP,使用distribute-list
命令及out
關鍵字可限制通告的資訊,而使用in
關鍵字可限制處理的更新。distribute-list
命令可用於OSPF,但它並不能禁止路由器傳播已過濾的路由。可以改用area filter-list
命令。
本EIGRP示例使用distribute-list
命令和字首清單過濾出站通告:
!
ip prefix-list <list-name> seq 10 permit <prefix>
!
router eigrp <as-number>
passive-interface default
no passive-interface <interface>
distribute-list prefix <list-name> out <interface>
!
本EIGRP示例使用字首清單過濾入站更新:
!
ip prefix-list <list-name> seq 10 permit <prefix>
!
router eigrp <as-number>
passive-interface default
no passive-interface <interface>
distribute-list prefix <list-name> in <interface>
!
本OSPF示例使用字首清單和特定於OSPF的 area filter-list
command:
!
ip prefix-list <list-name> seq 10 permit <prefix>
!
router ospf <process-id>
area <area-id> filter-list prefix <list-name> in
!
路由協定字首由路由器儲存在記憶體中,並且資源消耗會隨著路由器必須保留的附加字首而增加。要防止資源耗盡,請配置路由協定以限制資源消耗。如果使用Link State Database Overload Protection(鏈路狀態資料庫超載保護)功能,OSPF中可能會出現這種情況。
此示例演示了OSPF鏈路狀態資料庫超載保護功能的配置:
!
router ospf <process-id>
max-lsa <maximum-number>
!
第一跳冗餘協定(FHRP)為充當預設網關的裝置提供恢復能力和冗餘。這種情況和這些協定在這樣的環境中很常見:一對第3層裝置為包含伺服器或工作站的網路段或VLAN集提供預設網關功能。
閘道負載平衡通訊協定(GLBP)、熱待命路由器通訊協定(HSRP)和虛擬路由器備援通訊協定(VRRP)都是FHRP。預設情況下,這些協定與未經身份驗證的通訊通訊。此類通訊可使攻擊者偽裝成符合FHRP標準的裝置,從而承擔網路上的預設網關角色。此接管操作允許攻擊者執行中間人攻擊並攔截所有離開網路的使用者流量。
為了防止此類攻擊,Cisco IOS軟體支援的所有FHRP都包括使用MD5或文本字串的身份驗證功能。由於未經身份驗證的FHRP所帶來的威脅,建議這些協定的例項使用MD5身份驗證。此配置示例演示了GLBP、HSRP和VRRP MD5身份驗證的使用:
!
interface FastEthernet 1
description *** GLBP Authentication ***
glbp 1 authentication md5 key-string <glbp-secret>
glbp 1 ip 10.1.1.1
!
interface FastEthernet 2
description *** HSRP Authentication ***
standby 1 authentication md5 key-string <hsrp-secret>
standby 1 ip 10.2.2.1
!
interface FastEthernet 3
description *** VRRP Authentication ***
vrrp 1 authentication md5 key-string <vrrp-secret>
vrrp 1 ip 10.3.3.1
!
儘管資料平面負責將資料從源移動到目的地,但在安全情景中,資料平面是三個平面中最不重要的。因此,當您保護網路裝置時,保護管理和控制平面優先於資料平面非常重要。
但是,在資料平面本身中,有許多功能和配置選項可以幫助保護流量。以下各節詳細介紹功能和選項,以便您可以更輕鬆地保護網路。
絕大部分資料平面流量流經網路,這取決於網路路由配置。但是,IP網路功能可用於更改資料包在網路中的路徑。IP選項(特別是源路由選項)等功能構成了當今網路的安全挑戰。
使用傳輸ACL也有助於強化資料層面。
有關詳細資訊,請參閱使用中轉ACL過濾中轉流量部分。
IP選項存在兩個安全問題。包含IP選項的流量必須由Cisco IOS裝置進行進程交換,這可能導致更高的CPU負載。IP選項還包括更改流量透過網路的路徑的功能,這可能會使其破壞安全控制。
由於這些問題,Cisco IOS軟體版本12.3(4)T、12.0(22)S和12.2(25)S已新增全域組態命令ip options {drop | ignore}
。在第一種形式的命令ip options drop
中,將丟棄思科IOS裝置收到的包含IP選項的所有IP資料包。這可以防止IP選項所啟用的高CPU負載和可能的安全控制被顛覆。
使用此命令的第二種形式(即ip options ignore
),可將Cisco IOS裝置配置為忽略接收的資料包中包含的IP選項。雖然這可以緩解與本地裝置的IP選項相關的威脅,但可能存在IP選項會影響下游裝置。因此,強烈建議使用此命令的drop
形式。如以下組態範例所示:
!
ip options drop
!
某些協定(例如RSVP)會合法使用IP選項。這些通訊協定的功能會受到此命令的影響。
一旦啟用「IP選項選擇性丟棄」,就可以使用show ip traffic EXEC
命令確定由於存在IP選項而被丟棄的資料包的數量。此資訊顯示在強制丟棄計數器中。
IP源路由會同時使用「鬆散源路由」和「記錄路由」選項;或者使用「嚴格源路由」和「記錄路由」選項,使IP資料包源能夠指定資料包採用的網路路徑。此功能可用於嘗試繞開網路上的安全控制路由流量。
如果「IP選項選擇性丟棄」功能尚未完全停用IP選項,則停用IP源路由非常重要。預設情況下,所有Cisco IOS軟體版本中均已啟用IP源路由,該功能可透過no ip source-route
全局配置命令停用。此組態範例說明此命令的使用:
!
no ip source-route
!
ICMP重定向用於通知網路裝置指向IP目標的更好路徑。預設情況下,如果Cisco IOS軟體收到必須透過所接收介面路由的封包,便會傳送重新導向。
在某些情況下,攻擊者可能會導致Cisco IOS裝置傳送許多ICMP重定向消息,從而導致CPU負載增加。因此,建議停用ICMP重定向傳輸。使用介面配置no ip redirects
命令可停用ICMP重定向,如以下示例配置所示:
!
interface FastEthernet 0
no ip redirects
!
IP定向廣播可以將IP廣播資料包傳送到遠端IP子網。資料包到達遠端網路後,轉發IP裝置將資料包作為第2層廣播傳送到子網上的所有站點。這種定向廣播功能已被用作多種攻擊(包括smurf攻擊)中的放大和反射輔助。
預設情況下,當前版本的Cisco IOS軟體會停用此功能;但是,可以透過ip directed-broadcast
介面配置命令來啟用它。預設情況下,12.0之前的Cisco IOS軟體版本已啟用此功能。
如果網路確實需要定向廣播功能,請控制其使用。使用ACL作為ip directed-broadcast
命令的選項可實現此目標。此配置示例將定向廣播限制為源自受信任網路192.168.1.0/24的UDP資料包:
!
access-list 100 permit udp 192.168.1.0 0.0.0.255 any
!
interface FastEthernet 0
ip directed-broadcast 100
!
使用傳輸ACL (tACL)可以控制哪些流量經過網路。這與iACL相反,這些iACL試圖過濾發往網路自身的流量。當目標是過濾到特定裝置組的流量或經過網路的流量時,tACL提供的過濾器是有益的。
傳統上,防火牆執行此過濾器型別。但是,在某些情況下,在網路的Cisco IOS裝置上執行此過濾器可能會有幫助。例如,必須執行過濾,但不存在防火牆。
tACL也是實施靜態反欺騙保護的適當位置。
有關詳細資訊,請參閱反欺騙保護部分。
有關tACL的詳細資訊,請參閱傳輸訪問控制清單:在邊緣進行過濾。
網際網路控制訊息通訊協定(ICMP)是設計為IP的控制通訊協定。因此,它傳達的消息可能會對TCP和IP協定產生重大影響。ICMP由工具ping
和traceroute
用於排除網路故障,並供路徑MTU發現使用。但是,正確的網路操作很少需要外部ICMP連線。
Cisco IOS軟體提供特定功能,可按名稱或型別及程式碼過濾ICMP訊息。此範例ACL允許來自信任網路的ICMP,但會封鎖來自其他來源的所有ICMP封包:
!
ip access-list extended ACL-TRANSIT-IN
!
!--- Permit ICMP packets from trusted networks only
!
permit icmp host <trusted-networks> any
!
!--- Deny all other IP traffic to any network device
!
deny icmp any any
!
如本文檔前面的使用基礎架構ACL限制對網路的訪問部分中的詳細說明,過濾分段的IP資料包可能會對安全裝置提出難題。
由於片段控制的不直觀性質,ACL經常會無意中允許IP片段。分段還經常用於嘗試逃避入侵檢測系統的檢測。因此,IP分段經常用於攻擊,並且可以在任何已配置的tACL的頂部顯式過濾。列出的ACL示例包括完整的IP分段過濾器。此範例中所示的功能必須與先前範例的功能搭配使用:
!
ip access-list extended ACL-TRANSIT-IN
!
!--- Deny IP fragments using protocol-specific ACEs to aid in
!--- classification of attack traffic
!
deny tcp any any fragments
deny udp any any fragments
deny icmp any any fragments
deny ip any any fragments
!
有關ACL如何處理分段IP資料包的詳細資訊,請參閱訪問控制清單和IP分段。
在Cisco IOS軟體版本12.3(4)T和更新版本中,Cisco IOS軟體支援使用ACL根據封包中包含的IP選項來過濾IP封包。資料包中存在IP選項可能表示試圖破壞網路的安全控制或者更改資料包的傳輸特性。因此,建議在網路邊緣過濾具有IP選項的資料包。
使用本示例以及前面示例中的內容來包括包含IP選項的IP資料包的完整過濾器:
!
ip access-list extended ACL-TRANSIT-IN
!
!--- Deny IP packets containing IP options
!
deny ip any any option any-options
!
許多攻擊使用源IP地址欺騙來達到有效目的,或者隱藏攻擊的真正來源並阻止準確回溯。Cisco IOS軟體提供單點傳播RPF和IP來源防護(IPSG),以阻擋依賴來源IP位址詐騙的攻擊。此外,ACL和空路由通常作為防止欺騙的手動方法部署。
IPSG的工作原理是透過交換機埠、MAC地址和源地址驗證的效能,最大限度地減少直接管理控制下的網路欺騙。單播RPF提供源網路驗證,並且可以減少來自不在直接管理控制下的網路的欺騙攻擊。埠安全可用於驗證接入層的MAC地址。動態地址解析協定(ARP)檢測(DAI)緩解了在本地網段上使用ARP毒化的攻擊媒介。
單播RPF使裝置能夠檢驗轉發資料包的源地址是否可透過接收該資料包的介面到達。不要依賴單播RPF作為防止欺騙的唯一保護。如果存在通向源IP地址的適當返迴路由,則偽造的資料包可以透過啟用單播RPF的介面進入網路。單播RPF依賴於您在每台裝置上啟用思科快速轉發,並且基於每個介面進行配置。
單播RPF可以配置為兩種模式之一:鬆散或嚴格。在存在非對稱路由的情況下,首選鬆散模式,因為已知嚴格模式在這些情況下會丟棄資料包。在配置ip verify
介面配置命令期間,關鍵字any
用於配置鬆散模式,而關鍵字rx用於配置嚴格模式。
此範例說明此功能的設定:
!
ip cef
!
interface <interface>
ip verify unicast source reachable-via <mode>
!
有關配置和使用單播RPF的詳細資訊,請參閱瞭解單播反向路徑轉發。
IP源防護是一種有效的防止欺騙手段,如果您可以控制第2層介面,就可以使用該方法。IP源防護使用DHCP監聽的資訊在第2層介面上動態配置埠訪問控制清單(PACL),拒絕來自IP源繫結表中沒有關聯的IP地址的任何流量。
IP源防護可應用於屬於啟用DHCP監聽的VLAN的第2層介面。這些命令啟用DHCP監聽:
!
ip dhcp snooping
ip dhcp snooping vlan <vlan-range>
!
啟用DHCP監聽後,以下命令將啟用IPSG:
!
interface <interface-id>
ip verify source
!
埠安全可以透過Tip verify source port security
介面配置命令來啟用。這還需要使用全局配置命令ip dhcp snooping information option;
,此外,DHCP伺服器必須支援DHCP選項82。
有關此功能的詳細資訊,請參閱配置DHCP功能和IP源防護。
埠安全用於緩解接入介面上的MAC地址欺騙。埠安全可以使用動態獲取的(粘滯)MAC地址來簡化初始配置。一旦連線埠資安判斷出MAC違規,就可以使用四種違規模式之一。這些模式包括:保護、限制、關閉和關閉VLAN。在埠僅使用標準協定為單個工作站提供訪問的情況下,最多可以有一個足夠的數量。當最大數量設定為1時,利用虛擬MAC地址(例如HSRP)的協定不起作用。
!
interface <interface>
switchport
switchport mode access
switchport port-security
switchport port-security mac-address sticky
switchport port-security maximum <number>
switchport port-security violation <violation-mode>
!
有關埠安全配置的詳細資訊,請參閱配置埠安全。
動態ARP檢測(DAI)可用於緩解對本地網段的ARP中毒攻擊。ARP中毒攻擊是指攻擊者將偽造的ARP資訊傳送到本地網段的一種方法。此資訊用於損壞其他裝置的ARP快取。攻擊者通常使用ARP中毒來執行中間人攻擊。
DAI攔截並驗證不受信任埠上所有ARP資料包的IP到MAC地址關係。在DHCP環境中,DAI使用DHCP監聽功能生成的資料。在受信任介面上接收的ARP資料包未經驗證,並且丟棄不受信任介面上的無效資料包。在非DHCP環境中,需要使用ARP ACL。
這些命令啟用DHCP監聽:
!
ip dhcp snooping
ip dhcp snooping vlan <vlan-range>
!
啟用DHCP監聽後,以下命令將啟用DAI:
!
ip arp inspection vlan <vlan-range>
!
在非DHCP環境中,需要ARP ACL才能啟用DAI。此示例演示使用ARP ACL的DAI的基本配置:
!
arp access-list <acl-name>
permit ip host <sender-ip> mac host <sender-mac>
!
ip arp inspection filter <arp-acl-name> vlan <vlan-range>
!
DAI也可以在任何受支援的介面上啟用。
ip arp inspection limit rate <rate_value> burst interval <interval_value>
有關如何配置DAI的詳細資訊,請參閱配置動態ARP檢查。
手動配置的ACL可以提供靜態防欺騙保護,防止使用已知未使用和不可信地址空間的攻擊。通常,這些反欺騙ACL會作為較大ACL的一個元件應用於網路邊界處的入口流量。反欺騙ACL需要定期監控間隔,因為它們可能會頻繁更改。如果應用出站ACL將流量限制到有效的本地地址,則可以從本地網路發起的流量中最小化欺騙。
此示例演示如何使用ACL限制IP欺騙。此ACL應用於所需介面的入站流量。組成此ACL的ACE並不全面。如果配置這些ACL型別,請查詢具有結論性的最新參考。
!
ip access-list extended ACL-ANTISPOOF-IN
deny ip 10.0.0.0 0.255.255.255 any
deny ip 192.168.0.0 0.0.255.255 any
!
interface <interface>
ip access-group ACL-ANTISPOOF-IN in
!
有關如何配置訪問控制清單的詳細資訊,請參閱配置常用的IP ACL。
未分配Internet地址的官方清單由Team Cymru維護。有關如何過濾未使用的地址的其他資訊可以在Bogon參考頁上找到。
路由器和交換機的主要用途是透過裝置將資料包和幀轉發到最終目的地。這些資料包傳輸網路中部署的裝置,可能會影響裝置的CPU操作。保護資料平面(包括傳輸網路裝置的流量),以確保管理和控制平面的運行。如果中轉流量會導致裝置處理交換機流量,則裝置的控制平面可能會受到影響,從而導致運行中斷。
雖然並非詳盡無遺,但此清單包括需要特殊CPU處理且由CPU進行進程交換的資料平面流量型別:
有關資料層面強化的詳細資訊,請參閱一般資料層面強化部分。
您可以使用Cisco IOS軟體版本12.4(2)T中引入的擴充IP存取清單中「對按TTL值過濾的ACL支援」功能,根據TTL值過濾封包。此功能可保護接收中轉流量的裝置,其中TTL值為0或1。基於TTL值的資料包過濾器還可以用於確保TTL值不小於網路的直徑,這樣可以保護下游基礎設施裝置的控制平面免受TTL到期攻擊。
某些應用程式和工具,例如traceroute
,將TTL到期資料包用於測試和診斷目的。某些通訊協定(例如IGMP)會合法使用1的TTL值。
此ACL示例建立了一個策略,用於過濾TTL值小於6的IP資料包。
!
!--- Create ACL policy that filters IP packets with a TTL value
!--- less than 6
!
ip access-list extended ACL-TRANSIT-IN
deny ip any any ttl lt 6
permit ip any any
!
!--- Apply access-list to interface in the ingress direction
!
interface GigabitEthernet 0/0
ip access-group ACL-TRANSIT-IN in
!
有關如何根據TTL值過濾資料包的詳細資訊,請參閱辨識和防範TTL到期攻擊。
有關此功能的詳細資訊,請參閱對按TTL值過濾的ACL支援。
在Cisco IOS軟體版本12.4(4)T和更新版本中,彈性封包比對(FPM)允許管理員在封包的任意位元上進行比對。此FPM策略丟棄TTL值小於6的資料包。
!
load protocol flash:ip.phdf
!
class-map type access-control match-all FPM-TTL-LT-6-CLASS
match field IP ttl lt 6
!
policy-map type access-control FPM-TTL-LT-6-DROP-POLICY
class FPM-TTL-LT-6-CLASS
drop
!
interface FastEthernet0
service-policy type access-control input FPM-TTL-LT-6-DROP-POLICY
!
在Cisco IOS軟體版本12.3(4)T和更新版本中,您可以使用命名擴充IP存取清單中之「過濾IP選項的ACL支援」功能,以過濾具有IP選項的IP封包。基於IP選項的IP資料包過濾也可用於防止基礎設施裝置的控制平面需要在CPU級別處理這些資料包。
對過濾IP選項的ACL支援功能只能用於命名擴展ACL。如果丟棄了這些協定的資料包,RSVP、多協定標籤交換流量工程、IGMP版本2和3以及使用IP選項資料包的其他協定將無法正常運行。如果這些協定在網路上使用,則可以使用ACL對過濾IP選項的支援。但是,「ACL IP選項選擇性丟棄」功能可以丟棄此流量,並且這些協定無法正常運行。如果沒有使用需要IP選項的協定,則首選使用ACL IP選項選擇性丟棄來丟棄這些資料包。
此ACL示例建立過濾包含任何IP選項的IP資料包的策略:
!
ip access-list extended ACL-TRANSIT-IN
deny ip any any option any-options
permit ip any any
!
interface GigabitEthernet 0/0
ip access-group ACL-TRANSIT-IN in
!
此示例ACL演示了一個策略,該策略使用五個特定IP選項過濾IP資料包。包含這些選項的資料包將被拒絕:
!
ip access-list extended ACL-TRANSIT-IN
deny ip any any option eool
deny ip any any option record-route
deny ip any any option timestamp
deny ip any any option lsr
deny ip any any option ssr
permit ip any any
!
interface GigabitEthernet 0/0
ip access-group ACL-TRANSIT-IN in
!
有關「ACL IP選項選擇性丟棄」的詳細資訊,請參閱本文檔的一般資料層面強化部分。
有關如何過濾中轉和邊緣流量的詳細資訊,請參閱中轉訪問控制清單:在邊緣進行過濾。
Cisco IOS軟體中的另一個可用來透過IP選項篩選封包的功能是CoPP。在Cisco IOS軟體版本12.3(4)T和更新版本中,CoPP允許管理員過濾控制平面封包的流量。支援Cisco IOS軟體版本12.3(4)T中引入的過濾IP選項的CoPP和ACL支援的裝置可以使用訪問清單策略過濾包含IP選項的資料包。
如果存在任何IP選項,此CoPP策略將丟棄裝置收到的中轉資料包:
!
ip access-list extended ACL-IP-OPTIONS-ANY
permit ip any any option any-options
!
class-map ACL-IP-OPTIONS-CLASS
match access-group name ACL-IP-OPTIONS-ANY
!
policy-map COPP-POLICY
class ACL-IP-OPTIONS-CLASS
drop
!
control-plane
service-policy input COPP-POLICY
!
存在以下IP選項時,此CoPP策略丟棄裝置接收的中轉資料包:
!
ip access-list extended ACL-IP-OPTIONS
permit ip any any option eool
permit ip any any option record-route
permit ip any any option timestamp
permit ip any any option lsr
permit ip any any option ssr
!
class-map ACL-IP-OPTIONS-CLASS
match access-group name ACL-IP-OPTIONS
!
policy-map COPP-POLICY
class ACL-IP-OPTIONS-CLASS
drop
!
control-plane
service-policy input COPP-POLICY
!
在以前的CoPP策略中,將資料包與permit操作進行匹配的訪問控制清單條目(ACE)導致這些資料包被policy-map drop函式丟棄,而與deny操作(未顯示)匹配的資料包,則不會受到policy-map drop函式的影響。
在Cisco IOS軟體版本12.4(4)T和更新版本中,控制層面保護(CPPr)可用於依照Cisco IOS裝置的CPU限制或管制控制層面流量。與CoPP類似,CPPr可以限制或管制比CoPP更精細的流量。CPPr將聚合控制平面劃分為三個單獨的控制平面類別,稱為子介面:存在主機、中轉和CEF-Exception子介面。
此CPPr策略丟棄TTL值小於6的裝置接收的中轉資料包,以及TTL值為零或1的裝置接收的中轉或非中轉資料包。CPPr策略還會丟棄裝置接收到具有選定IP選項的資料包。
!
ip access-list extended ACL-IP-TTL-0/1
permit ip any any ttl eq 0 1
!
class-map ACL-IP-TTL-0/1-CLASS
match access-group name ACL-IP-TTL-0/1
!
ip access-list extended ACL-IP-TTL-LOW
permit ip any any ttl lt 6
!
class-map ACL-IP-TTL-LOW-CLASS
match access-group name ACL-IP-TTL-LOW
!
ip access-list extended ACL-IP-OPTIONS
permit ip any any option eool
permit ip any any option record-route
permit ip any any option timestamp
permit ip any any option lsr
permit ip any any option ssr
!
class-map ACL-IP-OPTIONS-CLASS
match access-group name ACL-IP-OPTIONS
!
policy-map CPPR-CEF-EXCEPTION-POLICY
class ACL-IP-TTL-0/1-CLASS
drop
class ACL-IP-OPTIONS-CLASS
drop
!
!-- Apply CPPr CEF-Exception policy CPPR-CEF-EXCEPTION-POLICY to
!-- the CEF-Exception CPPr sub-interface of the device
!
control-plane cef-exception
service-policy input CPPR-CEF-EXCEPTION-POLICY
!
policy-map CPPR-TRANSIT-POLICY
class ACL-IP-TTL-LOW-CLASS
drop
!
control-plane transit
service-policy input CPPR-TRANSIT-POLICY
!
在以前的CPPr策略中,將資料包與permit action結果進行匹配的訪問控制清單條目是,這些資料包被policy-map drop函式丟棄,而與deny操作(未顯示)匹配的資料包,則不受policy-map drop函式的影響。
有關CPPr功能的詳細資訊,請參閱瞭解控制層面保護和控制層面保護。
有時,您可能需要快速辨識和回溯網路流量,尤其是在事件響應或網路效能不佳期間。NetFlow和分類ACL是使用Cisco IOS軟體實現此目標的兩種主要方法。NetFlow可提供對網路上所有流量的可視性。此外,NetFlow可以透過收集器實施,這些收集器可以提供長期趨勢和自動化分析。分類ACL是ACL的一個元件,需要預先規劃以辨識特定流量並在分析期間進行手動干預。以下各節提供每個功能的簡要概述。
NetFlow透過跟蹤網路流量來辨識異常且與安全相關的網路活動。NetFlow資料可以透過CLI進行檢視和分析,或者可以導出到商業或免費的NetFlow收集器進行聚合和分析。NetFlow收集器可透過長期趨勢提供網路行為和使用分析。NetFlow對IP資料包中的特定屬性進行分析,並建立流。版本5是最常用的NetFlow版本;但是,版本9更具擴展性。NetFlow流可以在高流量環境中使用取樣流量資料建立。
CEF或分散式CEF是啟用NetFlow的先決條件。可以在路由器和交換機上配置NetFlow。
此示例說明NetFlow的基本配置。在Cisco IOS軟體的早期版本中,用於在介面上啟用NetFlow的命令是ip route-cache flow
,而不是 ip flow {ingress | egress}.
!
ip flow-export destination <ip-address> <udp-port>
ip flow-export version <version>
!
interface <interface>
ip flow <ingess|egress>
!
下面是CLI的NetFlow輸出示例。SrcIf屬性有助於回溯。
router#show ip cache flow
IP packet size distribution (26662860 total packets):
1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480
.741 .124 .047 .006 .005 .005 .002 .008 .000 .000 .003 .000 .001 .000 .000
512 544 576 1024 1536 2048 2560 3072 3584 4096 4608
.000 .000 .001 .007 .039 .000 .000 .000 .000 .000 .000
IP Flow Switching Cache, 4456704 bytes
55 active, 65481 inactive, 1014683 added
41000680 ager polls, 0 flow alloc failures
Active flows timeout in 2 minutes
Inactive flows timeout in 60 seconds
IP Sub Flow Cache, 336520 bytes
110 active, 16274 inactive, 2029366 added, 1014683 added to flow
0 alloc failures, 0 force free
1 chunk, 15 chunks added
last clearing of statistics never
Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec)
-------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow
TCP-Telnet 11512 0.0 15 42 0.2 33.8 44.8
TCP-FTP 5606 0.0 3 45 0.0 59.5 47.1
TCP-FTPD 1075 0.0 13 52 0.0 1.2 61.1
TCP-WWW 77155 0.0 11 530 1.0 13.9 31.5
TCP-SMTP 8913 0.0 2 43 0.0 74.2 44.4
TCP-X 351 0.0 2 40 0.0 0.0 60.8
TCP-BGP 114 0.0 1 40 0.0 0.0 62.4
TCP-NNTP 120 0.0 1 42 0.0 0.7 61.4
TCP-other 556070 0.6 8 318 6.0 8.2 38.3
UDP-DNS 130909 0.1 2 55 0.3 24.0 53.1
UDP-NTP 116213 0.1 1 75 0.1 5.0 58.6
UDP-TFTP 169 0.0 3 51 0.0 15.3 64.2
UDP-Frag 1 0.0 1 1405 0.0 0.0 86.8
UDP-other 86247 0.1 226 29 24.0 31.4 54.3
ICMP 19989 0.0 37 33 0.9 26.0 53.9
IP-other 193 0.0 1 22 0.0 3.0 78.2
Total: 1014637 1.2 26 99 32.8 13.8 43.9
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts
Gi0/1 192.168.128.21 Local 192.168.128.20 11 CB2B 07AF 3
Gi0/1 192.168.150.60 Gi0/0 10.89.17.146 06 0016 101F 55
Gi0/0 10.89.17.146 Gi0/1 192.168.150.60 06 101F 0016 9
Gi0/1 192.168.150.60 Local 192.168.206.20 01 0000 0303 11
Gi0/0 10.89.17.146 Gi0/1 192.168.150.60 06 07F1 0016 1
有關NetFlow功能的詳細資訊,請參閱Cisco IOS NetFlow。
有關NetFlow的技術概述,請參閱Cisco IOS NetFlow簡介-技術概述。
分類ACL提供對穿越介面的流量的可視性。分類ACL不會改變網路的安全策略,其構建通常是為了對各個協定、源地址或目標進行分類。例如,允許所有流量的ACE可以分成特定的協定或埠。這種對特定ACE中的流量進行更精細的分類有助於提供網路流量的可視性,因為每個流量類別都有自己的命中計數器。管理員還可以將ACL末尾的隱式deny分隔為精細ACE,以幫助辨識被拒絕的流量型別。
管理員可以透過show access-list
和clear ip access-list counters
執行命令使用分類ACL來加速事件響應。
此示例顯示分類ACL的配置,該分類acl用於在預設拒絕之前辨識SMB流量:
!
ip access-list extended ACL-SMB-CLASSIFY
remark Existing contents of ACL
remark Classification of SMB specific TCP traffic
deny tcp any any eq 139
deny tcp any any eq 445
deny ip any any
!
要辨識使用分類ACL的資料流,可以使用show access-list EXEC
命令。ACL計數器可以透過clear ip access-list counters EXEC
命令清除。
router#show access-list ACL-SMB-CLASSIFY
Extended IP access list ACL-SMB-CLASSIFY
10 deny tcp any any eq 139 (10 matches)
20 deny tcp any any eq 445 (9 matches)
30 deny ip any any (184 matches)
有關如何在ACL中啟用日誌功能的詳細資訊,請參閱瞭解訪問控制清單日誌記錄。
VLAN訪問控制清單(VACL)或VLAN對映和埠ACL (PACL)提供在比應用於路由介面的訪問控制清單更接近終端裝置的非路由流量上實施訪問控制的功能。
這些部分概述了VACL和PACL的特點、優勢和潛在的使用場景。
VACL或VLAN對映應用於進入VLAN的所有資料包,提供對VLAN內流量實施訪問控制的功能。路由介面上的ACL無法實現此功能。例如,可以使用VLAN對映來阻止同一個VLAN中包含的主機相互通訊,這減少了本地攻擊者或蠕蟲攻擊同一網段上主機的機會。要拒絕資料包使用VLAN對映,請建立匹配流量的訪問控制清單(ACL),並在VLAN對映中將操作設定為drop。一旦配置了VLAN對映,所有進入LAN的資料包都將根據配置的VLAN對映進行順序評估。VLAN訪問對映支援IPv4和MAC訪問清單;但是,它們不支援日誌或IPv6 ACL。
此範例使用說明此功能組態的延伸命名存取清單:
!
ip access-list extended <acl-name>
permit <protocol> <source-address> <source-port> <destination-address>
<destination-port>
!
vlan access-map <name> <number>
match ip address <acl-name>
action <drop|forward>
!
此示例演示如何使用VLAN對映拒絕TCP埠139和445,以及vines-ip協定:
!
ip access-list extended VACL-MATCH-ANY
permit ip any any
!
ip access-list extended VACL-MATCH-PORTS
permit tcp 192.168.1.0 0.0.0.255 192.168.1.0 0.0.0.255 eq 445
permit tcp 192.168.1.0 0.0.0.255 192.168.1.0 0.0.0.255 eq 139
!
mac access-list extended VACL-MATCH-VINES
permit any any vines-ip
!
vlan access-map VACL 10
match ip address VACL-MATCH-VINES
action drop
!
vlan access-map VACL 20
match ip address VACL-MATCH-PORTS
action drop
!
vlan access-map VACL 30
match ip address VACL-MATCH-ANY
action forward
!
vlan filter VACL vlan 100
!
有關配置VLAN對映的詳細資訊,請參閱使用ACL配置網路安全。
PACL只能應用於交換機第2層物理介面的入站方向。與VLAN對映類似,PACL對非路由流量或第2層流量提供訪問控制。建立PACL的語法高於VLAN對映和路由器ACL,與路由器ACL的語法相同。如果ACL應用於第2層介面,則稱為PACL。配置包括建立IPv4、IPv6或MAC ACL並將其應用到第2層介面。
此範例使用延伸命名存取清單來說明此功能的組態:
!
ip access-list extended <acl-name>
permit <protocol> <source-address> <source-port> <destination-address>
<destination-port>
!
interface <type> <slot/port>
switchport mode access
switchport access vlan <vlan_number>
ip access-group <acl-name> in
!
有關配置PACL的詳細資訊,請參閱使用ACL配置網路安全的「埠ACL」部分。
在介面配置模式下使用以下命令,可以在IP網路上應用MAC訪問控制清單或擴展清單:
Cat6K-IOS(config-if)#mac packet-classify
注意:MAC訪問控制清單將第3層資料包分類為第2層資料包。Cisco IOS軟體版本12.2(18)SXD(適用於Sup 720)和Cisco IOS軟體版本12.2(33)SRA或更新版本支援此命令。
此介面命令必須應用於輸入介面,並指示轉發引擎不檢查IP報頭。因此,您可以在IP環境中使用MAC存取清單。
專用VLAN (PVLAN)是限制VLAN上工作站或伺服器之間連線的第2層安全功能。沒有PVLAN,第2層VLAN上的所有裝置都可以自由通訊。存在由於單個VLAN上的裝置之間的通訊限制而有助於安全性的網路情況。例如,PVLAN通常用於禁止公共可訪問子網上的伺服器之間的通訊。如果一台伺服器受損,由於PVLAN的應用導致無法連線到其他伺服器,這有助於限制對一台伺服器的危害。
專用VLAN有三種型別:隔離VLAN、社群VLAN和主VLAN。PVLAN配置使用主要和輔助VLAN。主要VLAN包含所有混雜埠(後面將會介紹),並且包含一個或多個輔助VLAN,這些輔助VLAN可以是隔離的VLAN或社群VLAN。
將輔助VLAN配置為隔離VLAN會完全阻止輔助VLAN上的裝置之間的通訊。每個主VLAN只能有一個隔離VLAN,並且只有混合埠可以與隔離VLAN上的埠通訊。隔離VLAN可用於不受信任的網路(如支援訪客的網路)。
此配置示例將VLAN 11配置為隔離VLAN,並將其與主VLAN VLAN 20關聯。此示例還將介面FastEthernet 1/1配置為VLAN 11上的隔離埠:
!
vlan 11
private-vlan isolated
!
vlan 20
private-vlan primary
private-vlan association 11
!
interface FastEthernet 1/1
description *** Port in Isolated VLAN ***
switchport mode private-vlan host
switchport private-vlan host-association 20 11
!
配置為社群VLAN的輔助VLAN允許該VLAN的成員之間進行通訊,並且允許與主VLAN上的任意混雜埠通訊。但是,任何兩個社群VLAN之間或社群VLAN與隔離VLAN之間無法通訊。社群VLAN必須用於將需要彼此連線的伺服器分組,但不需要連線到VLAN上所有其他裝置的伺服器。這種情況常見於可公開訪問的網路或伺服器向不可信客戶端提供內容的任何位置。
此示例配置單個社群VLAN並將交換機埠FastEthernet 1/2配置為該VLAN的成員。社群VLAN 12是主VLAN 20的輔助VLAN。
!
vlan 12
private-vlan community
!
vlan 20
private-vlan primary
private-vlan association 12
!
interface FastEthernet 1/2
description *** Port in Community VLAN ***
switchport mode private-vlan host
switchport private-vlan host-association 20 12
!
放置在主VLAN中的交換機埠稱為混合埠。混雜埠可以與主VLAN和輔助VLAN上的所有其它埠通訊。路由器或防火牆介面是這些VLAN中最常見的裝置。
此組態範例結合了先前的隔離和社群VLAN範例,並將介面FastEthernet 1/12的組態新增為混合連線埠:
!
vlan 11
private-vlan isolated
!
vlan 12
private-vlan community
!
vlan 20
private-vlan primary
private-vlan association 11-12
!
interface FastEthernet 1/1
description *** Port in Isolated VLAN ***
switchport mode private-vlan host
switchport private-vlan host-association 20 11
!
interface FastEthernet 1/2
description *** Port in Community VLAN ***
switchport mode private-vlan host
switchport private-vlan host-association 20 12
!
interface FastEthernet 1/12
description *** Promiscuous Port ***
switchport mode private-vlan promiscuous
switchport private-vlan mapping 20 add 11-12
!
實施PVLAN時,確保現有的第3層配置支援PVLAN施加的限制並且不允許顛覆PVLAN配置非常重要。具有路由器ACL或防火牆的第3層過濾器可以防止PVLAN配置被破壞。
有關使用和配置專用VLAN的詳細資訊,請參閱位於LAN安全首頁上的專用VLAN (PVLAN) -混雜、隔離、社群。
本文檔概述了可用於保護Cisco IOS系統裝置的方法。如果保護裝置,就會提高所管理網路的整體安全性。在本概述中,將討論管理、控制和資料層面的保護,並提供配置建議。在可能的情況下,為每個相關特徵的配置提供了足夠的細節。但是,在所有情況下,系統都會提供全面的參考資料,為您提供進一步評估所需的資訊。
本文檔中的一些功能說明由思科資訊開發團隊編寫。
本核對表是本指南中介紹的用於強化裝置的所有步驟的集合。管理員可以使用它來提醒您對Cisco IOS裝置使用的所有強化功能,即使該功能因不適用而未實施也是如此。建議管理員在實施每個選項之前評估每個選項的潛在風險。
修訂 | 發佈日期 | 意見 |
---|---|---|
2.0 |
12-Sep-2024 |
全面更新CCW警報,包括介紹、機器翻譯、樣式要求和幾十個更新連結。 |
1.0 |
10-Dec-2001 |
初始版本 |