我在Cisco 2514系列訪問(wèn)路由器上安裝了版本為12.2的IOS防火墻。在那個(gè)時(shí)候,這個(gè)路由器還在使用擴(kuò)展ACL來(lái)過(guò)濾從互聯(lián)網(wǎng)接口中進(jìn)入的流量。在斷開(kāi)外部接口的電纜后,我整理并刪除了現(xiàn)存的ACL,然后實(shí)現(xiàn)如下的IOS防火墻性能。
在配置ACLs和CBAC的一個(gè)共同點(diǎn)就是需要在外部接口的入口安裝一個(gè)互聯(lián)網(wǎng)路由器,這樣可以避免私人網(wǎng)絡(luò)受到互聯(lián)網(wǎng)中有害流量的攻擊。這個(gè)配置對(duì)那些只允許由內(nèi)部發(fā)起連接的返回流量通過(guò)的防火墻是相當(dāng)簡(jiǎn)單的。為了實(shí)現(xiàn)這以目的,我在進(jìn)入的接口增加了一個(gè)擴(kuò)展訪問(wèn)列表,這樣可以阻攔所有我想檢查的流量:
Router (config)# Access-list 101 deny tcp any any
Router (config)# Access-list 101 deny udp any any
Router (config)# interface serial0
Router (config-if)# Ip access-group 101 in
在以前的陳述中,當(dāng)在外部接口上應(yīng)用進(jìn)入檢查時(shí)是阻攔所有TCP和UDP。這對(duì)檢查所有通過(guò)的TCP和UDP流量提供了一個(gè)過(guò)濾方法。 通過(guò)在外部的101端口應(yīng)用訪問(wèn)列表,可以確?;ヂ?lián)網(wǎng)的通信一到達(dá)互聯(lián)網(wǎng)路由器就被截獲。我也可疑通過(guò)指定特定的應(yīng)用層協(xié)議來(lái)實(shí)現(xiàn)更具體細(xì)微的控制,就象這個(gè)例子一樣:
Router (config)# Access-list 101 deny tcp any any eq smtp
這一說(shuō)明可以將所有SMTP通信阻擋在內(nèi)部網(wǎng)絡(luò)之外。在訪問(wèn)列表中,這應(yīng)該放在先前的TCP過(guò)濾說(shuō)明之前,否則沒(méi)有什么作用。
定義超時(shí)
這個(gè)過(guò)程的下一步驟就是在使用CBAC跟蹤連接時(shí)定義超時(shí)和最大值。你可以定義幾個(gè)不同的值來(lái)加強(qiáng)CBAC防御網(wǎng)絡(luò)進(jìn)攻的能力。在啟動(dòng)環(huán)境中,大多數(shù)超時(shí)和最大值設(shè)置都有一個(gè)缺省值,可疑滿足一般的需求。許多超時(shí)和最大值控制著路由器對(duì)DoS攻擊如何應(yīng)答。(我將在其他時(shí)候就時(shí)鐘/最大值做更深入的討論。)
請(qǐng)記住CBAC并不檢查ICMP,只檢查TCP和UDP。因此,你需要增加相應(yīng)的ACL入口來(lái)適當(dāng)限制ICMP??紤]在你的ACL上增加這些ICMP入口。這樣可以讓你的內(nèi)部網(wǎng)絡(luò)ping到在互聯(lián)網(wǎng)中的主機(jī),允許你的路由器對(duì)正確的ICMP流量做出回答。
直到目前,我們已經(jīng)看到怎樣配置擴(kuò)展訪問(wèn)列表的入口并在外部接口上應(yīng)用了進(jìn)入流量規(guī)則的配置。ACL在入口阻攔所有的流量,而用CBAC可以進(jìn)行檢查。我使用缺省的超時(shí)和最大值設(shè)置,沒(méi)有做修改。我建議開(kāi)始時(shí)使用缺省值,然后根據(jù)你的需要進(jìn)行調(diào)整。如果你不知道更改這些設(shè)置會(huì)對(duì)防火墻的運(yùn)轉(zhuǎn)產(chǎn)生什么樣的影響,那貿(mào)然的更改設(shè)置不是一個(gè)好主意。接下來(lái),我定義了實(shí)際的檢查規(guī)則來(lái)管理哪個(gè)應(yīng)用層協(xié)議應(yīng)該被檢查。讓我們看一下檢查規(guī)則的命令結(jié)構(gòu)。
這是通用的配置命令模式。需要你在很短的時(shí)間內(nèi)指定名稱,協(xié)議,警報(bào)設(shè)置,審核,和超時(shí)值。現(xiàn)在,我們來(lái)創(chuàng)建一個(gè)自己的。
我已經(jīng)命名了check-tcp規(guī)則,指定協(xié)議檢測(cè)TCP,同時(shí)激活警報(bào)和審核選項(xiàng)。需要主意的是警報(bào)和審核跟蹤選項(xiàng)。這需要一個(gè)Syslog系統(tǒng)來(lái)發(fā)送信息。盡管那個(gè)配置超出了本文討論的范圍,我還是要建議在記錄所有防火墻活動(dòng)時(shí)使用審核。在這里,我在外部接口應(yīng)用了Serial1規(guī)則,如下:
Router (config)# Interface serial1
Router (config-if)# ip inspect check-tcp out
請(qǐng)注意我已經(jīng)在外部接口上應(yīng)用了對(duì)外流量的檢測(cè)規(guī)則。這將跟蹤檢測(cè)由內(nèi)部發(fā)起的連接和所有外部接口發(fā)往互聯(lián)網(wǎng)或其他一些外部網(wǎng)絡(luò)的通信的標(biāo)題。
如果你在配置CBAC過(guò)程中遇到什么困難的話,你可以使用下列的通用命令模式停止配置并恢復(fù)所有相關(guān)的設(shè)置。這并不會(huì)刪除你配置在外部接口上的擴(kuò)展訪問(wèn)列表。如果你關(guān)閉檢測(cè)功能,請(qǐng)記住由于訪問(wèn)列表過(guò)濾了大多數(shù),如果不是全部的話,從外部接口進(jìn)入的流量,這很有可能把你的私人網(wǎng)絡(luò)的所有通信入口都關(guān)閉。關(guān)閉檢查是很簡(jiǎn)單的:
Router (config)# no ip inspect
這個(gè)命令將刪除配置中的所有檢測(cè)信息,包括過(guò)濾器規(guī)則和應(yīng)用在接口上的命令行。
現(xiàn)在不再需要基本配置的詳細(xì)資料了,讓我們看一下用ACLs和CBAC檢查功能配置一個(gè)互聯(lián)網(wǎng)防火墻路由器。
由于在外部接口上訪問(wèn)列表被用來(lái)接收信息,這個(gè)基本的CBAC配置只允許有限的ICMP信息通過(guò)防火墻路由器。檢測(cè)規(guī)則相當(dāng)于filter1,它允許內(nèi)部的用戶通過(guò)HTTP端口和外界的WWW進(jìn)行連接并跟蹤這些連接,打開(kāi)返回的狀態(tài)信息,擴(kuò)展訪問(wèn)列表。這對(duì)FTP和SMTP同樣適用。在未來(lái),如果我允許用戶使用RealAudio或NetMeeting通道,我可以只是簡(jiǎn)單的使用add ip inspect 名稱命令,其中filter1是名稱。
如果想改變檢查規(guī)則,你可以添加或刪除某個(gè)行條目。如果想添加說(shuō)明,通過(guò)使用和用戶定義的規(guī)則相同的名稱,用ip inspect 名稱命令。如果需要?jiǎng)h除某一行,使用no形式的ip inspect名稱命令,看下面的例子:
Router (config)# ip inspect filter1 tcp
Router (config)# no ip inspect filter1 tcp
如果你想檢查配置中的某一項(xiàng),可以使用show ip inspect命令,得到CBAC安裝詳細(xì)資料。就象下面的:
Router# show ip inspect all
所有的參數(shù)將顯示諸如當(dāng)前檢查的配置,當(dāng)前通過(guò)防火墻的連接這樣的信息。


