思科路由器除支持豐富的路由協(xié)議外,還提供了基礎(chǔ)的安全防護(hù)功能,可以在一定程度上代替防火墻,建立第一道安全防護(hù)屏障,對(duì)于安全防護(hù)措施不是太苛刻的小型網(wǎng)絡(luò)來(lái)說(shuō)已經(jīng)足夠。就以筆者單位思科 7609路由器(IOS版本為12.2<33>SRB4)為例,通過(guò)設(shè)置訪問(wèn)控制列表、網(wǎng)絡(luò)地址轉(zhuǎn)換等,讓路由器實(shí)現(xiàn)基本防火墻功能。
通過(guò)訪問(wèn)控制列表(Access Control List)實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾功能。該方法是在路由器上讀取網(wǎng)絡(luò)層及傳輸層數(shù)據(jù)包中源地址、目的地址、源端口和目的端口等信息,根據(jù)預(yù)先定義好的規(guī)則對(duì)數(shù)據(jù)包進(jìn)行處理,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)包分析過(guò)濾。
思科 7609支持標(biāo)準(zhǔn)訪問(wèn)控制列表、擴(kuò)展訪問(wèn)控制列表、擴(kuò)展MAC地址訪問(wèn)控制列表、速率限制訪問(wèn)控制列表和動(dòng)態(tài)擴(kuò)展訪問(wèn)控制列表等。這里介紹標(biāo)準(zhǔn)訪問(wèn)控制列表和擴(kuò)展訪問(wèn)控制列表設(shè)置方法。
標(biāo)準(zhǔn)訪問(wèn)控制列表序號(hào)從1-99,只定義允許或禁止某一個(gè)網(wǎng)段或某一個(gè)主機(jī)訪問(wèn)。禁止192.168.1.1的用戶主機(jī)進(jìn)入eth1/0接口只需兩步。
第一步:定義訪問(wèn)控制列表

擴(kuò)展訪問(wèn)控制列表序號(hào)從100-199,擴(kuò)展訪問(wèn)控制列表能夠完成從源地址到目的地址,從IP層到傳輸層的數(shù)據(jù)包過(guò)濾功能。例如若需要禁止C類(lèi)地址192.168.1.0進(jìn)入eth1/0訪問(wèn)192.168.2.0網(wǎng)段則只需執(zhí)行以下命令:
首先是定義訪問(wèn)控制列表:

基于訪問(wèn)控制列表,路由器可以對(duì)一些常見(jiàn)的病毒進(jìn)行過(guò)濾。比如,沖擊波病毒使用 TCP和 UDP的 135、136、137、138、139 及 445 端 口 進(jìn)行傳播,如果在路由器上禁止上述端口的數(shù)據(jù)包通過(guò),就可以防范該病毒的攻擊,下面就以過(guò)濾TCP和UDP的135端口為例,制定訪問(wèn)控制列表如下:
Router(config)#Access-list 110 deny tcp any any eq 135
Router(config)#Access-list 110 deny udp any any eq 135
過(guò)濾其他TCP和UDP端口的方法和上面例子一樣,制定好訪問(wèn)控制列表后就將該訪問(wèn)控制列表應(yīng)用到指定的接口上即可生效。
NAT(Network Address Translator)即網(wǎng)絡(luò)地址轉(zhuǎn)換,其原理是將內(nèi)部網(wǎng)絡(luò)地址轉(zhuǎn)換為外部網(wǎng)絡(luò)地址,從而使內(nèi)部網(wǎng)絡(luò)用戶使用一個(gè)或多個(gè)外部IP地址與外部網(wǎng)絡(luò)通信。使用NAT技術(shù)一方面可解決因特網(wǎng)地址較少的問(wèn)題;另一方面,使用外部網(wǎng)絡(luò)地址訪問(wèn)外部網(wǎng)絡(luò),可以很好地隱藏內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu),從而達(dá)到保護(hù)內(nèi)部網(wǎng)絡(luò)的目的。
思科7609提供的NAT類(lèi)型有三種:靜態(tài)NAT、動(dòng)態(tài)NAT和網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT。靜態(tài)NAT是將內(nèi)部網(wǎng)絡(luò)中的每個(gè)主機(jī)都被永久映射成外部網(wǎng)絡(luò)中的某個(gè)合法的地址。動(dòng)態(tài)地址NAT是在外部網(wǎng)絡(luò)中定義了一系列的合法地址,采用動(dòng)態(tài)分配的方法映射到內(nèi)部網(wǎng)絡(luò)。NAPT則是把內(nèi)部地址映射到外部網(wǎng)絡(luò)的一個(gè)IP地址的不同端口上。動(dòng)態(tài)NAR較為常用,配置步驟如下:
第一步:定義映射到外部的地址池,其中PoolName為自定義的地址池名字,startIP為起始IP地址,endIP為結(jié)束IP地址。
ip nat pool PoolName startIP endIP netmask 255.255.255.0
第二步:允許轉(zhuǎn)換的內(nèi)部地址范圍,這里允許的地址范圍為一個(gè)C類(lèi)地址段192.168.1.0。
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
第三步:指定內(nèi)部接口。
Router(config)#inter face g0/0
Router(config-if) #ip nat inside
第四步:指定外部接口。
Router(config)#inter face s0/0/0
Router(config-if) #ip nat outside
第五步:配置動(dòng)態(tài)映射,將內(nèi)部地址映射到外部地址池。
Router(config)#ip nat inside source list 1 pool PoolName
思科7609路由器支持基于上下文的訪問(wèn)控制(Context Based Access Control,CBAC)技術(shù),啟用該功能,可以抵御DoS攻擊,其原理是在報(bào)文進(jìn)入或離開(kāi)指定接口時(shí)對(duì)報(bào)文進(jìn)行檢測(cè),將報(bào)文的有關(guān)信息存放在狀態(tài)信息表中,包括報(bào)文的源地址、目的地址以及TCP、UDP的端口號(hào)等。利用該狀態(tài)表創(chuàng)建臨時(shí)開(kāi)啟表項(xiàng),用于檢查返回的流量,臨時(shí)表項(xiàng)被放在接受返回流量的接口上。當(dāng)連接完成時(shí),狀態(tài)表和訪問(wèn)表中的相關(guān)表項(xiàng)被清除。對(duì)于TCP,這些表項(xiàng)會(huì)在客戶和服務(wù)器之間交換一個(gè)正常的FIN之后被清除,而對(duì)于UDP,則可配置不活躍的超時(shí)值。CBAC配置示例如下:

基于網(wǎng)絡(luò)的應(yīng)用識(shí)別(Network Based Application Recognition,NBAR)是思科路由器IOS從12.1版本開(kāi)始支持的一個(gè)流量分類(lèi)引擎技術(shù)。該技術(shù)通過(guò)查看數(shù)據(jù)包的前512個(gè)字節(jié),可以檢測(cè)識(shí)別各種應(yīng)用協(xié)議,并在路由器內(nèi)建立一個(gè)協(xié)議到端口的映射表,之后用戶就可以利用classmap類(lèi)別映射去匹配這些相應(yīng)的協(xié)議,以實(shí)現(xiàn)帶寬控制、流量整形和包丟棄等防火墻策略。
該技術(shù)既支持使用固定端口的常見(jiàn)應(yīng)用層協(xié)議如 HTTP、FTP、H232等,也支持一些經(jīng)常更換端口的應(yīng)用層協(xié)議,如BT等。對(duì)新出現(xiàn)的協(xié)議,用戶還可以到思科公司網(wǎng)站下載最新的包描述語(yǔ)言模塊(Packet DescriptionLanguage Module,PDLM)文件,對(duì)內(nèi)建協(xié)議到端口映射表進(jìn)行更新,從而使路由器對(duì)最新出現(xiàn)的協(xié)議類(lèi)型進(jìn)行識(shí)別和判定。如果要對(duì)網(wǎng)內(nèi)FTP占用接口最大帶寬限制為10%,可以按以下步驟設(shè)置:
1.定義映射的類(lèi)(或應(yīng)用協(xié)議),其中ClassName為類(lèi)名, FTP為需要識(shí)別的應(yīng)用協(xié)議。

2.定義類(lèi)所適用的策略,其中PolicyName為策略名,其具體含義為:定義定義一個(gè)策略PolicyName,然后將上面定義的類(lèi)ClassName,也就是FTP協(xié)議放到這個(gè)策略中,并給這個(gè)類(lèi)分配占用接口最大帶寬限制為10%的帶寬。

TCP攔截主要作用就是防止SYN泛洪攻擊。SYN攻擊利用TCP的三次握手機(jī)制,用偽造的IP地址向被攻擊端發(fā)出請(qǐng)求,而被攻擊端發(fā)出的響應(yīng)報(bào)文將永遠(yuǎn)發(fā)送不到目的地,被攻擊端在等待關(guān)閉此連接過(guò)程中消耗了資源,如果有成千上萬(wàn)的這種連接,主機(jī)資源將被耗盡,從而達(dá)到攻擊的目的。開(kāi)啟TCP攔截分為三個(gè)步驟:
第一步是設(shè)置TCP攔截的工作模式。
TCP攔截的工作模式分為攔截和監(jiān)視。攔截模式下,路由器審核所有的TCP連接,自身的負(fù)擔(dān)加重,所以一般讓路由器工作在監(jiān)視模式,監(jiān)視TCP連接的時(shí)間和數(shù)目,超出預(yù)定值則關(guān)閉連接。
Router(config)#ip tcp intercept mode(intercept|watch)
第二步是設(shè)置訪問(wèn)表,以開(kāi)啟需要保護(hù)的主機(jī)。
Router(config)#a c c e s s-l i s t 1 0 1 permit tcp any host 219.148.150.126
第三步是開(kāi)啟TCP攔截。
Router(config)#ip tcp intercept list accesslist-number