cbac

cbac,即Context-Based Access Control(CBAC)基於上下文的訪問控制協定通過檢查防火牆的流量來發現&管理TCP和UDP的會話狀態信息。這些狀態信息被用來在防火牆訪問列表創建臨時通道。通過在流量向上配置ip inspect列表,允許為受允許會話放回流量和附加數據連線,打開這些通路。受允許會話是指來源於受保護的內部網路會話。

基本介紹

  • 中文名:cbac
  • 外文名:Context-Based Access Control
  • 工作原理:對指定的協定進行檢查
  • 互補:ACL
工作原理,CBAC的配置,CBAC簡述,CBAC的合理配置,總結,

工作原理

CBAC指定了哪些協定及接口、接口方向(流入和流出)需要被檢查,同指定了檢查的起始。CBAC只對指定的協定進行檢查。對於這些協定,只要數據包經過已配置檢查策略的接口,那么無論它們從哪個方向通過防火牆都將被檢查。進入防火牆的數據包只會在其第一次通過接口的入站ACL時才會被檢察。如果數據包被ACL拒絕,數據包會被簡單的丟掉並且不會被CBAC檢查。

CBAC的配置

在Cisco路由器上創建ACL(訪問控制列表)是管理員常用的數據過濾和網路安全防護措施,但是ACL的局限性是非常明顯的,因為它只能檢測到網路層傳輸層的數據信息,而對於封裝在IP包中的惡意信息它是無能為力的。因此,ACL並不可靠,需要CBAC(基於上下文的訪問控制)的配合,這樣網路安全性將會極大提升。

CBAC簡述

CBAC(context-based access control)即基於上下文的訪問控制,它不用於ACL(訪問控制列表)並不能用來過濾每一種TCP/IP協定,但它對於運行TCP、UDP套用或某些多媒體套用(如Microsoft的NetShow或Real Audio)的網路來說是一個較好的安全解決方案。除此之外,CBAC在流量過濾、流量檢查、警告和審計蛛絲馬跡、入侵檢測等方面表現卓越。在大多數情況下,我們只需在單個接口的一個方向上配置CBAC,即可實現只允許屬於現有會話的數據流進入內部網路。可以說,ACL與CBAC是互補的,它們的組合可實現網路安全的最大化。

CBAC的合理配置

  1. CBAC配置前的評估
在進行CBAC配置之前需要對網路的安全標準、套用需求等方面進行評估然後根據需要進行相應的配置。通常情況下,用戶可以在一個或多個接口的2個方向上配置CBAC。如果防火牆兩端的網路都需要受保護的話,如在Extranet或Intranet的配置中,就可以在2個方向上配置CBAC。若防火牆被放置在2個合作夥伴公司網路的中間,則可能想要為某些套用在一個方向上限制數據流,並為其它套用在反方向上限制數據流。
特別要注意的是,CBAC只能用於IP數據流。只有TCP和UDP數據包能被檢查,其他IP數據流
(如ICMP)不能被CBAC檢查,只能採用基本的訪問控制列表對其進行過濾。在不作套用層協定審查時,像自反訪問控制列表一樣,CBAc可以過濾所有的TCP和UDP會話。但CBAC也可以被配置來有效地處理多信道(多連線埠)套用層協定:cu-SeeMe(僅對whitePine版本)、FTP、H.323(如NetMeeting和ProShare)、HTTP(Java攔阻)、Java、MicrosftNetshow、UNIX的r系列命令(如rlogin、rexec和rsh);RealAudio、RPC(SunRPc,非DCERPC)MircosoftRPC、SMTP、SQL.Net、StreamWorks、TFTP、VDOLive。
  1. 選擇配置接口
為了恰當地配置CBAc,首先必須確定在哪個接口上配置CBAC。下面描述了內部口和外部接口間的不同之處。
配置數據流過濾的第一步是決定是否在防火牆的一個內部接口或外部接口上配置CBAC。在該環境下,所謂“內部”是指會話必須主動發起以讓其數據流被允許通過防火牆的一側;“外部”是指會話不能主動發起的一側(從外部發起的會話被禁止)。如果要在2個方向上配置CBAc,應該先在一個方向上使用適當的“Intemal”和“Extemal”接口指示配置CBAC。在另一個方向上配置CBAC時,則將該接口指示換成另一個。
CBAC常被用於2種基本的網路拓撲結構之一。確定哪種拓撲結構與用戶自己的最吻合,可以幫助用戶決定是否應在一個內部接口或是在一個外部接口上配置CBAC。
圖l給出了第1種網路拓撲結構。在該簡單的拓撲結構中,CBAC被配置在外部接口S0上。這可以防止指定的協定數據流進入該防火牆路由器和內部網路,除非這些數據是由內部網路所發起會話的一部分。
圖2給出了第2種網路拓撲結構。在該拓撲結構中,CBAC被配置在內部接口E0上,允許外部數據流訪問DMZ(連線在接口E1上的停火區)中的服務(如DNS服務),同時防止指定的協定數據流如內部網路,除非這些數據流是由內部網路所發起的會話的一部分。這兩種拓撲結構之間的關鍵不同點是:第1種拓撲結構不允許外部數據流不經過CBAC過濾器就進入了路由器;第2中拓撲結構允許外部數據流入路由器,讓他們能不經過CBAC過濾器就到達位於DMZ區中的公共伺服器。
圖1圖1
根據這2個拓撲結構樣例,可以決定網路是否應在一個內部接口或是在一個外部接口上配置CBAC。如果防火牆只有2條連線,一條是到內部網路,另外一條是到外部網路,那么只能使用入方向的訪問控制列表就可以了,因為數據包在有機會影響路由器之前已經被過濾了。
圖2圖2
  1. 防火牆配置
當用戶用Cisco IOS配置任何IP防火牆時可參照下面給出的一些基本的配置指南。
  • 訪問控制列表。儘管一個拒絕所以不屬於受CBAC所審查的連線一部分的IP數據流的訪問控制列表看起來比較安全,但它對路由器的正確運行不太現實。路由器期望能夠看到來自網路中其他路由器的ICMP數據流。ICMP數據流不能被CBAC所審查,所以應在防護控制列表中設定特定的條目以允許返回的ICMP數據流。如在受保護網路中的一個用戶要用“Ping”命令來獲取位於不受保護網路中的一台主機的狀態,如果在訪問控制列表中沒有允許“echoreply”訊息的條目,則在受保護網路中的這位用戶就得不到其“Ping”命令的相應。下面所示的配置中含有允許關鍵ICMP訊息的訪問控制列表條目:
Router(config)#access -list 101 permit icmp any any echo-reply
Router(config)#access -list 101 permit icmp any any time-execeeded
Router(config)#access -list 101 permit icmp any any packet-too-big
Router(config)#access -list 101 permit icmp any any traceroute
Router(config)#access -list 101 permit icmp any any UnreaChable
  • 訪問控制列表中添加一個拒絕所有冒用受保護網路中地址的外來數據流的條目。這被稱作防欺騙保護,因為它可以防止來自不受保護網路的數據流假冒保護網路中某個設備的身份。
  • 訪問控制列表增加一個拒絕源地址為廣播地址(255.255.255.255)數據包的條目。該條目可以防止廣播攻擊。
  • 防火牆的訪問特權設定口令時,最好是用“enablesecret”命令而不是“enablepassword”命令。因為“enableesecret”命令使用了一種更強的加密算法。
  • 數據機)之前,應認真考慮訪問控制事宜。要知道,在重啟防火牆路由器時通過在控制台連線埠上“break”鍵就可以獲得對它的完全控制權,即使配置了訪問控制也無法阻止。
  • 虛擬終端連線埠套用訪問控制列表和口令保護。用“access -class”命令指定的訪問可以通過telnet登錄到路由器上。
  • 防火牆或網路。對於被啟用的本地服務,,可以通過將它們配置為只與特定的對等體進行通信來防止被濫用,並通過在特定的接口上配置訪問控制列表來拒絕對這些服務的訪問數據包來保護自己。
  • 訪問控制列表來防止防火牆被用作中繼跳板。
  • 防火牆和所有其他路由器上關閉對任何可套用協定的定向廣播功能。對於IP協定,可使用no中“directed -broadcast”命令。在極少數情況下,有些IP網路確實需要定向廣播功能,在這種情況下就不能關閉定向廣播功能,定向廣播可以被濫用來放大拒絕服務攻擊的力量,因為每個Dos數據包都會被廣播到同一子網的所有主機。另外,有些主機在處理廣播時還存在有其他固有的安全風險。
  • 防火牆防在一個安全的區域內。
如果在外部接口上有一個對外方向的IP訪問控制列表,則該訪問控制列表就可以是一個標準的或擴展的訪問控制列表。該外出方向的訪問控制列表應該允許想讓CBAC檢查的數據流通過。如果數據流不被允許,它就不能被CBAC檢查,就會被簡單地丟棄。
在外部接口上的入方向訪問控制列表必須是一個擴展的訪問控制類表。該入方訪問控制列表應該拒絕想要讓CBAC檢查的數據流。CBAC將在該人方向控制列表中產生適當的臨時通口,只允許返回數據進入,這些數據流屬於一個有效的已存在會話的一部分。
  1. 配置內部接口的技巧
如果在內部接口上有一個入方向的IP訪問控制列表,或在外部接口上有一個對外出方向的IP訪問控制列表,則這些訪問控制列表可以是標準的或者擴展的訪問控制類表。這些訪問控制類表應該允許想讓CBAC審查的數據流通過。如果數據流不被允許,它就不能被CBAC審查,就會被簡單地丟棄掉。
在內部接口上的外出方向的IP訪問控制列表和在外部接口上的入方向的訪問控制列表必須是擴展的訪問控制列表。這些訪問控制列表應該拒絕想要讓CBAC審查的數據流通過CBAC將在這些訪問控制列表中產生適當的臨時通道,只允許那些屬於一個有效的、已存在會話的一部分的返回數據流進入。不需要在內部接口的外出方向和外部接口的入口向上都配置一個擴展訪問控制列表,但至少需要配置一個,以限制數據流通過防火牆流進內部受保護的網路。

總結

只有連線的控制信道會被CBAC審查和監視,數據信道不會被審查。如在FTP會話中,控制信道(通常是TCP連線埠21)和數據信道(通常是TCP連線埠20)的狀態變化都會被監視,但只有控制信道才會被審查。
CBAC審查識別控制信道中與套用具體相關的命令,並檢測和防止某些套用層攻擊,如SYN-flooding(SYN包風暴攻擊)等。當網路攻擊者想一台伺服器發起了SYN包風暴攻擊。大量的半開連線會淹沒伺服器,導致它拒絕正常的請求提供服務。無法訪問網路設備網路攻擊被稱為服務攻擊(DoS)。
CBAC審查還在其它方面有助於防止拒絕服務攻擊。CBAC檢查TCP連線中的包序列號碼是否在所期望的範圍之內,並丟棄所有可疑的數據包。同時,也可以配置CBAC來丟棄半開連線,這需要占用防火牆的處理資源和記憶體資源來進行維護。另外,CBAC也可以檢測不尋常的新連線建立速率,並發出告警訊息。

相關詞條

熱門詞條

聯絡我們