本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹如何保護您的Cisco IOS®系統裝置,以及如何提高網路的整體安全性。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
當您保護Cisco IOS系統裝置時,網路的整體安全性會提高。
網路的整體安全性圍繞三個平面來構建,網路裝置的功能可分為三個平面。網路的三個功能平面是:管理平面、控制平面和資料平面,每個平面提供需要保護的不同功能。本文檔概述了每個包含的功能和相關的文檔參考。
本文包含的安全功能通常會提供足夠詳細的資訊,以便您配置所述的功能。但是,如果沒有詳細資訊,則以某種方式解釋該功能,以便可以評估是否需要對該功能給予額外注意。在可能和適當的情況下,本文檔包含一些建議,這些建議在實施後將有助於確保網路的安全。
安全網路操作是一個重要的主題。雖然本文的大部分內容都專門討論Cisco IOS裝置的安全配置,但僅靠配置並不能完全確保網路的安全。在網路上使用的操作過程對安全性的貢獻不亞於對底層裝置的配置。
這些主題包含建議您實施的操作建議。這些主題重點介紹網路運營的特定關鍵領域,並不全面。
思科產品安全事件響應團隊(PSIRT)針對思科產品中的安全相關問題,建立並維護出版物,通常稱為PSIRT諮詢。用於不太嚴重問題的通訊方法是思科安全響應。思科資安諮詢提供資安諮詢。
有關這些通訊工具的其他資訊,請參閱思科安全漏洞策略。
要維護安全的網路,請注意已發佈的思科安全建議和響應。您需要先瞭解漏洞,然後才能評估漏洞對網路造成的威脅。請參閱安全漏洞通知的風險分類,以獲得此評估流程中的幫助。
身份驗證、授權和記帳(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
法是簡單的Vigen re密碼。此演算法的設計目的不是保護配置檔案免遭即使是稍有經驗的攻擊者進行嚴重分析,因此不能用於此目的。任何包含加密密碼的Cisco IOS配置檔案都必須謹慎對待,如同處理這些相同密碼的明文清單一樣。
enable secret
雖然此弱加密演算法不由命令使用,但全域性配置命令以及線路配置命令都使password
用它enable password
。必須消除此類密碼,並且需enable secret
要使用命令或增強型密碼安全功能。
命令enable secret
和增強型密碼安全功能使用消息摘要5(MD5)進行密碼雜湊。這種演算法已經得到了廣泛的公眾評價,而且目前還不知道是可逆的。但是,該演算法容易受到字典攻擊。在字典攻擊中,攻擊者會嘗試字典或其他候選密碼清單中的每個詞來查詢匹配項。因此,配置檔案必須安全儲存,且只能與受信任的個人共用。
Cisco IOS軟體版本12.2(8)T中引入的增強型密碼安全功能允許管理員為命令設定MD5密碼雜湊username
。在此功能之前,有兩種型別的密碼:輸入0(明文密碼)和輸入7(使用Vigen重新加密演算法)。增強型密碼安全功能不能用於要求可檢索明文密碼的協定,如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軟體提供密碼復原程式,該程式依賴於對ROM監控模式(ROMMON)的訪問,該模式在系統啟動期間使用Break鍵。在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
發出and全域性配置命令來禁用它們。
如果不使用,則必須禁用的其他服務包括:
no ip finger
global configuration命令以禁用Finger服務。預設情況下,12.1(5)和12.1(5)T以後的Cisco IOS軟體版本會停用此服務。
no ip bootp server
global configuration命令以禁用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-keepalive-in和service tcp-keepalive-out全域性配置命令使裝置能夠為TCP會話傳送TCP keepalive。使用此配置可以在裝置的入站連線和裝置的出站連線上啟用TCP keepalive。這可確保連線遠端端的裝置仍然可訪問,並且從本地Cisco IOS裝置中刪除半開放或孤立的連線。
!
service tcp-keepalives-in
service tcp-keepalives-out
!
裝置的管理平面在物理或邏輯管理介面上被帶內訪問或帶外訪問。理想情況下,每個網路裝置都有帶內和帶外管理訪問,因此可以在網路中斷期間訪問管理平面。
用於裝置帶內訪問的最常見介面之一是邏輯環回介面。環回介面始終處於開啟狀態,而物理介面可以更改狀態,並且介面可能不可訪問。建議為每個裝置新增一個環回介面作為管理介面,並且只用於管理平面。這允許管理員在整個網路中為管理平面應用策略。一旦在裝置上配置了環回介面,管理平面協定(如SSH、SNMP和系統日誌)就可以使用環回介面來傳送和接收流量。
!
interface Loopback0
ip address 192.168.1.1 255.255.255.0
!
Cisco IOS軟體版本12.3(4)T新增的記憶體臨界通知功能可協助您減輕裝置上的低記憶體狀況。此功能使用兩種方法完成此操作:記憶體閾值通知和記憶體保留。
「記憶體閾值通知」會生成一條日誌消息,指示裝置上的可用記憶體已低於配置的閾值。此配置示例說明如何使用memory free low-watermark全域性配置命令啟用此功能。這使得裝置在可用空閒記憶體低於指定閾值時生成通知,在可用空閒記憶體高於指定閾值達到5%時再次生成通知。
!
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)功能的安全最佳實踐取決於在特定使用者環境中如何使用該功能。思科區分這些使用案例:
以下各節詳細描述了每個場景:
附註:vstack命令是在Cisco IOS版本12.2(55)SE03中匯入。
以下是已停用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層部分上評估非初始片段。
在此範例組態中,如果連線埠22上目的地為192.168.1.1的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
!
請參閱存取控制清單和IP片段,以取得更多有關ACL如何處理分段的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新增了ACL支援根據生存時間(TTL)值篩選IP封包。當資料包從源流向目標時,每台網路裝置都會減少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將控制平面劃分為單獨的控制平面類別,稱為子介面。存在三個控制平面子介面:主機、傳輸和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)和HTTPS,後者使用安全套接字層(SSL)和傳輸層安全(TLS)進行身份驗證和資料加密。SSHv1和SSHv2不相容。SSHv1並不安全,也不標準化,因此如果選擇SSHv2,則不建議使用SSHv1。
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(SSH)的路由器和交換機上配置Secure Shell。
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的詳細資訊,請參閱安全Shell版本2支援。
Cisco IOS SSHv2支援鍵盤互動和基於密碼的身份驗證方法。針對RSA金鑰的SSHv2增強功能還支援對客戶端和伺服器進行基於RSA的公鑰身份驗證。
對於使用者身份驗證,基於RSA的使用者身份驗證使用與每個使用者關聯的私鑰/公鑰對進行身份驗證。使用者必須在客戶端生成私鑰/公鑰對,並在Cisco IOS SSH伺服器上配置公鑰以完成身份驗證。
嘗試建立憑證的SSH使用者使用私鑰提供加密簽名。加密的簽名和使用者公鑰將傳送到SSH伺服器進行身份驗證。SSH伺服器通過使用者提供的公鑰計算雜湊。雜湊用於確定伺服器是否有匹配的條目。如果找到匹配項,則使用公鑰執行基於RSA的消息驗證。因此,系統會根據加密的簽名對使用者進行身份驗證或拒絕訪問。
對於伺服器身份驗證,Cisco IOS SSH客戶端必須為每個伺服器分配一個主機金鑰。當客戶端嘗試與伺服器建立SSH會話時,它會在金鑰交換消息中接收伺服器的簽名。如果在客戶端上啟用了嚴格主機金鑰檢查標誌,則客戶端將檢查它是否具有與預配置的伺服器對應的主機金鑰條目。如果找到匹配項,客戶端將嘗試使用伺服器主機金鑰驗證簽名。如果伺服器成功通過驗證,作業階段建立繼續進行;否則它會終止並顯示一條Server Authentication Failed消息。
此示例配置允許在Cisco IOS裝置上對SSHv2使用RSA金鑰:
!
! 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的詳細資訊,請參閱配置Cisco 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的詳細資訊,請參閱配置Cisco 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線路,也可以被網路訪問。其他形式的vty和tty訪問控制可以通過transport input或access-class配置命令實施,使用CoPP和CPPr功能,或者將訪問清單應用於裝置上的介面。
身份驗證可以通過使用AAA(推薦的通過身份驗證訪問裝置的方法)、使用本地使用者資料庫,或者通過直接在vty或tty線路上配置的簡單密碼身份驗證來實施。
必須使用exec-timeout命令註銷閒置的vty或tty線路上的會話。service tcp-keepalive-in命令也必須在傳入連線到裝置時啟用TCP keepalive。這可確保連線遠端端的裝置仍然可訪問,並且從本地Cisco IOS裝置中刪除半開放或孤立的連線。
將vty和tty配置為僅接受到裝置或通過該裝置(如果用作控制檯伺服器)的加密和安全遠端訪問管理連線。本節介紹tty,因為此類線路可以連線到其它裝置上的控制檯埠,從而允許通過網路訪問tty。為防止資訊洩漏或未經授權訪問管理員和裝置之間傳輸的資料,請使用transport input ssh而不是使用明文協定,如Telnet和rlogin。可以在tty上啟用transport input none配置,該配置會禁止使用tty線路進行反向控制檯連線。
vty和tty線路均允許管理員連線到其他裝置。要限制管理員可用於傳出連線的傳輸型別,請使用transport output line configuration命令。如果不需要傳出連線,則使用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>
!
第7類密碼最初設計為允許快速解密儲存的密碼,但它不是一種安全的密碼儲存形式。有許多工具可用來輕鬆解密這些密碼。避免使用7類密碼,除非思科IOS裝置上使用的功能需要該密碼。
儘可能使用型別9(加密):
username <username> privilege 15 algorithm-type scrypt secret <secret>
此型別的密碼可以通過AAA身份驗證和使用Enhanced Password Security功能來刪除,該功能允許對全域性配置命令本地定義的使用者使用加密密碼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命令記賬會將輸入的每個EXEC命令的相關資訊傳送到配置的TACACS+伺服器。傳送到TACACS+伺服器的資訊包括執行的命令、執行的日期以及輸入該命令的使用者名稱。RADIUS不支援指令計量。
此配置示例啟用在許可權級別0、1和15輸入的EXEC命令的AAA命令記帳。此配置基於包括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命令參考。
除了社群字串之外,請套用進一步限制SNMP存取特定來源IP位址組的ACL。此配置限制對位於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 Network Management命令參考》中的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將SNMP訪問限製為位於系統組中的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在本地生成。引擎ID可以使用命令顯show snmp engineID
示,如以下示例所示:
router#show snmp engineID
Local SNMP engineID: 80000009030000152BD35496
Remote Engine ID IP-addr Port
附註:如果更改了engineID,則必須重新配置所有SNMP使用者帳戶。
下一步是配置SNMPv3組。此命令使用SNMP伺服器組AUTHGROUP配置用於SNMPv3的Cisco IOS裝置,並僅使用auth關鍵字為此組啟用身份驗證:
!
snmp-server group AUTHGROUP v3 auth
!
此命令使用SNMP伺服器組PRIVGROUP配置用於SNMPv3的Cisco IOS裝置,並使用priv關鍵字為此組啟用身份驗證和加密:
!
snmp-server group PRIVGROUP v3 priv
!
此命令為SNMPv3使用者snmpv3使用者配置MD5身份驗證口令authpassword
和3DES加密口令privpassword
:
!
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用於將SNMP和SSH訪問限製為僅訪問FastEthernet 0/0介面:
!
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路由器系統日誌事件識別事件。
Logging to Local Involatile Storage(ATA Disk)功能整合在Cisco IOS 12.4(15)T中,最初是在12.0(26)S中引入的,它使系統日誌消息能夠儲存在高級技術附件(ATA)快閃記憶體磁碟上。ATA驅動器上儲存的消息在路由器重新啟動後仍然存在。
這些配置行將日誌消息的134,217,728位元組(128 MB)配置到ATA快閃記憶體(disk0)的syslog目錄中,指定檔案大小為16,384位元組:
logging buffered
logging persistent url disk0:/syslog size 134217728 filesize 16384
在將日誌消息寫入ATA磁碟上的檔案之前,Cisco IOS軟體將檢查是否有足夠的磁碟空間。如果不是,則刪除最舊的日誌檔案消息(按時間戳),並儲存當前檔案。檔名的格式為log_month:day:year::time
PDF。
附註:ATA快閃記憶體驅動器磁碟空間有限,因此需要維護,以避免覆蓋儲存資料的可能性。
本示例展示如何在維護過程中將日誌消息從路由器ATA快閃記憶體磁碟複製到FTP伺服器192.168.1.129上的外部磁碟:
copy disk0:/syslog ftp://myuser/mypass@192.168.1.129/syslog
有關此功能的詳細資訊,請參閱記錄到本地非易失性儲存(ATA磁碟)。
Cisco IOS裝置生成的每條日誌消息都被分配為八個嚴重性之一,範圍從0級、緊急事件到7級、調試。除非特別需要,否則建議您避免第7級日誌。第7級日誌會導致裝置上的CPU負載增加,從而導致裝置和網路不穩定。
全域性配置命令logging trap
級別用於指定將哪些日誌消息傳送到遠端系統日誌伺服器。指定的級別表示傳送的最低嚴重性消息。對於緩衝日誌,logging buffered
使用level命令。
此配置示例將傳送到遠端系統日誌伺服器和本地日誌緩衝區的日誌消息限製為嚴重性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命令進行配置。管理員可以通過EXEC命令檢視日誌緩衝區show logging
的內容。
此配置示例包括配置16,384位元組的日誌緩衝區,以及嚴重性為6, Informational,表示儲存級別為0(緊急)至6(資訊)的消息:
!
logging buffered 16384 6
!
有關緩衝日誌的詳細資訊,請參閱Cisco IOS網路管理命令參考。
為了在收集和檢視日誌消息時提供更高水準的一致性,建議您靜態配置日誌記錄源介面。這通過interface命令來logging source-interface
完成。靜態配置的日誌記錄源介面可確保從單個Cisco IOS裝置傳送的所有日誌消息中顯示相同的IP地址。為了提高穩定性,請使用環回介面作為日誌源。
此配置示例說明使用interface global configuration命令指定所有日誌消息使用的loopback 0介面的IP地址logging source-interface
:
!
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裝置配置。手動或自動儲存時,檔案中的配置可用於使用filename命令替換當前運行configure replace
的配置。此指令與filename指令copy
相running-config
反。filenameconfigure replace
命令取代運行配置,而不是命令執行的合copy
並。
建議您在網路上的所有Cisco IOS裝置上啟用此功能。啟用後,管理員可以使用命令將當前運行配置新增到存archive config EXEC
檔中。可使用命令檢視存檔的配show archive EXEC
置。
此示例說明了自動配置歸檔檔案的配置。此示例指示Cisco IOS裝置將歸檔的配置儲存為disk0上名為archived-config-N的檔案:檔案系統,最多保留14個備份,並在管理員發出命令時每天存檔一次(1440分鐘write memory EXEC
)。
!
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中新增了數位簽章思科軟體功能,該功能通過使用安全的不對稱(公鑰)加密技術,便於使用數位簽章並因此受信任的Cisco IOS軟體。
數位簽章的影象攜帶其自身的加密(私鑰)雜湊。在檢查之後,該裝置使用它在其金鑰儲存中擁有的金鑰解密該雜湊,並且還計算它自己的影象的雜湊。如果解密的雜湊值與計算的影象雜湊值匹配,則說明影象未被篡改,因此可以信任該影象。
數位簽章的思科軟體金鑰由金鑰的型別和版本標識。金鑰可以是特殊型別、生產型別或全反金鑰型別。生產和特殊金鑰型別具有一個關聯的金鑰版本,在撤消和替換金鑰時按字母順序遞增。當您使用數位簽章思科軟體功能時,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和更新版本中,引入了數位簽名的思科軟體的金鑰替代功能。金鑰替換和撤銷從平台金鑰儲存中替換並刪除用於數位簽章思科軟體檢查的金鑰。只有特殊和生產金鑰在金鑰受損的情況下才能吊銷。
用於(特殊或生產)影象的新(特殊或生產)金鑰來自用於撤銷先前特殊或生產金鑰的(生產或撤銷)影象。使用預儲存在平台上的滾動更新金鑰來驗證撤銷映像的完整性。滾動更新金鑰不會更改。當您撤消生產金鑰時,在載入撤消映像後,它攜帶的新金鑰將新增到金鑰儲存中,並且關聯的舊金鑰可以撤消,只要升級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 IOS軟體版本12.3(4)T中新增的配置更改通知和日誌記錄功能可以記錄對Cisco IOS裝置所做的配置更改。日誌儲存在Cisco IOS裝置上,包含做出更改的個人的使用者資訊、輸入的配置命令以及做出更改的時間。此功能是使用configuration change loggerlogging enable
configuration mode命令啟用的。可選命令hidekeys
和logging size
條目用於改進預設配置,因為它們會阻止密碼資料的日誌並增加更改日誌的長度。
建議您啟用此功能,以便可以更輕鬆地瞭解Cisco IOS裝置的配置更改歷史記錄。此外,建議您使用notify syslog
configuration命令來啟用配置更改時生成系統日誌消息。
!
archive
log config
logging enable
logging size 200
hidekeys
notify syslog
!
啟用配置更改通知和日誌記錄功能後,可使用特show archive log config all
權EXEC命令檢視配置日誌。
控制平面功能包括網路裝置之間通訊以將資料從源裝置移動到目的地的協定和過程。這包括路由協定(如邊界網關協定)以及ICMP和資源保留協定(RSVP)等協定。
管理和資料平面中的事件不能對控制平面產生負面影響,這一點非常重要。如果資料平面事件(例如DoS攻擊)影響控制平面,則整個網路可能變得不穩定。此有關Cisco IOS軟體功能和配置的資訊有助於確保控制平面的恢復能力。
保護網路裝置的控制平面至關重要,因為控制平面可確保管理和資料平面得到維護並正常運行。如果控制平面在安全事件期間變得不穩定,則不可能恢復網路的穩定性。
在許多情況下,您可以禁用介面上某些消息型別的接收和傳輸,以最大程度減少處理不必要的資料包所需的CPU負載。
當資料包在同一介面上接收和傳輸時,路由器可以生成ICMP重定向消息。在這種情況下,路由器將轉送封包並向原始封包的傳送者傳送ICMP重新導向訊息。此行為允許傳送者繞過路由器,將未來的封包直接轉送到目的地(或靠近目的地的路由器)。 在正常運行的IP網路中,路由器僅將重定向傳送到其本地子網上的主機。換句話說,ICMP重新導向通常不會超出第3層邊界。
ICMP重定向消息有兩種型別:重定向主機地址,然後重定向整個子網。惡意使用者可能會利用路由器傳送ICMP重定向的能力,不斷將資料包傳輸到路由器,從而迫使路由器使用ICMP重定向消息做出響應,並導致CPU和路由器效能受到不利影響。要防止路由器傳輸ICMP重定向,請使用no ip redirects
interface configuration命令。
使用介面存取清單過濾會誘使ICMP無法到達訊息傳輸回已過濾流量的來源。生成這些消息會增加裝置上的CPU使用率。預設情況下,在Cisco IOS軟體中,ICMP無法到達的產生會限製為每500毫秒產生一個封包。可以使用介面組態指令停用ICMP無法到達訊息產no ip unreachables
生。可以使用全域性配置命令interval-in-ms更改ICMP無法到達ip icmp rate-limit unreachable
的速率限制。
代理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直接處理。此流量包括Receive adjacency traffic類別。此流量在Cisco Express Forwarding(CEF)表中包含專案,因此下一個路由器躍點是裝置本身,CLI輸出中的術語receive表show ip cef
示。此指示適用於需要由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限制存取網路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條目導致策略對映丟棄功能丟棄這些資料包,而與deny操作匹配的資料包不會受到策略對映丟棄功能的影響。
CoPP可用於Cisco IOS軟體版本系列12.0S、12.2SX、12.2S、12.3T、12.4和12.4T。
控制平面保護(CPPr)在Cisco IOS軟體版本12.4(4)T中匯入,可用於限制或管制目的地為Cisco IOS裝置CPU的控制平面流量。雖然與CoPP類似,但CPPr可以以更精細的粒度限制流量。CPPr將聚合控制平面分為三個單獨的控制平面類別,稱為子介面。存在用於主機、傳輸和CEF-Exception流量類別的子介面。此外,CPPr還包括以下控制平面保護功能:
請參閱瞭解控制平面保護(CPPr)以瞭解更多有關CPPr功能使用的資訊。
Cisco Catalyst 6500系列Supervisor Engine 32和Supervisor Engine 720支援平台特定的、硬體型速率限制器(HWRL),適用於特殊網路情景。這些硬體速率限制器稱為特殊情況速率限制器,因為它們涵蓋一組特定的預定義的IPv4、IPv6、單播和多播DoS方案。HWRL可以保護Cisco IOS裝置免受需要CPU處理資料包的各種攻擊。
預設情況下啟用多個HWRL。有關HWRL的詳細資訊,請參閱PFC3基於硬體的速率限制器預設設定。
有關HWRL的詳細資訊,請參閱PFC3上的基於硬體的速率限制器。
邊界網關協定(BGP)是Internet的路由基礎。因此,任何組織只要滿足過適度的連線要求,通常都會使用BGP。BGP經常成為攻擊者的攻擊目標,因為它在較小的組織中是無處不在的BGP配置的設定並忽略其性質。但是,可使用許多BGP特定安全功能來提高BGP配置的安全性。
其中概述了最重要的BGP安全功能,並在適當情況下提出了配置建議。
每個IP資料包都包含一個稱為生存時間(TTL)的1位元組欄位。 IP資料包經過的每個裝置都會將此值減一。TTL起始值因作業系統而異,通常範圍為64到255。資料包的TTL值達到零時將丟棄。
一種稱為通用TTL型安全機制(GTSM)和BGP TTL安全攻擊(BTSH)的安全保護利用IP封包的TTL值,以確保收到的BGP封包來自直接連線的對等路由器。此功能通常需要來自對等路由器的協調;但是,一旦啟用,它可以完全抵禦許多針對BGP的基於TCP的攻擊。
使用BGP路由器配置命令ttl-security
的選項啟neighbor
用GTSM for BGP。此範例說明此功能的設定:
!
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發言人使用相同的演算法和金鑰來重新生成消息摘要。如果接收的摘要和計算的摘要不同,則丟棄該資料包。
使用MD5的對等身份驗證使用BGPpassword
路由器配置命neighbor
令的選項進行配置。此命令的使用說明如下:
!
router bgp <asn>
neighbor <ip-address> remote-as <remote-asn>
neighbor <ip-address> password <secret>
!
請參閱鄰居路由器身份驗證,以瞭解有關使用MD5的BGP對等身份驗證的詳細資訊。
BGP字首由路由器儲存在記憶體中。路由器必須保留的字首越多,BGP消耗的記憶體就越多。在某些配置中,可以儲存所有Internet字首的子集,例如僅利用提供商使用者網路的預設路由或路由的配置。
為防止記憶體耗盡,請配置每個對等體接受的最大字首數。建議為每個BGP對等點配置限制。
使用BGP路由器配置命令配neighbor maximum-prefix
置此功能時,需要一個引數:對等體關閉之前接受的最大字首數。或者,也可以輸入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。
通過使用有助於控制路由資訊通告的命令,可以減輕資訊洩漏或向IGP引入虛假資訊的情passive-interface
。建議您不要將任何資訊通告給您的管理控制之外的網路。
此範例示範使用此功能:
!
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
包含Cisco IOS裝置所接收的IP選項的所有IP資料包都會被丟棄。這可防止IP選項可以啟用的高CPU負載和可能的安全控制被顛覆。
此命令的第二個形式ip options ignore
將Cisco IOS裝置配置為忽略接收資料包中包含的IP選項。雖然這樣可以緩解與本地裝置的IP選項相關的威脅,但可能下游裝置會受到IP選項的影響。因此,強烈建drop
議使用此命令的形式。如以下組態範例所示:
!
ip options drop
!
某些通訊協定(例如RSVP)可合法使用IP選項。這些通訊協定的功能會受到此命令的影響。
啟用IP選項選擇性丟棄後,該命令可用於確定由於存在IP選項而丟棄的資料包數show ip traffic EXEC
。此資訊出現在強制丟棄計數器中。
IP源路由會同時利用「鬆散源路由」和「記錄路由」選項;或Strict Source Route和Record Route選項,使IP資料包源能夠指定資料包採用的網路路徑。此功能可用於嘗試在網路中的安全控制周圍路由流量。
如果IP選項選擇性捨棄功能尚未完全停用IP選項,則務必停用IP來源路由。IP源路由(在所有Cisco IOS軟體版本中預設啟用)由全域性配置命no ip source-route
令禁用。此組態範例說明此命令的使用方式:
!
no ip source-route
!
ICMP重定向用於通知網路裝置通往IP目標的更好路徑。預設情況下,Cisco IOS軟體會在收到必須透過所接收介面路由的封包時傳送重新導向。
在某些情況下,攻擊者可能會使Cisco IOS裝置傳送許多ICMP重定向消息,從而導致CPU負載增加。因此,建議停用ICMP重新導向傳輸。ICMP重定向已使用介面配置命令no ip redirects
禁用,如以下示例配置所示:
!
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相反。tACL提供的過濾對於過濾流向特定裝置組的流量或流經網路的流量是有益的。
傳統上,防火牆執行此過濾器型別。但是,在某些情況下,在網路的Cisco IOS裝置上執行此過濾器會非常有用。例如,必須執行過濾但不存在防火牆。
tACL也是實施靜態反欺騙保護的適當位置。
有關更多資訊,請參見Anti-Spoofing Protections部分。
請參閱傳輸存取控制清單:在邊緣進行過濾以瞭解有關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
!
請參閱存取控制清單和IP片段,以取得更多有關ACL如何處理分段的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可以配置為以下兩種模式之一:寬鬆或嚴格。在有非對稱路由的情況下,最好選擇鬆散模式,因為已知嚴格模式在此類情況下會丟棄資料包。在interface configuration命令的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地址的官方清單由Cymru團隊維護。有關如何過濾未使用地址的其他資訊,請參閱Bogon Reference頁。
路由器和交換器的主要用途是通過裝置將封包和訊框轉送到最終目的地。這些資料包傳輸在整個網路中部署的裝置,可能會影響裝置的CPU操作。保護資料平面(包括穿越網路裝置的流量),以確保管理和控制平面的運行。如果傳輸流量可能導致裝置處理交換機流量,則裝置的控制平面可能受到影響,從而導致運營中斷。
儘管並不詳盡,但此清單包含需要特殊的CPU處理且由CPU進行進程交換的資料平面流量型別:
有關資料平面強化的詳細資訊,請參閱一般資料平面強化部分。
您可以使用Cisco IOS軟體版本12.4(2)T中引入的ACL支援過濾TTL值功能,在延伸型IP存取清單中根據TTL值過濾封包。此功能可以保護接收TTL值為零或一的傳輸流量的裝置。基於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到期攻擊識別和緩解。
有關此功能的詳細資訊,請參閱ACL支援以過濾TTL值。
在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 Support for Filtering IP Options。但是,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)導致策略對映丟棄功能丟棄這些資料包,而與deny操作(未顯示)匹配的資料包不受策略對映丟棄功能的影響。
在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操作(未顯示)匹配的資料包不受策略對映丟棄函式的影響。
有關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,以幫助識別被拒絕的流量型別。
管理員可以通過使用分類ACL和EXEC命令來加速show access-list
事clear ip access-list counters
件響應。
此示例顯示分類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的功能、優勢和潛在的使用情形。
應用於進入VLAN的所有封包的VACL(或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部分。
MAC訪問控制清單或擴展清單可以在介面配置模式下使用以下命令應用於IP網路:
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)是第2層安全功能,它限制VLAN上工作站或伺服器之間的連線。沒有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可用於不受信任的網路(如支援訪客的網路)。
此配置示例將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(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配置的破壞。
請參閱LAN安全首頁上的專用VLAN(PVLAN) — 混雜、隔離、社群,瞭解有關使用和配置專用VLAN的詳細資訊。
本檔案將簡要概述可用於保護Cisco IOS系統裝置的方法。如果保護裝置,就會提高所管理網路的整體安全性。在此概述中,將討論對管理、控制和資料平面的保護,並提供有關配置的建議。在可能的情況下,為每個相關特徵的配置提供了足夠的細節。但是,在所有情況下,系統都會提供全面的參考資料,以向您提供進行進一步評估所需的資訊。
本文檔中的一些功能說明是由思科資訊開發團隊編寫的。
本核對表是本指南中介紹的所有裝置加固步驟的集合。管理員可以使用它來提醒Cisco IOS裝置使用和考慮的所有強化功能,即使某項功能因未應用而未實施也是如此。建議管理員在實施每個選項之前評估其潛在風險。
修訂 | 發佈日期 | 意見 |
---|---|---|
2.0 |
12-Sep-2024
|
全面瞭解CCW警報,包括簡介、機器翻譯、風格要求和幾十個更新連結。 |
1.0 |
10-Dec-2001
|
初始版本 |