本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹Cisco IOS®防火牆功能集、區域原則防火牆(ZFW)的組態模型。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
這種新的配置模型為多介面路由器提供了直觀的策略,提高了防火牆策略應用的粒度,並提供了預設的deny-all策略,該策略在應用顯式策略以允許所需流量之前禁止防火牆安全區域之間的流量。
基於區域的新策略檢查介面幾乎支援在Cisco IOS軟體版本12.4(6)T之前實施的所有傳統Cisco IOS防火牆功能:
狀態資料包檢測
VRF感知Cisco IOS防火牆
URL篩選
拒絕服務(DoS)緩解
Cisco IOS軟體版本12.4(9)T新增了ZFW對每類作業階段/連線和輸送量限制以及應用程式檢查和控制功能的支援:
HTTP
郵局協定(POP3)、網際網路郵件訪問協定(IMAP)、簡單郵件傳輸協定/增強型簡單郵件傳輸協定(SMTP/ESMTP)
Sun遠端程式呼叫(RPC)
即時消息(IM)應用程式:
Microsoft Messenger
雅虎!Messenger
AOL Instant Messenger
點對點(P2P)檔案共用:
比托朗
卡扎
格努泰拉
電子驢
Cisco IOS軟體版本12.4(11)T新增統計資料,可更輕鬆地調整DoS保護。
Cisco IOS軟體版本12.4(15)T中的ZFW尚不支援某些Cisco IOS傳統防火牆特性和功能:
驗證代理
狀態防火牆故障切換
統一防火牆MIB
IPv6狀態檢測
TCP無序支援
ZFW通常可提高大多數防火牆檢查活動的Cisco IOS效能。Cisco IOS ZFW和Classic Firewall均未包含對組播流量的狀態檢測支援。
Cisco IOS傳統防火牆狀態檢測(以前稱為基於情景的訪問控制,或CBAC)採用基於介面的配置模型,其中將狀態檢測策略應用於介面。所有透過該介面的資料流都收到了相同的檢查策略。此配置模型限制了防火牆策略的粒度,並造成防火牆策略的正確應用混亂,尤其是在必須在多個介面之間應用防火牆策略的情況下。
基於區域的策略防火牆(也稱為區域策略防火牆或ZFW)將防火牆配置從較舊的基於介面的模型更改為更靈活、更易於理解的基於區域的模型。介面被分配給區域,檢測策略應用於在區域之間移動的流量。區域間策略提供了相當大的靈活性和精細度,因此可以將不同的檢查策略應用於連線到同一路由器介面的多個主機組。
防火牆策略使用Cisco Policy Language (CPL)進行配置,它採用分層結構來定義網路協定和可應用檢查的主機組的檢查。
與Cisco IOS傳統防火牆相比,ZFW完全改變了Cisco IOS防火牆檢測的配置方式。
防火牆配置的第一個主要更改是引入基於區域的配置。Cisco IOS防火牆是第一個實施區域配置模型的Cisco IOS軟體威脅防禦功能。隨著時間的推移,其他特徵也可以採用區域模型。使用ip inspect命令集的Cisco IOS傳統防火牆狀態檢查(或CBAC)基於介面的配置模型仍將在一段時間內繼續使用。但是,很少有新功能可以透過傳統的命令列介面(CLI)配置。ZFW不使用狀態檢測或CBAC命令。這兩種配置模式可在路由器上同時使用,但不能在介面上結合使用。不能將介面配置為安全區域成員並同時配置為ip inspect 。
區域可建立網路的安全邊界。區域定義了流量在穿過網路另一區域時受策略限制的邊界。區域之間的ZFW預設策略為deny all。如果未明確配置任何策略,則會阻止在區域之間移動的所有流量。這明顯不同於有狀態檢查模型,該模型在訪問控制清單(ACL)明確阻止流量之前隱式允許流量。
第二個主要變化是引入了一種稱為CPL的新配置策略語言。熟悉Cisco IOS軟體模組化服務品質(QoS) CLI (MQC)的使用者可以發現,該格式類似於QoS使用類對映來指定哪些流量受策略對映中應用的操作的影響。
區域中的路由器網路介面成員資格受若干規則制約,這些規則管理介面行為,區域成員介面之間移動的流量也是如此:
必須先配置區域,然後才能將介面分配給區域。
一個介面只能分配給一個安全區域。
將介面分配給區域時,所有進出給定介面的流量都會被隱式阻止,但進出同一區域中其它介面的流量以及流向路由器上任何介面的流量除外。
預設情況下,允許流量在屬於同一區域的介面之間流動。
要允許流量進出區域成員介面,必須在該區域和任何其他區域之間配置允許或檢查流量的策略。
自帶區域是預設拒絕所有策略的唯一例外。在明確拒絕流量之前,允許發往任何路由器介面的所有流量。
流量不能在區域成員介面與任何非區域成員的介面之間流動。透過、檢查和丟棄操作只能在兩個區域之間應用。
尚未分配給區域的介面用作經典路由器埠,並且仍然可以使用經典的有狀態檢測/CBAC配置。
如果需要將裝置上的介面作為區域/防火牆策略的一部分。仍然需要將該介面放入一個區域中,並在該區域與任何其它需要流量流往的區域之間配置全部通行策略(一種虛擬策略)。
從先前的行為中可以解釋,如果流量要在路由器中的所有介面之間流動,則所有介面都必須是分割槽模型的一部分(每個介面必須是一個分割槽或另一個分割槽的成員)。
除了以前的行為之外,預設情況下拒絕的方法的唯一例外是進出路由器的流量,預設情況下允許該流量。可以配置顯式策略以限制此類流量。
必須為網路中每個相對安全區域配置一個安全區域,以便分配給同一區域的所有介面都受到類似安全級別的保護。例如,假設有三個介面的接入路由器:
一個介面連線到公共網際網路。
一個連線到專用LAN的介面,不能從公共Internet訪問。
一個連線到網際網路服務隔離區(DMZ)的介面,公共網際網路必須能夠訪問該DMZ的Web伺服器、域名系統(DNS)伺服器和電子郵件伺服器。
此網路中的每個介面都分配到其自己的區域,但您可以允許從公共Internet到DMZ中的特定主機進行各種訪問,以及允許受保護的LAN中的主機使用各種應用策略(請參見圖1)。
圖1:基本安全區域拓撲
在本示例中,每個區域僅保留一個介面。如果將另一個介面增加到專用區域,則連線到該區域中新介面的主機可以將流量傳送到同一區域中當前介面上的所有主機。此外,到其他區域主機的主機流量同樣受當前策略的影響。
通常,示例網路有三個主要策略:
專用區域與Internet的連線
專用區域與DMZ主機的連線
與DMZ主機的網際網路區域連線
由於DMZ暴露於公共網際網路,因此DMZ主機可能會遭受惡意人員的不良活動,這些惡意人員可能會成功損壞一台或多台DMZ主機。如果沒有為DMZ主機提供訪問策略以訪問專用區域主機或網際網路區域主機,則破壞DMZ主機的個人無法使用DMZ主機對專用主機或網際網路主機進行進一步攻擊。ZFW採用令人望而生畏的預設安全狀態。因此,除非專門為DMZ主機提供對其他網路的訪問,否則會保護其他網路免受來自DMZ主機的任何連線的侵害。同樣地,未提供Internet主機訪問專用區域主機的許可權,因此Internet主機可以安全地訪問專用區域主機。
IPSec VPN的最新增強功能簡化了VPN連線的防火牆策略配置。IPSec虛擬通道介面(VTI)和GRE+IPSec可將通道介面置於指定的安全區域中,以限制VPN點對點和使用者端連線至特定安全區域。如果連線必須受特定策略限制,則可以在VPN DMZ中隔離連線。或者,如果VPN連線是隱式信任的,則VPN連線可以位於與受信任的內部網路相同的安全區域中。
如果應用了非VTI IPSec,則需要密切檢查VPN連線防火牆策略以維護安全性。如果安全主機與VPN客戶端加密的路由器連線位於不同的區域,則區域策略必須特別允許遠端站點主機或VPN客戶端的IP地址訪問。如果未正確配置訪問策略,則必須保護的主機最終可能會暴露給不需要的潛在惡意主機。有關詳細的概念和配置細節的資訊,請參閱使用帶有區域策略防火牆的VPN。
此過程可用於配置ZFW。步驟順序並不重要,但某些事件必須按順序完成。例如,在為策略對映分配類對映之前,必須配置類對映。同樣,在配置策略之前,不能將策略對映分配給區域對。如果您嘗試配置依賴於配置中尚未配置的其他部分的部分,路由器將會以錯誤消息作出響應。
定義區域。
定義區域配對。
定義類對映,描述跨區域對時必須應用策略的流量。
定義策略對映以將操作應用於類對映流量。
將策略對映應用於區域對。
將介面分配給區域。
類對映定義防火牆為策略應用選擇的流量。第4層類對映根據此處列出的這些條件對流量進行排序。這些條件由類對映中的match命令指定:
Access-group -標準、擴展或命名ACL可以根據源和目標IP地址以及源和目標埠過濾流量。
通訊協定—可以指定第4層通訊協定(TCP、UDP和ICMP)和HTTP、SMTP、DNS等應用程式服務。連線埠-應用程式對應已知的任何公認或使用者定義服務都可以指定。
類別對映—可提供其他符合條件的從屬類別對映可以巢狀式放在另一個類別對映中。
Not — not條件指定任何不匹配指定服務(協定)、訪問組或次級類對映的資料流都將被類對映選中。
類對映可以應用match-any或match-all運算子來確定如何應用匹配條件。如果指定了match-any,則流量必須僅滿足類對映中的一個匹配條件。如果指定了match-all ,則流量必須匹配所有類對映條件才能屬於該特定類。
如果流量滿足多個條件,則必須應用匹配條件,以便從更具體到不太具體。例如,請考慮以下類對映:
class-map type inspect match-any my-test-cmap match protocol http match protocol tcp
HTTP流量必須首先遇到匹配協定http,以確保流量由HTTP檢測的服務特定功能處理。如果匹配行反轉,則流量在與match protocol http進行比較之前會遇到match protocol TCP語句,流量僅被分類為TCP流量,並根據防火牆TCP檢查元件的功能進行檢查。這對於某些服務(例如FTP、TFTP)和多種多媒體和語音信令服務(例如H.323、SIP、Skinny、RTSP等)來說是一個問題。這些服務需要額外的檢查功能來辨識這些服務更複雜的活動。
類對映可以應用ACL作為策略應用的匹配條件之一。如果類對映僅匹配條件是ACL,並且類對映與應用檢查操作的策略對映關聯,則路由器對ACL允許的所有流量應用基本TCP或UDP檢查,但哪個ZFW提供應用感知檢查除外。這包括(但不限於) FTP、SIP、Skinny (SCCP)、H.323、Sun RPC和TFTP。如果應用特定檢查可用,並且ACL允許主通道或控制通道,則無論ACL是否允許流量,都允許與主/控制相關聯的任何輔助通道或媒體通道。
如果類對映僅應用ACL 101作為匹配條件,則ACL 101顯示如下:
access-list 101 permit ip any any
允許所有流量沿應用於給定區域對的服務策略的方向傳輸,並且允許對應於該方向的返回流量沿相反方向傳輸。因此,ACL必須應用此限制,將流量限制到特定所需型別。請注意,PAM清單包括HTTP、NetBIOS、H.323和DNS等應用服務。然而,儘管PAM瞭解給定埠的特定應用用途,但防火牆僅應用足夠的應用特定功能來滿足眾所周知的應用流量要求。因此,簡單的應用流量(例如telnet和SSH)以及其他單通道應用程式將作為TCP進行檢查,並且其統計資料將合併到show命令輸出中。如果需要特定於應用程式的網路活動可視性,則需要按應用程式名稱配置服務檢查(配置匹配協定HTTP、匹配協定telnet等)。
請將此配置的show policy-map type inspect zone-pair命令輸出中提供的統計資料與顯示在此頁面下方的更為明確的防火牆策略進行比較。此配置用於檢查來自Cisco IP電話以及使用各種流量(包括HTTP、FTP、NetBIOS、SSH和DNS)的多個工作站的流量:
class-map type inspect match-all all-private match access-group 101 ! policy-map type inspect priv-pub-pmap class type inspect all-private inspect class class-default ! zone security private zone security public zone-pair security priv-pub source private destination public service-policy type inspect priv-pub-pmap ! interface FastEthernet4 ip address 172.16.108.44 255.255.255.0 zone-member security public ! interface Vlan1 ip address 192.168.108.1 255.255.255.0 zone-member security private ! access-list 101 permit ip 192.168.108.0 0.0.0.255 any
雖然此配置易於定義並適應源自專用區域的所有流量(只要流量遵循標準、可辨識PAM的目標埠),但它對服務活動的可視性有限,且不能為特定型別的流量應用ZFW的頻寬和會話限制。以下show policy-map type inspect zone-pair priv-pub命令輸出是早先簡單配置的結果,此配置僅在區域對間使用permit IP [subnet] any ACL。如您所見,大多數工作站流量在基本TCP或UDP統計資訊中計數:
stg-871-L#show policy-map type insp zone-pair priv-pub Zone-pair: priv-pub Service-policy inspect : priv-pub-pmap Class-map: all-private (match-all) Match: access-group 101 Inspect Packet inspection statistics [process switch:fast switch] tcp packets: [413:51589] udp packets: [74:28] icmp packets: [0:8] ftp packets: [23:0] tftp packets: [3:0] tftp-data packets: [6:28] skinny packets: [238:0] Session creations since subsystem startup or last reset 39 Current session counts (estab/half-open/terminating) [3:0:0] Maxever session counts (estab/half-open/terminating) [3:4:1] Last session created 00:00:20 Last statistic reset never Last session creation rate 2 Maxever session creation rate 7 Last half-open session total 0 Class-map: class-default (match-any) Match: any Drop (default action) 0 packets, 0 bytes
相比之下,增加特定於應用程式的類的類似配置可提供更精細的應用程式統計資訊和控制,並且仍然可以適應第一個示例中定義的僅與ACL匹配的最後機會的類對映在策略對映中時顯示的相同服務範圍:
class-map type inspect match-all all-private match access-group 101 class-map type inspect match-all private-ftp match protocol ftp match access-group 101 class-map type inspect match-any netbios match protocol msrpc match protocol netbios-dgm match protocol netbios-ns match protocol netbios-ssn class-map type inspect match-all private-netbios match class-map netbios match access-group 101 class-map type inspect match-all private-ssh match protocol ssh match access-group 101 class-map type inspect match-all private-http match protocol http match access-group 101 ! policy-map type inspect priv-pub-pmap class type inspect private-http inspect class type inspect private-ftp inspect class type inspect private-ssh inspect class type inspect private-netbios inspect class type inspect all-private inspect class class-default! zone security private zone security public zone-pair security priv-pub source private destination public service-policy type inspect priv-pub-pmap ! interface FastEthernet4 ip address 172.16.108.44 255.255.255.0 zone-member security public ! interface Vlan1 ip address 192.168.108.1 255.255.255.0 zone-member security private ! access-list 101 permit ip 192.168.108.0 0.0.0.255 any
更具體的配置提供了以下非常精細的show policy-map type inspect zone-pair priv-pub命令輸出:
stg-871-L#sh policy-map type insp zone-pair priv-pub Zone-pair: priv-pub Service-policy inspect : priv-pub-pmap Class-map: private-http (match-all) Match: protocol http Match: access-group 101 Inspect Packet inspection statistics [process switch:fast switch] tcp packets: [0:2193] Session creations since subsystem startup or last reset 731 Current session counts (estab/half-open/terminating) [0:0:0] Maxever session counts (estab/half-open/terminating) [0:3:0] Last session created 00:29:25 Last statistic reset never Last session creation rate 0 Maxever session creation rate 4 Last half-open session total 0 Class-map: private-ftp (match-all) Match: protocol ftp Inspect Packet inspection statistics [process switch:fast switch] tcp packets: [86:167400] ftp packets: [43:0] Session creations since subsystem startup or last reset 7 Current session counts (estab/half-open/terminating) [0:0:0] Maxever session counts (estab/half-open/terminating) [2:1:1] Last session created 00:42:49 Last statistic reset never Last session creation rate 0 Maxever session creation rate 4 Last half-open session total 0 Class-map: private-ssh (match-all) Match: protocol ssh Inspect Packet inspection statistics [process switch:fast switch] tcp packets: [0:62] Session creations since subsystem startup or last reset 4 Current session counts (estab/half-open/terminating) [0:0:0] Maxever session counts (estab/half-open/terminating) [1:1:1] Last session created 00:34:18 Last statistic reset never Last session creation rate 0 Maxever session creation rate 2 Last half-open session total 0 Class-map: private-netbios (match-all) Match: access-group 101 Match: class-map match-any netbios Match: protocol msrpc 0 packets, 0 bytes 30 second rate 0 bps Match: protocol netbios-dgm 0 packets, 0 bytes 30 second rate 0 bps Match: protocol netbios-ns 0 packets, 0 bytes 30 second rate 0 bps Match: protocol netbios-ssn 2 packets, 56 bytes 30 second rate 0 bps Inspect Packet inspection statistics [process switch:fast switch] tcp packets: [0:236] Session creations since subsystem startup or last reset 2 Current session counts (estab/half-open/terminating) [0:0:0] Maxever session counts (estab/half-open/terminating) [1:1:1] Last session created 00:31:32 Last statistic reset never Last session creation rate 0 Maxever session creation rate 1 Last half-open session total 0 Class-map: all-private (match-all) Match: access-group 101 Inspect Packet inspection statistics [process switch:fast switch] tcp packets: [51725:158156] udp packets: [8800:70] tftp packets: [8:0] tftp-data packets: [15:70] skinny packets: [33791:0] Session creations since subsystem startup or last reset 2759 Current session counts (estab/half-open/terminating) [2:0:0] Maxever session counts (estab/half-open/terminating) [2:6:1] Last session created 00:22:21 Last statistic reset never Last session creation rate 0 Maxever session creation rate 12 Last half-open session total 0 Class-map: class-default (match-any) Match: any Drop (default action) 4 packets, 112 bytes
如前所述,當使用更精細的類對映和策略對映配置時,另一個好處是可以對會話和速率值應用特定於類的限制;以及透過應用引數對映來調整每個類檢查行為來專門調整檢查引數。
策略對映將防火牆策略操作應用於一個或多個類對映,以定義應用於安全區域對的服務策略。建立檢查型別策略對映時,在類的末尾應用名為class class-default的預設類。class class-default預設策略操作為drop,但可以更改為通過。日誌選項可以與刪除操作一起增加。無法在類別類別預設值上套用檢查。
ZFW為從一個區域到另一個區域的流量提供三種操作:
丟棄—這是用於所有流量的預設操作,由終止每個檢查型別策略對映的class class-default應用。還可以將策略對映中的其他類對映配置為丟棄不需要的流量。ZFW會以靜默方式捨棄由捨棄動作處理的流量(亦即,不會將捨棄通知傳送至相關終端主機),這與ACL行為相反,它會將ICMP主機無法連線訊息傳送至傳送遭拒絕流量的主機。目前沒有選項可變更無訊息刪除行為。日誌選項可以增加丟棄功能,用於系統日誌通知防火牆已丟棄流量。
透過—此操作允許路由器將來自一個區域的流量轉發到另一個區域。傳遞操作不跟蹤流量內的連線或會話狀態。Pass只允許單向流量。必須應用並行策略,以允許返回流量以相反方向通過。Pass操作對於IPSec ESP、IPSec AH、ISAKMP等協定,以及其他具有可預測行為的固有安全協定很有用。但是,大多數應用流量最好透過檢查操作在ZFW中處理。
檢查-檢查操作提供了基於狀態的流量控制。例如,如果檢查從先前範例網路中的私人區域到Internet區域的流量,路由器會維護TCP和使用者資料包通訊協定(UDP)流量的連線或作業階段資訊。因此,路由器允許從Internet區域主機傳送返回流量以響應專用區域連線請求。此外,檢查可以為某些可能承載易受攻擊或敏感應用流量的服務協定提供應用檢查和控制。稽核歷程檔可與引數對應一起套用,以記錄連線/階段作業的開始、停止、持續時間、傳輸的資料量,以及來源和目的地位址。
操作與策略對映中的類對映關聯:
configure terminal policy-map type inspect z1-z2-pmap class type inspect service-cmap inspect|drop|allow [service-parameter-map]
引數對映提供用於修改給定類對映檢查策略的連線引數的選項。
引數對映指定ZFW的檢查行為,用於諸如DoS保護、TCP連線/UDP會話計時器和審計跟蹤日誌記錄設定等引數。引數對映還與第7層類和策略對映一起應用,以定義特定於應用的行為,如HTTP對象、POP3和IMAP身份驗證要求以及其他特定於應用的資訊。
ZFW的檢查引數對映被配置為型別檢查,類似於其他ZFW類和策略對象:
stg-871-L(config)#parameter-map type inspect z1-z2-pmap
stg-871-L(config-profile)#? parameter-map commands: alert Turn on/off alert audit-trail Turn on/off audit trail dns-timeout Specify timeout for DNS exit Exit from parameter-map icmp Config timeout values for icmp max-incomplete Specify maximum number of incomplete connections before clamping no Negate or set default values of a command one-minute Specify one-minute-sample watermarks for clamping sessions Maximum number of inspect sessions tcp Config timeout values for tcp connections udp Config timeout values for udp flows
特定型別的引數對映指定第7層應用檢查策略應用的引數。Regex型別引數對映定義正規表示式,用於使用正規表示式過濾流量的HTTP應用檢查:
parameter-map type regex [parameter-map-name]
Protocol-info-type引數對映定義用於IM應用程式檢測的伺服器名稱:
parameter-map type protocol-info [parameter-map-name]
HTTP和IM應用檢測的完整配置詳細資訊在本文檔的相應應用檢測部分中提供。
ZFW為預設丟棄或檢查的流量或配置的防火牆策略操作提供日誌記錄選項。ZFW檢查的流量可以使用審計跟蹤日誌記錄。當在引數對映中定義稽核跟蹤並在策略對映中應用具有檢查操作的引數對映時,將應用稽核跟蹤:
configure terminal policy-map type inspect z1-z2-pmap class type inspect service-cmap inspect|drop|allow [parameter-map-name (optional)]
丟棄日誌記錄可用於ZFW丟棄的流量。當您在策略對映中使用刪除操作增加日誌時,可以配置刪除日誌記錄:
configure terminal policy-map type inspect z1-z2-pmap class type inspect service-cmap inspect|drop|allow [service-parameter-map]
ZFW目前沒有包含可以修改各種ZFW結構(如策略對映、類對映和引數對映)的編輯器。為了將類對映或操作應用程式中的match語句重新排列到策略對映中包含的各種類對映,您需要完成以下步驟:
將目前結構複製到文字編輯器(例如Microsoft Windows記事本)或編輯器(例如Linux/Unix平台上的vi)。
從路由器配置中刪除當前結構。
在文字編輯器中編輯結構。
將結構複製迴路由器CLI。
此配置示例使用思科1811整合多業務路由器。有關基本IP連線配置、VLAN配置以及在兩個專用乙太網LAN網段之間建立透明橋接等內容,請參閱附錄A。路由器分為五個區域:
公共Internet連線到FastEthernet 0(Internet區域)
兩台網際網路伺服器連線到FastEthernet 1(DMZ區域)
乙太網交換機配置了兩個VLAN:
工作站連線到VLAN1(客戶端區域)。
伺服器連線到VLAN2(伺服器區域)。
客戶端和伺服器區域位於同一子網中。在區域之間應用了透明防火牆,因此這兩個介面上的區域間策略只能影響客戶端和伺服器區域之間的流量。
VLAN1和VLAN2介面透過網橋虛擬介面(BVI1)與其他網路通訊。此介面已分配給專用區域。(請參閱圖2。)
圖2:區域拓撲詳細資訊
應用這些策略,並應用之前定義的網路區域:
Internet區域中的主機可以訪問DMZ中一台伺服器上的DNS、SMTP和SSH服務。另一台伺服器提供SMTP、HTTP和HTTPS服務。防火牆策略限制對每台主機上可用特定服務的訪問。
DMZ主機無法連線到任何其他區域中的主機。
客戶端區域中的主機可以連線到伺服器區域中的所有TCP、UDP和ICMP服務上的主機。
伺服器區域中的主機無法連線到客戶端區域中的主機,但基於UNIX的應用程式伺服器可以在埠6900至6910的客戶端區域中的台式PC上打開X Windows客戶端會話到X Windows伺服器。
專用區域中的所有主機(客戶端和伺服器的組合)都可以訪問SSH、FTP、POP、IMAP、ESMTP和HTTP服務上的DMZ中的主機,以及HTTP、HTTPS和DNS服務和ICMP上的Internet區域中的主機。此外,在從專用區域到網際網路區域的HTTP連線上應用應用程式檢查,以確保受支援的IM和P2P應用程式不會在埠80上傳輸。(參見圖3。)
圖3:配置示例中要應用的區域對服務許可權
這些防火牆策略按複雜性順序進行配置:
客戶端-伺服器TCP/UDP/ICMP檢查
專用DMZ SSH/FTP/POP/IMAP/ESMTP/HTTP檢查
Internet -受主機地址限制的DMZ SMTP/HTTP/DNS檢查
伺服器-客戶端X Windows檢測及埠應用程式對映(PAM)指定服務
專用網際網路HTTP/HTTPS/DNS/ICMP與HTTP應用檢測
由於您在不同時間將部分配置應用於不同的網段,因此請務必記住,放置在區域中的網段會失去與其它網段的連線。例如,配置專用區域後,專用區域中的主機將失去與DMZ和Internet區域的連線,直到定義了各自的策略。
圖4說明了專用Internet策略的配置。
圖4:從專用區域到Internet區域的服務檢查
專用Internet策略對從專用區域到Internet區域的ICMP應用第4層檢測到HTTP、HTTPS、DNS和第4層檢測。這允許從專用區域連線到Internet區域,並允許返回流量。第7層檢測具有更緊密的應用控制、更佳的安全性以及支援需要修復的應用等優勢。但是,如前所述,第7層檢測需要更好地瞭解網路活動,因為區域之間不允許未配置用於檢測的第7層協定。
根據前面所述的策略,定義描述要在區域之間允許的流量的類對映:
configure terminal class-map type inspect match-any internet-traffic-class match protocol http match protocol https match protocol dns match protocol icmp
配置策略對映以檢查剛才定義的類對映上的流量:
configure terminal policy-map type inspect private-internet-policy class type inspect internet-traffic-class inspect
配置專用區域和Internet區域,並將路由器介面分配到其各自區域:
configure terminal zone security private zone security internet int bvi1 zone-member security private int fastethernet 0 zone-member security internet
配置區域對並應用適當的策略對映。
註:您目前只需配置專用Internet區域對,以便檢查源自主區域內、流向Internet區域的連線,如下所示:
configure terminal zone-pair security private-internet source private destination internet service-policy type inspect private-internet-policy
這樣就完成了私有Internet區域對上的第7層檢查策略的配置,以允許從客戶端區域到伺服器區域的HTTP、HTTPS、DNS和ICMP連線,並將應用檢查應用到HTTP流量,以確保不允許不需要的流量透過TCP 80(HTTP的服務埠)。
圖5說明了專用DMZ策略的配置。
圖5:從專用區域到DMZ區域的服務檢查
專用DMZ策略增加了複雜性,因為它需要更好地瞭解區域之間的網路流量。此策略將第7層檢測從專用區域應用到DMZ。這允許從專用區域連線到DMZ並允許返回資料流。第7層檢測具有更緊密的應用控制、更佳的安全性以及支援需要修復的應用等優勢。但是,如前所述,第7層檢測需要更好地瞭解網路活動,因為區域之間不允許未配置用於檢測的第7層協定。
根據前面所述的策略,定義描述要在區域之間允許的流量的類對映:
configure terminal class-map type inspect match-any L7-inspect-class match protocol ssh match protocol ftp match protocol pop match protocol imap match protocol esmtp match protocol http
配置策略對映以檢查剛才定義的類對映上的流量:
configure terminal policy-map type inspect private-dmz-policy class type inspect L7-inspect-class inspect
配置專用區域和DMZ區域,並將路由器介面分配到其各自區域:
configure terminal zone security private zone security dmz int bvi1 zone-member security private int fastethernet 1 zone-member security dmz
註:您目前只需配置專用DMZ區域對,即可檢查源自主區域且流向DMZ的連線,如下所示:
configure terminal zone-pair security private-dmz source private destination dmz service-policy type inspect private-dmz-policy
這將完成專用DMZ上第7層檢查策略的配置,以允許從客戶端區域到伺服器區域的所有TCP、UDP和ICMP連線。該策略不對從屬通道應用修復,但提供了一個簡單策略示例,可適應大多數應用連線。
圖6說明了Internet DMZ策略的配置。
圖6:從Internet區域到DMZ區域的服務檢查
此策略將第7層檢測從網際網路區域應用到DMZ。這允許從Internet區域連線到DMZ,並允許從DMZ主機到發起連線的網際網路主機的返回流量。Internet DMZ策略將第7層檢測與ACL定義的地址組相結合,以限制對特定主機、主機組或子網上的特定服務的訪問。要實現此目的,需要將指定服務的類對映巢狀在另一個類對映中,該類對映引用ACL來指定IP地址。
根據前面所述的策略,定義描述要在區域之間允許的流量的類對映和ACL。
必須使用服務的多個類對映,因為對兩個不同伺服器的訪問應用了不同的訪問策略。允許Internet主機透過DNS和HTTP連線到172.16.2.2,透過SMTP連線到172.16.2.3。請注意類對映的差異。指定服務的類對映使用match-any關鍵字以允許任何列出的服務。用於將ACL與服務類對映關聯的類對映使用match-all關鍵字來要求必須同時滿足類對映中的兩個條件才能允許流量:
configure terminal access-list 110 permit ip any host 172.16.2.2 access-list 111 permit ip any host 172.16.2.3 class-map type inspect match-any dns-http-class match protocol dns match protocol http class-map type inspect match-any smtp-class match protocol smtp class-map type inspect match-all dns-http-acl-class match access-group 110 match class-map dns-http-class class-map type inspect match-all smtp-acl-class match access-group 111 match class-map smtp-class
配置策略對映以檢查剛才定義的類對映上的流量:
configure terminal policy-map type inspect internet-dmz-policy class type inspect dns-http-acl-class inspect class type inspect smtp-acl-class inspect
配置Internet和DMZ區域,並將路由器介面分配給其各自區域。如果您在上一部分中設定了DMZ配置,請跳過該配置:
configure terminal zone security internet zone security dmz int fastethernet 0 zone-member security internet int fastethernet 1 zone-member security dmz
配置區域對並應用適當的策略對映。
注意:您目前只需配置網際網路DMZ區域對,即可檢查源自網際網路區域的通向DMZ區域的連線,如下所示:
configure terminal zone-pair security internet-dmz source internet destination dmz service-policy type inspect internet-dmz-policy
這將完成網際網路DMZ區域對上特定於地址的第7層檢查策略的配置。
下圖說明了伺服器客戶端策略的配置。
圖7:從伺服器區域到客戶端區域的服務檢查
伺服器客戶端策略對使用者定義的服務應用檢查。第7層檢測從伺服器區域應用到客戶端區域。這允許X Windows連線到從伺服器區域到客戶端區域的特定埠範圍,並允許返回流量。X Windows不是PAM中本地支援的協定,因此必須在PAM中定義使用者配置的服務,以便ZFW可以辨識和檢查相應的流量。
在IEEE網橋組中配置兩個或多個路由器介面以提供整合路由和橋接(IRB),從而在網橋組中的介面之間提供橋接,並透過網橋虛擬介面(BVI)路由到其他子網。透明防火牆策略對透過網橋的流量應用防火牆檢查,但不對透過BVI離開網橋組的流量應用防火牆檢查。檢查策略僅適用於透過網橋組的流量。因此,在此場景中,檢測僅應用於在客戶端和伺服器區域之間移動的流量,這些流量巢狀在專用區域內。在專用區域、公共區域和DMZ區域之間應用的策略僅在流量透過BVI離開網橋組時生效。當流量透過BVI從客戶端或伺服器區域離開時,不會呼叫透明防火牆策略。
使用使用者定義的條目為X Windows配置PAM。
X Windows使用者端(主控應用程式)會開啟連線,以從連線埠6900開始的範圍顯示使用者端(使用者工作的地方)的資訊。
每個額外的連線都使用連續的埠,因此如果客戶端在一個主機上顯示10個不同的會話,伺服器將使用埠6900-6909。因此,如果您檢查從6900到6909的埠範圍,則對6909以上的埠打開的連線將失敗:
configure terminal ip port-map user-Xwindows port tcp from 6900 to 6910
檢視PAM文檔以解決其他PAM問題,或檢視精細協定檢查文檔,瞭解有關PAM和Cisco IOS防火牆狀態檢查之間互操作性的詳細資訊。
根據前面所述的策略,定義描述要在區域之間允許的流量的類對映:
configure terminal class-map type inspect match-any Xwindows-class match protocol user-Xwindows
配置策略對映以檢查剛才定義的類對映上的流量:
configure terminal policy-map type inspect servers-clients-policy class type inspect Xwindows-class inspect
配置客戶端和伺服器區域,並將路由器介面分配給其各自區域。
如果您在Clients-Servers Policy Configuration部分中配置了這些區域和分配的介面,則可以跳到區域對定義。提供橋接IRB配置是為了實現完整性:
configure terminal bridge irb bridge 1 protocol ieee bridge 1 route ip zone security clients zone security servers int vlan 1 bridge-group 1 zone-member security clients int vlan 2 bridge-group 1 zone-member security servers
配置區域對並應用適當的策略對映。
注意:您目前只需要配置servers-clients區域對,便可以檢查源自servers區域中的到達客戶端區域的連線,如下所示:
configure terminal zone-pair security servers-clients source servers destination clients service-policy type inspect servers-clients-policy
這將完成servers-clients區域對中使用者定義的檢查策略的配置,以允許從伺服器區域到客戶端區域的X Windows連線。
圖8說明了客戶端-伺服器策略的配置。
圖8:從客戶端區域到伺服器區域的服務檢查
客戶端-伺服器策略比其他策略更簡單。第4層檢測從客戶端區域應用到伺服器區域。這允許從客戶端區域到伺服器區域的連線,並允許返回流量。第4層檢測具有防火牆配置簡便的優點,因為只需要一些規則即可允許大多數應用流量。但是,第4層檢測也有兩個主要缺點:
FTP或媒體服務等應用程式經常會從伺服器交涉到使用者端的另一個從屬通道。此功能通常包含在監控控制通道對話方塊並允許從屬通道的服務修復中。此功能在第4層檢測中不可用。
第4層檢測允許幾乎所有應用層流量。如果必須控制網路使用,以便僅允許少數應用透過防火牆,則必須在出站流量上配置ACL,以限制允許透過防火牆的服務。
兩個路由器介面都配置在IEEE網橋組中,因此此防火牆策略應用透明防火牆檢查。此策略應用於IEEE IP網橋組中的兩個介面。檢查策略僅適用於透過網橋組的流量。這說明了客戶端和伺服器區域巢狀在專用區域內的原因。
根據前面所述的策略,定義描述要在區域之間允許的流量的類對映:
configure terminal class-map type inspect match-any L4-inspect-class match protocol tcp match protocol udp match protocol icmp
配置策略對映以檢查剛才定義的類對映上的流量:
configure terminal policy-map type inspect clients-servers-policy class type inspect L4-inspect-class inspect
配置客戶端和伺服器區域並將路由器介面分配給其各自區域:
configure terminal zone security clients zone security servers interface vlan 1 zone-member security clients interface vlan 2 zone-member security servers
配置區域對並應用適當的策略對映。
注意:您目前只需配置clients-servers區域對,即可檢查源自clients區域的傳輸到servers區域的連線,如下所示:
configure terminal zone-pair security clients-servers source clients destination servers service-policy type inspect clients-servers-policy
這樣就完成了客戶端-伺服器區域對的第4層檢查策略的配置,以允許從客戶端區域到伺服器區域的所有TCP、UDP和ICMP連線。該策略不對從屬通道應用修復,但提供了簡單策略示例,以容納大多數應用連線。
資料網路通常能夠限制特定型別網路流量的傳輸速率,並限制較低優先順序的流量對更多業務關鍵流量的影響。Cisco IOS軟體透過流量策略提供此功能,可限制流量額定速率和突發流量。Cisco IOS軟體自Cisco IOS版本12.1(5)T起支援流量管制。
當您在流量從一個安全區域穿過防火牆到另一個安全區域時,為符合特定類對映定義的流量增加管制功能時,Cisco IOS軟體版本12.4(9)T為ZFW增加了速率限制功能。這樣便可以透過一個配置點來描述特定流量、應用防火牆策略並管制流量頻寬消耗。ZFW與基於介面的區別在於它只提供策略一致性操作的傳輸和策略違規操作的丟棄。ZFW無法標籤DSCP的流量。
ZFW只能以位元組/秒、資料包/秒為單位指定頻寬使用,並且不提供頻寬百分比。ZFW可以應用基於介面或不應用基於介面的。因此,如果需要其他功能,這些功能可以透過基於介面來應用。如果基於介面與防火牆一起使用,請確保策略不衝突。
ZFW策略將策略對映類對映中的流量限制為使用者定義的速率值,該值介於8,000和2,000,000,000位/秒之間,可配置的突發值範圍為1,000到512,000,000位元組。
ZFW策略透過策略對映中的另一行配置進行配置,該配置在策略操作之後應用:
policy-map type inspect private-allowed-policy class type inspect http-class inspect police rate [bps rate value <8000-2000000000>] burst [value in bytes <1000-512000000>]
ZFW策略還引入了會話控制,以限制與類對映匹配的策略對映中流量的會話計數。這會增加到當前功能中,以便為每個類對映應用DoS保護策略。實際上,這允許精細地控制應用於與任何穿過區域對的給定類對映匹配的會話的數量。如果在多個策略對映或區域對上使用相同的類對映,則可以在各種類對映應用上應用不同的會話限制。
當配置包含所需會話卷的引數對映時,將應用會話控制,然後將引數對映附加到策略對映下應用於類對映的檢查操作:
parameter-map type inspect my-parameters sessions maximum [1-2147483647] policy-map type inspect private-allowed-policy class type inspect http-class inspect my-parameters
引數對映只能應用於檢查操作,在傳遞或丟棄操作中不可用。
ZFW會話控制和管制活動可透過以下命令檢視:
show policy-map type inspect zone-pair
應用檢測為ZFW引入了附加功能。應用檢查策略應用在OSI模型的第7層,在該層中,使用者應用傳送和接收消息,使應用能夠提供有用的功能。某些應用程式可以提供不需要的或易受攻擊的功能,因此必須過濾與這些功能相關的消息,以限制應用程式服務上的活動。
Cisco IOS軟體ZFW提供以下應用服務的應用檢測和控制:
HTTP
SMTP
POP3
IMAP
Sun RPC
P2P應用流量
IM應用
應用檢測和控制(AIC)功能因服務而異。HTTP檢查可對多種型別的應用活動進行精細過濾,並提供限制傳輸大小、Web地址長度和瀏覽器活動的功能,以強制遵守應用行為標準並限制透過服務傳輸的內容型別。AIC for SMTP可以限制內容長度並強制執行協定合規性。POP3和IMAP檢查可幫助確保使用者使用安全身份驗證機制來防止使用者憑據受損。
應用檢測被配置為一組附加的應用特定類對映和策略對映,然後在檢測策略對映中定義應用服務策略時,將這些對映應用於當前檢測類對映和策略對映。
應用檢測可以應用於HTTP流量,以控制其他應用(例如IM、P2P檔案共用和隧道應用)不想要的HTTP服務埠使用,這些應用可以透過TCP 80重定向其他防火牆應用。
配置應用檢測類對映以描述違反允許的HTTP流量的流量:
! configure the actions that are not permitted class-map type inspect http match-any http-aic-cmap match request port-misuse any match req-resp protocol-violation ! define actions to be applied to unwanted traffic policy-map type inspect http http-aic-pmap class type insp http http-aic-cmap reset log ! define class-map for stateful http inspection class-map type inspect match-any http-cmap match protocol http ! define class-map for stateful inspection for other traffic class-map type inspect match-any other-traffic-cmap match protocol smtp match protocol dns match protocol ftp ! define policy-map, associate class-maps and actions policy-map type inspect priv-pub-pmap class type inspect http-cmap inspect service-policy http http-aic-pmap class type inspect other-traffic-cmap inspect
Cisco IOS軟體版本12.4(9)T引入了ZFW HTTP檢測功能的改進。Cisco IOS防火牆在Cisco IOS軟體版本12.3(14)T中導入HTTP應用程式檢查。當您增加以下內容時,Cisco IOS軟體版本12.4(9)T增強了當前功能:
能夠根據報頭名稱和報頭值允許、拒絕和監控請求和響應。這對於阻止帶有易受攻擊的報頭欄位的請求和響應非常有用。
能夠限制HTTP請求和響應報頭中不同元素的大小,如最大URL長度、最大報頭長度、最大報頭數、最大報頭行長度等。這對於防止緩衝區溢位很有用。
能夠阻止帶有多個相同型別標頭的請求和響應;例如,具有兩個內容長度標頭的請求。
能夠阻止具有非ASCII標頭的請求和響應。這對於防止使用二進位制和其他非ASCII字元將蠕蟲和其他惡意內容傳送到Web伺服器的各種攻擊非常有用。
可以將HTTP方法分組到使用者指定的類別,並靈活地阻止/允許/監控每個組。HTTP RFC允許使用有限的HTTP方法集。有些標準方法被認為是不安全的,因為它們可用於利用Web伺服器上的漏洞。許多非標準方法都有不良的安全記錄。
根據使用者配置的正規表示式阻止特定URI的方法。此功能使使用者能夠阻止自定義URI和查詢。
能夠使用使用者可自定義的字串欺騙報頭型別(特別是伺服器報頭型別)。這在攻擊者分析Web伺服器響應並獲取儘可能多的資訊,然後發起攻擊以利用特定Web伺服器中的弱點時非常有用。
如果一或多個HTTP引數值符合使用者以一般表示式輸入的值,則可以封鎖或發出HTTP連線的警示。一些可能的HTTP值上下文包括報頭、正文、使用者名稱、密碼、使用者代理、請求行、狀態行和解碼CGI變數。
HTTP應用檢測改進的配置示例假定網路簡單,如圖9所示。
圖9:應用檢測假定網路簡單
防火牆將流量分為兩個類別:
HTTP是分開的,以允許對Web流量進行特定檢查。這允許您在本文檔的第一部分中配置策略,在第二部分中配置HTTP應用程式檢查。您可以在本文檔的第三部分中為P2P和IM流量配置特定的類對映和策略對映。允許從專用區域到公共區域的連線。未提供從公共區域到專用區域的連線。
有關實施初始策略的完整配置,請參閱附錄C。
HTTP應用檢測(以及其他應用檢測策略)需要比基本第4層配置更複雜的配置。您必須配置第7層流量分類和策略,以辨識要控制的特定流量,並將所需操作應用於所需和不需要的流量。
HTTP應用檢測(類似於其他型別的應用檢測)只能應用於HTTP流量。因此,您必須為特定HTTP流量定義第7層類對映和策略對映,然後專門為HTTP定義第4層類對映,並將第7層策略應用於第4層策略對映中的HTTP檢查,如下所示:
!configure the layer-7 traffic characteristics: class-map type inspect http match-any http-l7-cmap match req-resp protocol-violation match request body length gt 4096 ! !configure the action to be applied to the traffic !matching the specific characteristics: policy-map type inspect http http-l7-pmap class type inspect http http-l7-cmap reset log ! !define the layer-4 inspection policy class-map type inspect match-all http-l4-cmap match protocol http ! !associate layer-4 class and layer-7 policy-map !in the layer-4 policy-map: policy-map type inspect private-allowed-policy class type inspect http-l4-cmap inspect service-policy http http-l7-pmap
所有這些HTTP應用檢測流量特性都在第7層類對映中定義:
報頭檢查命令能夠允許/拒絕/監控其報頭與已配置的正規表示式匹配的請求或響應。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6-HTTP_HDR_REGEX_MATCHED
命令用法:
match {request|response|req-resp} header regex <parameter-map-name>
使用案例示例
parameter-map type regex non_ascii_regex pattern “[^\x00-\x80]” class-map type inspect http non_ascii_cm match req-resp header regex non_ascii_regex policy-map type inspect http non_ascii_pm class type inspect http non_ascii_cm reset
Header length inspection —此命令將檢查請求或響應報頭的長度,並在報頭長度超出配置的閾值時應用相應的操作。允許或重置操作。增加log操作會導致系統日誌消息:
APPFW-4- HTTP_HEADER_LENGTH
命令用法:
match {request|response|req-resp} header length gt <bytes>
使用案例示例
配置http appfw策略以阻止報頭長度大於4096位元組的請求和響應。
class-map type inspect http hdr_len_cm match req-resp header length gt 4096 policy-map type inspect http hdr_len_pm class type inspect http hdr_len_cm reset
Header count inspection —此命令將驗證請求/響應中的報頭行(欄位)的數量,並在報頭行數超出配置的閾值時應用相應的操作。允許或重置操作。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_HEADER_COUNT
命令用法:
match {request|response|req-resp} header count gt <number>
使用案例示例
配置http appfw策略以阻止具有超過16個報頭欄位的請求。
class-map type inspect http hdr_cnt_cm match request header count gt 16 policy-map type inspect http hdr_cnt_pm class type inspect http hdr_cnt_cm reset
Header field inspection —使用此命令可以允許/拒絕/監控包含特定HTTP報頭欄位和值的請求/響應。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_HDR_FIELD_REGEX_MATCHED
命令用法:
match {request|response|req-resp} header <header-name>
使用案例示例
配置HTTP應用程式檢查策略以阻止間諜軟體/廣告軟體:
parameter-map type regex ref_regex pattern “\.delfinproject\.com” pattern “\.looksmart\.com” parameter-map type regex host_regex pattern “secure\.keenvalue\.com” pattern “\.looksmart\.com” parameter-map type regex usragnt_regex pattern “Peer Points Manager” class-map type inspect http spy_adwr_cm match request header refer regex ref_regex match request header host regex host_regex match request header user-agent regex usragnt_regex policy-map type inspect http spy_adwr_pm class type inspect http spy_adwr_cm reset
Header field length inspection —使用此命令可以限制報頭欄位行的長度。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_HDR_FIELD_LENGTH
命令用法:
match {request|response|req-resp} header <header-name> length gt <bytes>
使用案例示例
配置http appfw策略以阻止其cookie和user-agent欄位長度分別超過256和128的請求。
class-map type inspect http hdrline_len_cm match request header cookie length gt 256 match request header user-agnet length gt 128 policy-map type inspect http hdrline_len_pm class type inspect http hdrline_len_cm reset
Inspection of header field repetition —此命令將檢查請求或響應是否具有重複的報頭欄位。允許或重設動作可套用至符合類別對應條件的要求或回應。啟用時,log操作會導致系統日誌消息:
APPFW-6- HTTP_REPEATED_HDR_FIELDS
命令用法:
match {request|response|req-resp} header <header-name>
使用案例示例
配置http appfw策略以阻止具有多個content-length報頭行的請求或響應。這是用於防止會話走私的最有用的功能之一。
class-map type inspect http multi_occrns_cm match req-resp header content-length count gt 1 policy-map type inspect http multi_occrns_pm class type inspect http multi_occrns_cm reset
APPFW-6-HTTP_METHOD
命令用法:
match request method <method>
使用案例示例
配置http appfw策略,將HTTP方法分為三類:安全、不安全和webdav。下表顯示這些專案。配置以下操作:
允許所有安全方法而不記錄日誌。
所有不安全的方法都允許與記錄一起使用。
所有Webdav方法均被日誌阻止。
安全 |
不安全 |
WebDAV |
---|---|---|
GET、HEAD、選項 |
POST、PUT、連線、跟蹤 |
BCOPY、BDELETE、BMOVE |
http policy: class-map type inspect http safe_methods_cm match request method get match request method head match request method option class-map type inspect http unsafe_methods_cm match request method post match request method put match request method connect match request method trace class-map type inspect http webdav_methods_cm match request method bcopy match request method bdelete match request method bmove policy-map type inspect http methods_pm class type inspect http safe_methods_cm allow class type inspect http unsafe_methods_cm allow log class type inspect http webdav_methods_cm reset log
URI inspection —使用此命令可以允許/拒絕/監控URI匹配已配置常規檢查的請求。這使使用者能夠阻止自定義URL和查詢。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_URI_REGEX_MATCHED
命令用法:
match request uri regex <parameter-map-name>
使用案例示例
配置http appfw策略以阻止其URI與以下任意正規表示式匹配的請求:
.*cmd.exe
.*性
.*賭博
parameter-map type regex uri_regex_cm pattern “.*cmd.exe” pattern “.*sex” pattern “.*gambling” class-map type inspect http uri_check_cm match request uri regex uri_regex_cm policy-map type inspect http uri_check_pm class type inspect http uri_check_cm reset
URI length inspection —此命令將驗證在請求中傳送的URI的長度,並在其長度超出配置的閾值時應用配置的操作。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_URI_LENGTH
命令用法:
match request uri length gt <bytes>
使用案例示例
配置http appfw策略以在請求的URI長度超過3076位元組時發出警報。
class-map type inspect http uri_len_cm match request uri length gt 3076 policy-map type inspect http uri_len_pm class type inspect http uri_len_cm log
引數檢查—此命令可允許、拒絕或監控其引數(引數)符合已設定之一般檢查的要求。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_ARG_REGEX_MATCHED
命令用法:
match request arg regex <parameter-map-name>
配置http appfw策略以阻止其引數與以下任意正規表示式匹配的請求:
.*編碼
.*攻擊
parameter-map type regex arg_regex_cm pattern “.*codered” pattern “.*attack” class-map type inspect http arg_check_cm match request arg regex arg_regex_cm policy-map type inspect http arg_check_pm class type inspect http arg_check_cm reset
Argument length inspection —此命令將驗證在請求中傳送的引數的長度,並在其長度超出配置的閾值時應用配置的操作。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_ARG_LENGTH
命令用法:
match request arg length gt <bytes>
使用案例示例
配置http appfw策略,以便在請求的引數長度超過512個位元組時發出警報。
class-map type inspect http arg_len_cm match request arg length gt 512 policy-map type inspect http arg_len_pm class type inspect http arg_len_cm log
Body inspection —此CLI允許使用者指定要與請求或響應正文匹配的正規表示式的清單。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_BODY_REGEX_MATCHED
命令用法:
match {request|response|reg-resp} body regex <parameter-map-name>
使用案例示例
配置http appfw以阻止其正文包含模式。*[Aa][Tt][Tt][Aa][Cc][Kk]的響應
parameter-map type regex body_regex pattern “.*[Aa][Tt][Tt][Aa][Cc][Kk]” class-map type inspect http body_match_cm match response body regex body_regex policy-map type inspect http body_match_pm class type inspect http body_match_cm reset
正文(內容)長度檢查-此命令驗證透過請求或響應傳送的消息的大小。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-4- HTTP_CONTENT_LENGTH
命令用法:
match {request|response|req-resp} body length lt <bytes> gt <bytes>
使用案例示例
配置http appfw策略以阻止在請求或響應中攜帶超過10K位元組消息的http會話。
class-map type inspect http cont_len_cm match req-resp header content-length gt 10240 policy-map type inspect http cont_len_pm class type inspect http cont_len_cm reset
狀態行檢查—該命令允許使用者指定要與響應的狀態行匹配的正規表示式的清單。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6-HTTP_STLINE_REGEX_MATCHED
命令用法:
match response status-line regex <class-map-name>
使用案例示例
配置http appfw以在每次嘗試訪問禁止頁時記錄警報。禁止頁通常包含403狀態代碼,並且狀態行類似於HTTP/1.0 403 page forbidden\r\n。
parameter-map type regex status_line_regex pattern “[Hh][Tt][Tt][Pp][/][0-9][.][0-9][ \t]+403” class-map type inspect http status_line_cm match response status-line regex status_line_regex policy-map type inspect http status_line_pm class type inspect http status_line_cm log
Content-type inspection —此命令將驗證消息報頭的內容型別是否在支援的內容型別清單中。它也會驗證標頭的內容型別是否與訊息資料或實體主體部分的內容相符。如果配置了關鍵字不匹配,該命令將驗證響應消息的內容型別與已接受請求消息的欄位值是否匹配。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致相應的syslog消息:
APPFW-4- HTTP_CONT_TYPE_VIOLATION APPFW-4- HTTP_CONT_TYPE_MISMATCH APPFW-4- HTTP_CONT_TYPE_UNKNOWN
命令用法:
match {request|response|req-resp} header content-type [mismatch|unknown|violation]
使用案例示例
配置http appfw策略以阻止傳輸具有未知內容型別的請求和響應的http會話。
class-map type inspect http cont_type_cm match req-resp header content-type unknown policy-map type inspect http cont_type_pm class type inspect http cont_type_cm reset
Port-misuse inspection —此命令用於防止其他應用程式(如IM、P2P、隧道等)誤用http埠(80)。您可以對匹配類對映條件的請求或響應應用允許或重置操作。增加log操作會導致相應的syslog消息:
APPFW-4- HTTP_PORT_MISUSE_TYPE_IM APPFW-4-HTTP_PORT_MISUSE_TYPE_P2P APPFW-4-HTTP_PORT_MISUSE_TYPE_TUNNEL
命令用法:
match request port-misuse {im|p2p|tunneling|any}
使用案例示例
配置http appfw策略以阻止為IM應用程式誤用的http會話。
class-map type inspect http port_misuse_cm match request port-misuse im policy-map type inspect http port_misuse_pm class type inspect http port_misuse_cm reset
Strict-http inspection —此命令將對HTTP請求和響應啟用嚴格的協定一致性檢查。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-4- HTTP_PROTOCOL_VIOLATION
命令用法:
match req-resp protocol-violation
使用案例示例
配置http appfw策略以阻止違反RFC 2616的請求或響應:
class-map type inspect http proto-viol_cm match req-resp protocol-violation policy-map type inspect http proto-viol_pm class type inspect http proto-viol_cm reset
Transfer-Encoding Inspection —使用此命令可以允許、拒絕或監控其傳輸編碼型別與已配置的型別匹配的請求/響應。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-6- HTTP_TRANSFER_ENCODING
命令用法:
match {request|response|req-resp} header transfer-encoding {regex <parameter-map-name> |gzip|deflate|chunked|identity|all}
使用案例示例
配置http appfw策略以阻止具有壓縮型別編碼的請求或響應。
class-map type inspect http trans_encoding_cm match req-resp header transfer-encoding type compress policy-map type inspect http trans_encoding_pm class type inspect http trans_encoding_cm reset
Java Applet inspection —此命令將檢查響應中是否包含Java小程式,並在檢測到小程式時應用已配置的操作。允許或重設動作可套用至符合類別對應條件的要求或回應。增加log操作會導致系統日誌消息:
APPFW-4- HTTP_JAVA_APPLET
命令用法:
match response body java-applet
使用案例示例
配置http appfw策略以阻止java applet。
class-map type inspect http java_applet_cm match response body java-applet policy-map type inspect http java_applet_pm class type inspect http java_applet_cm reset
Cisco IOS軟體在Cisco IOS軟體版本12.4(4)T中首次提供IM應用程式控制的支援。ZFW的初始版本不支援ZFW介面中的IM應用程式。如果需要使用IM應用程式控制,則使用者無法移轉到ZFW組態介面。Cisco IOS軟體版本12.4(9)T引入了對IM檢查的ZFW支援,支援Yahoo!Messenger (YM)、MSN Messenger (MSN)和AOL Instant Messenger (AIM)。 Cisco IOS軟體版本12.4(9)T是為P2P檔案共用應用程式提供本地Cisco IOS防火牆支援的Cisco IOS軟體的第一個版本。
IM和P2P檢測都為應用流量提供第4層和第7層策略。這意味著ZFW可以提供基本的狀態檢測來允許或拒絕流量,以及對各種協定中的特定活動進行精細的第7層控制,從而允許某些應用活動,而拒絕其他應用活動。
SDM 2.2在其防火牆配置部分引入了P2P應用程式控制。SDM應用了基於網路的應用辨識(NBAR)和QoS策略來檢測並管制P2P應用活動到零的線路速率,並阻止所有P2P流量。這引發了以下問題:CLI使用者(預期Cisco IOS防火牆CLI中的P2P支援)無法在CLI中配置P2P阻止,除非他們知道必要的NBAR/QoS配置。Cisco IOS軟體版本12.4(9)T在ZFW CLI中引入了本地P2P控制,以利用NBAR檢測P2P應用活動。此軟體版本支援多種P2P應用協定:
BitTorent
電子驢
FastTrack
格努泰拉
KaZaA / KaZaA2
WinMX
P2P應用尤其難以檢測,這是埠跳變行為和其他避免檢測的技巧的結果,以及頻繁更改和更新修改協定行為的P2P應用所帶來的問題。ZFW將本地防火牆狀態檢測與NBAR的流量辨識功能相結合,在ZFW的CPL配置介面中提供P2P應用控制。NBAR提供兩個卓越的優勢:
可選的基於啟發式的應用辨識,用於辨識複雜且難以檢測行為的應用
提供更新機制以跟上協定更新和修改的可擴展基礎設施
如前所述,P2P檢測和控制提供第4層狀態檢測和第7層應用控制。如果對本地應用服務埠的檢查足夠,則第4層檢查的配置與其他應用服務類似:
class-map type inspect match-any my-p2p-class match protocol [bittorrent | edonkey | fasttrack | gnutella | kazaa | kazaa2 | winmx ] [signature (optional)] ! policy-map type inspect private-allowed-policy class type inspect my-p2p-class [drop | inspect | pass]
注意match protocol [service-name]中的附加簽名選項。當在match protocol語句末尾增加簽名選項時,NBAR啟發式方法應用於流量以搜尋指示特定P2P應用活動的流量中的通知。這包括埠跳變和應用行為中的其他更改,以避免流量檢測。這種級別的流量檢測是以提高CPU使用率和降低網路吞吐量能力為代價的。如果未應用簽名選項,則不會應用基於NBAR的啟發式分析來檢測埠跳變行為,並且不會將CPU利用率影響到相同的程度。
本地服務檢查的缺點是,如果應用程式跳到非標準的源埠和目標埠,或者如果應用程式更新為對無法辨識的埠號開始操作,則本地服務檢查無法保持對P2P應用程式的控制:
應用程式 | 本地埠(由12.4(15)T PAM清單辨識) |
---|---|
位元倫 | TCP 6881-6889 |
edonkey | TCP 4662 |
fasttrack | TCP 1214 |
格努泰拉 | TCP 6346-6349 TCP 6355,5634 UDP 6346-6348 |
哈薩阿2 | 取決於PAM |
winmx | TCP 6699 |
如果您希望允許(檢查)P2P流量,則可能需要提供其他配置。某些應用程式可以使用多個P2P網路,或者實施在防火牆配置中可能需要容納的特定行為以允許應用程式工作:
BitTorrent使用者端通常透過在某些非標準連線埠上執行的http與追蹤器(對等目錄伺服器)通訊。這通常是TCP 6969,但您需要檢查特定於Torrent的跟蹤埠。如果您希望允許BitTorrent,則適應附加埠的最佳方法是將HTTP配置為匹配協定之一,並使用ip port-map命令將TCP 6969增加到HTTP:
ip port-map http port tcp 6969
您需要將http和bittorrent定義為應用於類對映的匹配條件。
eDonkey似乎會啟動同時檢測為eDonkey和Gnutella的連線。
KaZaA檢測完全取決於NBAR簽名檢測。
第7層(應用)檢測透過辨識和應用特定於服務的操作(例如選擇性地阻止或允許檔案搜尋、檔案傳輸和文本聊天功能)來增強第4層檢測。特定於服務的功能因服務而異。
P2P應用檢測類似於HTTP應用檢測:
!configure the layer-7 traffic characteristics: class-map type inspect [p2p protocol] match-any p2p-l7-cmap match action ! !configure the action to be applied to the traffic !matching the specific characteristics: policy-map type inspect [p2p protocol] p2p-l7-pmap class type inspect p2p p2p-l7-cmap [ reset | allow ] log ! !define the layer-4 inspection policy class-map type inspect match-all p2p-l4-cmap match protocol [p2p protocol] ! !associate layer-4 class and layer-7 policy-map !in the layer-4 policy-map: policy-map type inspect private-allowed-policy class type inspect p2p-l4-cmap [ inspect | drop | pass ] service-policy p2p p2p-l7-pmap
P2P應用檢測為第4層檢測支援的應用子集提供特定於應用的功能:
edonkey
fasttrack
格努泰拉
哈薩阿2
這些應用程式都提供不同的應用程式特定符合條件選項:
edonkey
router(config)#class-map type inspect edonkey match-any edonkey-l7-cmap router(config-cmap)#match ? file-transfer Match file transfer stream flow Flow based QoS parameters search-file-name Match file name text-chat Match text-chat
fasttrack
router(config)#class-map type inspect fasttrack match-any ftrak-l7-cmap router(config-cmap)#match ? file-transfer File transfer stream flow Flow based QoS parameters
格努泰拉
router(config)#class-map type inspect gnutella match-any gtella-l7-cmap router(config-cmap)#
哈薩阿2
router(config)#class-map type inspect kazaa2 match-any kazaa2-l7-cmap router(config-cmap)#match ? file-transfer Match file transfer stream flow Flow based QoS parameters
新的P2P協定定義或對當前P2P協定的更新可以透過NBAR的動態pdlm更新功能載入。以下是用於載入新PDLM的配置命令:
ip nbar pdlm <file-location>
新的協定可以在class type inspect的match protocol命令中提供。如果新的P2P協定具有服務(子協定),則可以使用新的第7層檢查類對映型別以及第7層匹配條件。
Cisco IOS軟體版本12.4(4)T引入IM應用程式偵測與控制。ZFW在12.4(6)T中未引入IM支援,因此使用者無法在同一防火牆策略中應用IM控制和ZFW,因為ZFW和舊式防火牆功能不能在給定介面上共存。
Cisco IOS軟體版本12.4(9)T支援以下IM服務的狀態檢測和應用控制:
AOL Instant Messenger
MSN Messenger
雅虎!Messenger
IM檢查與大多數服務略有不同,因為IM檢查控制著每個給定服務對特定主機組的訪問。IM服務通常依賴於相對固定的目錄伺服器組,客戶端必須能夠聯絡這些目錄伺服器才能訪問IM服務。從協定或服務的角度來看,IM應用往往很難控制。控制這些應用程式的最有效方法是限制對固定IM伺服器的訪問。
IM檢測和控制提供第4層狀態檢測
和第7層應用控制。
第4層檢測的配置與其他應用服務類似:
class-map type inspect match-any my-im-class match protocol [aol | msnmsgr | ymsgr ] ! policy-map type inspect private-allowed-policy class type inspect my-im-class [drop | inspect | pass
IM應用程式可以透過多個埠聯絡其伺服器以維護其功能。若要允許具有檢查動作的特定IM服務,您不需要伺服器清單來定義允許存取IM服務之伺服器的許可權。但是,當您配置指定給定IM服務(例如AOL Instant Messenger)的類對映並在關聯的策略對映中應用丟棄操作時,可能會導致IM客戶端嘗試找到允許連線到Internet的不同埠。如果不想允許連線到指定的服務,或者要將IM服務功能限制為文本聊天,則必須定義伺服器清單,以便ZFW可以辨識與IM應用程式相關的流量:
!configure the server-list parameter-map: parameter-map type protocol-info <name> server name <name> server ip a.b.c.d server ip range a.b.c.d a.b.c.d
例如,Yahoo IM伺服器清單定義如下:
parameter-map type protocol-info ymsgr-pmap server name scs.msg.example.com server name scsd.msg.example.com server ip 10.0.77.88 server ip range 172.16.0.77 172.16.0.99
您需要將伺服器清單套用至通訊協定定義:
class-map type inspect match-any ym-l4-cmap match protocol ymsgr ymsgr-pmap
您必須配置ip domain lookup和ip name-server ip.ad.re.ss命令才能啟用名稱解析。
IM伺服器名稱是相當動態的。您需要定期檢查已配置的IM伺服器清單是否完整和正確。
第7層(應用)檢測透過辨識和應用特定於服務的操作(例如選擇性地阻止或允許文本聊天功能以及拒絕其他服務功能)來增強第4層檢測的功能。
IM應用檢測目前提供區分文本聊天活動和所有其他應用服務的功能。為了將IM活動限制為文本聊天,請配置第7層策略:
class-map type inspect ymsgr match-any ymsgr-text-cmap match service text-chat class-map type inspect ymsgr match-any ymsgr-default-cmap match service any policy-map type inspect im ymsgr-l7-pmap class type inspect im ymsgr-text-cmap allow [log] class type inspect im ymsgr-text-cmap reset [log]
將第7層策略應用到Yahoo!之前配置的Messenger策略:
class-map type inspect match-any my-im-class match protocol ymsgr ! policy-map type inspect private-allowed-policy class type inspect my-im-class inspect service-policy im ymsgr-l7-pmap
ZFW提供URL過濾功能,將網路內容的訪問限制為路由器上定義的白名單或黑名單所指定的訪問,或者將域名轉發到URL過濾伺服器以驗證對特定域的訪問。在Cisco IOS軟體版本12.4(6)T到12.4(15)T的ZFW URL篩選會套用為額外的原則動作,類似於應用程式檢查。
對於基於伺服器的URL過濾,您必須定義用於描述urlfilter伺服器配置的引數對映:
parameter-map type urlfilter websense-parmap server vendor [n2h2 | websense] 10.1.1.1
如果偏好使用靜態白名單或黑名單,您可以定義專門允許或拒絕的域或子域清單,而反向操作將應用於與清單不匹配的流量:
parameter-map type urlfilter websense-parmap exclusive-domain deny .example.com exclusive-domain permit .cisco.com
如果在獨佔域定義中使用拒絕選項定義URL黑名單,則允許所有其他域。如果定義了任何「允許」定義,則必須明確指定允許的所有域,類似於IP訪問控制清單的功能。
設定與HTTP流量匹配的類對映:
class-map type inspect match-any http-cmap match protocol http
定義用於將類對映與檢查和urlfilter操作關聯的策略對映:
policy-map type inspect http-filter-pmap class type inspect http-cmap inspect urlfilter websense-parmap
這將配置與URL過濾伺服器通訊的最低要求。有數個選項可用來定義其他URL過濾行為。
某些網路部署想要對某些主機或子網應用URL過濾,而忽略對其他主機的URL過濾。例如,在映像9中,私有區域中的所有主機都必須由URL過濾伺服器檢查HTTP流量,但特定主機192.168.1.101除外。
圖10:URL過濾示例拓撲
如果定義兩個不同的類對映可以完成此操作:
一個類對映,僅匹配接收URL過濾的大型主機組的HTTP流量。
一個類對映用於較小的主機組,這些主機不接收URL過濾。第二個類對映匹配HTTP流量以及免除URL過濾策略的主機清單。
兩個類對映都配置在策略對映中,但只有一個類對映接收urlfilter操作:
class-map type inspect match-any http-cmap match protocol http class-map type inspect match-all http-no-urlf-cmap match protocol http match access-group 101 ! policy-map type inspect http-filter-pmap class type inspect http-no-urlf-cmap inspect class type inspect http-cmap inspect urlfilter websense-parmap ! access-list 101 permit ip 192.168.1.101 any
如果大多數網路安全工程師將路由器的管理介面(例如,SSH、Telnet、HTTP、HTTPS、SNMP等)暴露於公共Internet,他們可能會感到不舒服,而且在某些情況下,還需要控制路由器的LAN訪問。Cisco IOS軟體提供許多選項來限制對各種介面的存取,包括網路基礎保護(NFP)功能系列、各種管理介面的存取控制機制以及ZFW的自我區域。您必須檢閱其他功能,例如VTY存取控制、管理平面保護和SNMP存取控制,才能判斷哪一種路由器控制功能組合最適合您的特定應用程式。
通常,NFP功能系列最適合控制發往路由器自身的流量。有關使用NFP功能保護路由器的資訊,請參閱Cisco IOS軟體的控制層面安全概述。
如果您決定應用ZFW來控制進出路由器本身IP地址的流量,您必須瞭解防火牆的預設策略和功能與可用於中轉流量的策略和功能不同。中轉流量是指源和目標IP地址與應用於任何路由器介面的任何IP地址都不匹配的網路流量,並且該流量不會導致路由器傳送網路控制消息(例如ICMP TTL過期或網路/主機不可達消息)。
ZFW對區域之間移動的流量應用預設的「拒絕所有」策略,但如一般規則中所述,直接流到路由器介面地址的任何區域中的流量均被隱式允許。這可以確保將區域防火牆配置應用於路由器時,與路由器管理介面的連通性得以保持。如果同一deny-all策略直接影響到路由器的連線,則在路由器上配置區域之前,必須應用完整的管理策略配置。如果策略實施不當或應用順序錯誤,這可能會中斷管理連線。
當介面配置為區域成員時,連線到介面的主機將包含在該區域中。但是,進出路由器介面IP地址的流量不受區域策略控制(圖10的注意事項中描述的情況除外)。相反,當配置ZFW時,路由器上的所有IP介面會自動成為自身區域的一部分。要控制從路由器上的不同區域移動到路由器介面的IP流量,必須應用策略來阻止或允許/檢查區域與路由器自身區域之間的流量,反之亦然(請參見映像11)。
圖11:在網路區域和路由器自身區域之間應用策略
雖然路由器在所有區域和自身區域之間提供預設允許策略,但如果從任何區域到自身區域配置了策略,並且沒有從自身到路由器的使用者可配置的介面連線區域配置策略,則所有源自路由器的流量在返迴路由器時都會遇到connected-zone to self-zone策略,並被阻止。因此,必須檢查源自路由器的流量以允許其返回自身區域。
注意:Cisco IOS軟體始終使用與最接近目標主機的介面關聯的IP地址傳輸資料流,例如syslog、tftp、telnet和其他控制平面服務,並使此資料流受自身區域防火牆策略限制。但是,如果服務使用包括(但不限於)logging source-interface [type number] 、ip tftp source-interface [type number] 、和ip telnet source-interface [type number]在內的命令將特定介面定義為源介面,則流量將受制於自身區域。
注意:某些服務(尤其是路由器IP語音服務)使用的介面是臨時的或不可配置的介面,不能將其分配給安全區域。如果流量無法與配置的安全區域關聯,則這些服務無法正常工作。
與可用於中轉流量區域對的策略相比,自區域策略的功能有限:
與典型的有狀態檢測一樣,路由器生成的流量僅限於H.323的TCP、UDP、ICMP和複雜協定檢測。
「應用檢查」不適用於自帶區域策略。
無法在自身區域策略上配置會話和速率限制。
在大多數情況下,路由器管理服務需要以下訪問策略:
拒絕所有Telnet連線,因為Telnet的明文協定很容易暴露使用者憑證和其他敏感資訊。
允許來自任何區域中任何使用者的SSH連線。SSH對使用者憑證和會話資料進行加密,從而防止惡意使用者使用資料包捕獲工具監聽使用者活動並危害使用者憑證或敏感資訊(如路由器配置)。SSH第2版提供更強大的保護,並解決SSH第1版固有的特定漏洞。
如果專用區域值得信任,則允許從專用區域到路由器的HTTP連線。否則,如果私有區域可能使惡意使用者危害資訊,HTTP不會使用加密來保護管理流量,並且可能會洩露敏感資訊(如使用者憑證或配置)。
允許來自任何區域的HTTPS連線。與SSH類似,HTTPS加密會話資料和使用者憑證。
限制對特定主機或子網的SNMP訪問。SNMP可用於修改路由器配置和顯示配置資訊。SNMP必須在各種社群上配置訪問控制。
阻止從公共Internet到專用區域地址的ICMP請求(假定專用區域地址是可路由的)。如果需要,可以為ICMP流量暴露一個或多個公有地址,以進行網路故障排除。有若干ICMP攻擊可用於耗盡路由器資源或通告網路拓撲和架構。
路由器可以應用此類策略,並為必須控制的每個區域增加兩個區域對。傳入或傳出路由器自身區域的流量的每個區域對必須按相反方向的相應策略進行匹配,除非流量不是源自相反方向。可以針對入站和出站區域對分別應用一個策略對映,以描述所有流量,也可以為每個區域對應用特定的策略對映。每個策略對映的特定區域對的配置提供了檢視與每個策略對映相匹配的活動的粒度。
在具有SNMP管理站172.17.100.11和TFTP伺服器172.17.100.17的網路示例中,此輸出提供了整個管理介面訪問策略的示例:
class-map type inspect match-any self—service-cmap match protocol tcp match protocol udp match protocol icmp match protocol h323 ! class-map type inspect match-all to-self-cmap match class-map self—service-cmap match access-group 120 ! class-map type inspect match-all from-self-cmap match class-map self—service-cmap ! class-map type inspect match-all tftp-in-cmap match access-group 121 ! class-map type inspect match-all tftp-out-cmap match access-group 122 ! policy-map type inspect to-self-pmap class type inspect to-self-cmap inspect class type inspect tftp-in-cmap pass ! policy-map type inspect from-self-pmap class type inspect from-self-cmap inspect class type inspect tftp-out-cmap pass ! zone security private zone security internet zone-pair security priv-self source private destination self service-policy type inspect to-self-pmap zone-pair security net-self source internet destination self service-policy type inspect to-self-pmap zone-pair security self-priv source self destination private service-policy type inspect from-self-pmap zone-pair security self-net source self destination internet service-policy type inspect from-self-pmap ! interface FastEthernet 0/0 ip address 172.16.100.10 zone-member security internet ! interface FastEthernet 0/1 ip address 172.17.100.10 zone-member security private ! access-list 120 permit icmp 172.17.100.0 0.0.0.255 any access-list 120 permit icmp any host 172.17.100.10 echo access-list 120 deny icmp any any access-list 120 permit tcp 172.17.100.0 0.0.0.255 host 172.17.100.10 eq www access-list 120 permit tcp any any eq 443 access-list 120 permit tcp any any eq 22 access-list 120 permit udp any host 172.17.100.10 eq snmp access-list 121 permit udp host 172.17.100.17 host 172.17.100.10 access-list 122 permit udp host 172.17.100.10 host 172.17.100.17
遺憾的是,自區域策略不提供檢查TFTP傳輸的功能。因此,如果TFTP必須透過防火牆,則防火牆必須向TFTP伺服器傳送和傳送所有流量。
如果路由器終止IPSec VPN連線,您還必須定義策略以傳遞IPSec ESP、IPSec AH、ISAKMP和NAT-T IPSec (UDP 4500)。這取決於根據您使用的服務需要哪些服務。除上述策略外,還可以應用此下一個策略。注意對策略對映的更改,其中已使用pass操作插入VPN流量的類對映。通常,加密流量是可信任的,除非您的安全策略規定必須允許與指定終端之間的加密流量。
class-map type inspect match-all crypto-cmap match access-group 123 ! policy-map type inspect to-self-pmap class type inspect crypto-cmap pass class type inspect to-self-cmap inspect class type inspect tftp-in-cmap pass ! policy-map type inspect from-self-pmap class type inspect crypto-cmap pass class type inspect from-self-cmap inspect class type inspect tftp-out-cmap pass ! access-list 123 permit esp any any access-list 123 permit udp any any eq 4500 access-list 123 permit ah any any access-list 123 permit udp any any eq 500
有關提供配置示例和使用指南的應用程式說明,請參閱思科廣域應用服務發行版本註釋(軟體版本4.0.13) -軟體版本4.0.13的新功能
ZFW引入了新命令,以便檢視策略配置和監控防火牆活動。
顯示區域說明和指定區域中包含的介面:
show zone security [<zone-name>]
當區域名稱不包含時,該命令將顯示所有已配置區域的資訊。
Router#show zone security z1 zone z1 Description: this is test zone1 Member Interfaces: Ethernet0/0
顯示連線到區域對的源區域、目標區域和策略:
show zone-pair security [source <source-zone-name>] [destination <destination-zone-name>]
如果未指定源或目標,則會顯示包含源、目標和相關策略的所有區域對。如果僅提及源/目標區域,則會顯示包含此區域作為源/目標的所有區域對。
Router#show zone-pair security zone-pair name zp Source-Zone z1 Destination-Zone z2 service-policy p1
顯示指定的策略對映:
show policy-map type inspect [<policy-map-name> [class <class-map-name]]
如果未指定策略對映的名稱,則將顯示所有型別為inspect的策略對映(以及包含子型別的第7層策略對映)。
Router#show policy-map type inspect p1 Policy Map type inspect p1 Class c1 Inspect
顯示指定區域對的運行時檢查型別策略對映統計資訊。
show policy-map type inspect zone-pair [zone-pair-name] [sessions]
如果未提及區域對名稱,則會顯示所有區域對的策略對映。
sessions選項顯示指定區域對的策略對映應用程式建立的檢查會話。
Router#show policy-map type inspect zone-pair zp Zone-pair: zp Service-policy : p1 Class-map: c1 (match-all) Match: protocol tcp Inspect Session creations since subsystem startup or last reset 0 Current session counts (estab/half-open/terminating) [0:0:0] Maxever session counts (estab/half-open/terminating) [0:0:0] Last session created never Last statistic reset never Last session creation rate 0 Last half-open session total 0 Class-map: c2 (match-all) Match: protocol udp Pass 0 packets, 0 bytes Class-map: class-default (match-any) Match: any Drop 0 packets, 0 bytes
urlfilter關鍵字顯示與指定的策略對映(或未指定區域對名稱時顯示所有目標上的策略對映)相關的urlfilter統計資訊:
show policy-map type inspect zone-pair [zone-pair-name] [urlfilter [cache]]
當同時指定cache關鍵字和urlfilter時,它會顯示urlfilter快取(屬於IP地址)。
檢查策略對映的show policy-map命令總結:
show policy-map type inspect inspect { <policy name> [class <class name>] | zone-pair [<zone-pair name>] [sessions | urlfilter cache] }
ZFW提供DoS保護,以提醒網路工程師注意網路活動的劇烈變化,並減少不需要的活動,從而降低網路活動變化的影響。ZFW為每個策略對映的類對映維護一個單獨的計數器。因此,如果一個類對映用於兩個不同區域對的策略對映,將應用兩組不同的DoS保護計數器。
在12.4(11)T之前的Cisco IOS軟體版本中,ZFW預設提供DoS攻擊緩解。預設DoS保護行為隨Cisco IOS軟體版本12.4(11)T而更改。
有關TCP SYN DOS攻擊的詳細資訊,請參閱定義用於防範TCP SYN拒絕服務攻擊的策略。
ip subnet-zero ip cef ! bridge irb ! interface FastEthernet0 ip address 172.16.1.88 255.255.255.0 duplex auto speed auto ! interface FastEthernet1 ip address 172.16.2.1 255.255.255.0 duplex auto speed auto ! interface FastEthernet2 switchport access vlan 2 ! interface FastEthernet3 switchport access vlan 2 ! interface FastEthernet4 switchport access vlan 1 ! interface FastEthernet5 switchport access vlan 1 ! interface FastEthernet6 switchport access vlan 1 ! interface FastEthernet7 switchport access vlan 1 ! interface Vlan1 no ip address bridge-group 1 ! interface Vlan2 no ip address bridge-group 1 ! interface BVI1 ip address 192.168.1.254 255.255.255.0 ip route-cache flow ! ip classless ip route 0.0.0.0 0.0.0.0 172.16.1.1 ! bridge 1 protocol ieee bridge 1 route ip ! end
ip subnet-zero ip cef ! ip port-map user-Xwindows port tcp from 6900 to 6910 ! class-map type inspect match-any L4-inspect-class match protocol tcp match protocol udp match protocol icmp class-map type inspect match-any L7-inspect-class match protocol ssh match protocol ftp match protocol pop match protocol imap match protocol esmtp match protocol http class-map type inspect match-any dns-http-class match protocol dns match protocol http class-map type inspect match-any smtp-class match protocol smtp class-map type inspect match-all dns-http-acl-class match access-group 110 match class-map dns-http-class class-map type inspect match-all smtp-acl-class match access-group 111 match class-map smtp-class class-map type inspect match-any Xwindows-class match protocol user-Xwindows class-map type inspect match-any internet-traffic-class match protocol http match protocol https match protocol dns match protocol icmp class-map type inspect http match-any bad-http-class match port-misuse all match strict-http ! policy-map type inspect clients-servers-policy class type inspect L4-inspect-class inspect policy-map type inspect private-dmz-policy class type inspect L7-inspect-class inspect policy-map type inspect internet-dmz-policy class type inspect dns-http-acl-class inspect class type inspect smtp-acl-class inspect policy-map type inspect servers-clients-policy class type inspect Xwindows-class inspect policy-map type inspect private-internet-policy class type inspect internet-traffic-class inspect class type inspect bad-http-class drop ! zone security clients zone security servers zone security private zone security internet zone security dmz zone-pair security private-internet source private destination internet service-policy type inspect private-internet-policy zone-pair security servers-clients source servers destination clients service-policy type inspect servers-clients-policy zone-pair security clients-servers source clients destination servers service-policy type inspect clients-servers-policy zone-pair security private-dmz source private destination dmz service-policy type inspect private-dmz-policy zone-pair security internet-dmz source internet destination dmz service-policy type inspect internet-dmz-policy ! bridge irb ! interface FastEthernet0 ip address 172.16.1.88 255.255.255.0 zone-member internet ! interface FastEthernet1 ip address 172.16.2.1 255.255.255.0 zone-member dmz ! interface FastEthernet2 switchport access vlan 2 ! interface FastEthernet3 switchport access vlan 2 ! interface FastEthernet4 switchport access vlan 1 ! interface FastEthernet5 switchport access vlan 1 ! interface FastEthernet6 switchport access vlan 1 ! interface FastEthernet7 switchport access vlan 1 ! interface Vlan1 no ip address zone-member clients bridge-group 1 ! interface Vlan2 no ip address zone-member servers bridge-group 1 ! interface BVI1 ip address 192.168.1.254 255.255.255.0 zone-member private ! ip classless ip route 0.0.0.0 0.0.0.0 172.16.1.1 ! access-list 110 permit ip any host 172.16.2.2 access-list 111 permit ip any host 172.16.2.3 ! bridge 1 protocol ieee bridge 1 route ip ! End
本示例提供一個簡單的配置,作為測試Cisco IOS軟體ZFW增強功能的基礎。此配置是兩個區域的模型配置,如1811路由器上所配置。專用區域應用於路由器的固定交換機埠,因此交換機埠上的所有主機都連線到VLAN 1。公共區域應用在FastEthernet 0上(請參見圖12)。
圖12:在FastEthernet 0上應用公共區域
class-map type inspect match-any private-allowed-class match protocol tcp match protocol udp match protocol icmp class-map type inspect match-all http-class match protocol http ! policy-map type inspect private-allowed-policy class type inspect http-class inspect my-parameters class type inspect private-allowed-class inspect ! zone security private zone security public zone-pair security priv-pub source private destination public service-policy type inspect private-allowed-policy ! interface fastethernet 0 zone-member security public ! interface VLAN 1 zone-member security private
修訂 | 發佈日期 | 意見 |
---|---|---|
3.0 |
02-Apr-2024 |
已更新PII、影像標題、文法和格式。 |
2.0 |
28-Sep-2022 |
重新認證 |
1.0 |
28-Aug-2007 |
初始版本 |