文/關(guān)天敏
ACL應(yīng)用技術(shù)與配置實(shí)例
文/關(guān)天敏
ACL,是訪問(wèn)控制列表(Access Control Lists)的簡(jiǎn)稱(chēng)。在實(shí)際的網(wǎng)絡(luò)環(huán)境中,各種上層訪問(wèn)都是通過(guò)報(bào)文交互進(jìn)行的,為了進(jìn)行訪問(wèn)控制,就通過(guò)ACL設(shè)置一系列過(guò)濾規(guī)則來(lái)控制報(bào)文轉(zhuǎn)發(fā)和過(guò)濾,從而達(dá)到目的,所以稱(chēng)之為訪問(wèn)控制列表。本文闡析了ACL功能的工作機(jī)制,說(shuō)明ACL功能上的特點(diǎn)及其應(yīng)用。
在實(shí)際校園網(wǎng)絡(luò)環(huán)境中,各種上層訪問(wèn)應(yīng)用,歸根結(jié)底是通過(guò)PC和服務(wù)器之間的報(bào)文交互進(jìn)行的,而報(bào)文則是通過(guò)交換機(jī),路由器等各種網(wǎng)絡(luò)設(shè)備進(jìn)行傳輸?shù)摹kS著網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)安全問(wèn)題日益突出,如各種針對(duì)交換機(jī)的惡意攻擊、病毒肆虐等等,對(duì)正常的網(wǎng)絡(luò)通訊造成很大影響。以上種種原因使得需要對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)流進(jìn)行監(jiān)控、控制,確保網(wǎng)絡(luò)運(yùn)行安全,或?qū)踩L(fēng)險(xiǎn)降低到最低程度。
ACL根據(jù)使用方式的不同主要分為兩大類(lèi)型:安全ACL和QoS ACL。本文主要介紹安全ACL。
安全ACL主要分為兩大類(lèi)型:基于接口的ACL和基于VLAN的ACL。
基于接口的ACL,顧名思義,ACL的運(yùn)用對(duì)象是接口,這里的端口包含的種類(lèi)很多,主要分為二層接口和三層接口。運(yùn)用于二層接口的ACL又被稱(chēng)為Port ACL或基于二層接口的ACL,運(yùn)用于三層接口的ACL又稱(chēng)為基于三層接口的ACL。二層接口主要包括Access口,Trunk口,L2 AP口。三層接口主要包括Routed Port,SVI口,L3 AP口。不同層次的交換機(jī)所支持的接口類(lèi)型范圍不同。
基于VLAN的ACL,ACL的運(yùn)用對(duì)象是VLAN,又稱(chēng)為VACL。簡(jiǎn)單的說(shuō)就是如果一個(gè)VLAN運(yùn)用上一個(gè)ACL,當(dāng)有報(bào)文進(jìn)入或者離開(kāi)這個(gè)VLAN時(shí),就要受到該ACL的過(guò)濾。下文詳細(xì)介紹原理。
ACL的主要功能就是過(guò)濾報(bào)文,那ACL是根據(jù)什么來(lái)區(qū)分哪些報(bào)文需要過(guò)濾,哪些不需要的呢?就是根據(jù)報(bào)文中的特定信息。這些特定信息一般是報(bào)文中的IP,MAC,二層協(xié)議類(lèi)型,三層協(xié)議類(lèi)型,TOS,VID等等。
根據(jù)可以匹配的信息的不同,ACL有以下6種類(lèi)型:IP 標(biāo)準(zhǔn)ACL,IP 擴(kuò)展ACL,MAC 擴(kuò)展ACL,EXPERT(專(zhuān)家級(jí)) ACL,用戶(hù)自定義 ACL(ACL80),IPV6 ACL(過(guò)濾IPV6報(bào)文)。
ACL過(guò)濾報(bào)文原理
無(wú)論是基于端口的ACL,還是基于VLAN的ACL,其工作原理相同。
ACL是由一系列ACE組成,每個(gè)ACE都有一個(gè)唯一的序列號(hào),代表它的優(yōu)先級(jí),當(dāng)交換機(jī)收到一報(bào)文,進(jìn)行解析后,就按照ACE的優(yōu)先級(jí)逐一匹配,若報(bào)文內(nèi)容和某個(gè)ACE中的內(nèi)容匹配,則按照相應(yīng)的動(dòng)作處理,若不符合,則匹配下一條ACE,直到匹配到合適的ACE。若報(bào)文符合某個(gè)ACE定義的內(nèi)容,則報(bào)文不再匹配這條ACE之后的所有ACE。請(qǐng)看以下ACL:
這條ACL具有兩個(gè)ACE,但這兩個(gè)ACE對(duì)同一種報(bào)文的動(dòng)作卻是相反的。同樣是針對(duì)源IP是192.168.1.1的IP報(bào)文,一條是允許轉(zhuǎn)發(fā),另一條是過(guò)濾該類(lèi)型報(bào)文。這兩條ACE唯一的區(qū)別就是它們的優(yōu)先級(jí)。
當(dāng)交換機(jī)收到源IP是192.168.1.1的IP報(bào)文時(shí),ACL按照ACE的優(yōu)先級(jí)進(jìn)行匹配,此時(shí)先匹配序列號(hào)為10的ACE,發(fā)現(xiàn)該報(bào)文的內(nèi)容可以匹配ACE的內(nèi)容,源IP為192.168.1.1,此時(shí)查看動(dòng)作,為deny,所以該報(bào)文被過(guò)濾,不再進(jìn)行匹配,所以序列號(hào)為20的ACE沒(méi)有對(duì)該報(bào)文進(jìn)行匹配。
當(dāng)交換機(jī)又收到源IP是1.1.1.1的IP報(bào)文時(shí),ACL還是按照ACE的優(yōu)先級(jí)進(jìn)行匹配,先匹配序列號(hào)為10的ACE,發(fā)現(xiàn)報(bào)文內(nèi)容和ACE中的不符合,按照原理,查看下一條ACE,發(fā)現(xiàn)內(nèi)容還是不匹配,但此時(shí)ACL中已沒(méi)有ACE了,怎么辦?這里要注意,當(dāng)應(yīng)用一個(gè)ACL時(shí),交換機(jī)會(huì)自動(dòng)在ACL的末尾加上一條丟棄所有報(bào)文的ACE,而且該ACE優(yōu)先級(jí)最低,是最后才匹配的,這樣也提高了安全性,因此如圖所示的ACL,最后還有這樣一條ACE:deny ip any any,且優(yōu)先級(jí)最低,因此此時(shí)交換機(jī)收到的源IP為1.1.1.1的報(bào)文,最后匹配這條ACE,內(nèi)容可以匹配,因?yàn)樵揂CE針對(duì)所有的IP報(bào)文,此時(shí)查看動(dòng)作是deny,所以該報(bào)文被丟棄。
由于ACE是按照優(yōu)先級(jí)匹配的,此時(shí)添加一條序列號(hào)小于10的ACE。
動(dòng)態(tài)添加了一條序列號(hào)為1的ACE:permit ip any any,所以當(dāng)交換機(jī)收到任意IP報(bào)文時(shí),由于該ACE的優(yōu)先級(jí)最高,最優(yōu)先匹配,所以所有IP報(bào)文都允許轉(zhuǎn)發(fā),而不會(huì)去匹配后面兩條ACE。
ACE之后都可以匹配一個(gè)時(shí)間戳,而后ACL會(huì)根據(jù)系統(tǒng)的時(shí)鐘來(lái)確認(rèn)該ACE是否能生效,如果該ACE的時(shí)間戳中規(guī)定的時(shí)間和系統(tǒng)時(shí)鐘不符合,則該ACE就不生效,也就是不進(jìn)行匹配,如果相符,則進(jìn)行匹配,匹配時(shí)也是按照優(yōu)先級(jí)關(guān)系進(jìn)行,原理相同。如下所示:
如上所示,ACE:permit ip host 1.1.1.1 any所對(duì)應(yīng)的時(shí)間戳week_day和系統(tǒng)時(shí)間相符,則該ACE生效,show信息顯示狀態(tài)為:active,而ACE:deny ip any host 2.2.2.2所對(duì)應(yīng)時(shí)間戳week_end和系統(tǒng)時(shí)間不符合,則不生效,show信息顯示狀態(tài)為:inactive,運(yùn)用時(shí)該ACE就不參與過(guò)濾報(bào)文。
安全ACL應(yīng)用類(lèi)型
安全ACL分為基于接口和基于VLAN兩種應(yīng)用。
基于接口的ACL應(yīng)用,ACL的運(yùn)用對(duì)象是接口,上文提到主要有六種接口類(lèi)型。當(dāng)ACL運(yùn)用到接口時(shí),有兩種選擇:in和out,即輸入方向和輸出方向,這里所謂的方向是針對(duì)接口而言。如圖所示:
In和out說(shuō)明ACL起作用的位置。In方向說(shuō)明當(dāng)報(bào)文從外界網(wǎng)絡(luò)進(jìn)入該接口時(shí),要受到ACL的檢查,過(guò)濾。Out方向說(shuō)明當(dāng)報(bào)文從該接口轉(zhuǎn)發(fā),準(zhǔn)備前往外界網(wǎng)絡(luò)時(shí),要受到ACL的檢查,過(guò)濾。
基于VLAN的ACL應(yīng)用,ACL的運(yùn)用對(duì)象是VLAN,同樣基于VLAN的ACL也有in和out方向,但和基于接口的ACL應(yīng)用的in和out不同的是,這里所謂的in和out方向是針對(duì)VLAN而言的,不是針對(duì)接口而言的。如圖1所示:
若在VLAN 1上應(yīng)用一個(gè)ACL,當(dāng)報(bào)文從屬于VLAN 1的接口進(jìn)入交換機(jī),相當(dāng)于進(jìn)入VLAN 1,就是in方向,此時(shí)要受到該VACL的過(guò)濾,檢查。當(dāng)報(bào)文從屬于VLAN 1的接口轉(zhuǎn)發(fā)時(shí),由于該端口屬于VLAN 1,不算是離開(kāi)VLAN 1,因此不受到VACL過(guò)濾。當(dāng)報(bào)文通過(guò)路由,從屬于VLAN 1的接口路由到屬于VLAN 2的接口時(shí),此時(shí)相當(dāng)于離開(kāi)VLAN 1,就是out方向,要受到VACL的過(guò)濾。
當(dāng)VLAN應(yīng)用一個(gè)ACL,那么進(jìn)入VLAN和離開(kāi)VLAN的報(bào)文都受到VACL的限制,過(guò)濾。這也和基于接口的ACL不同。
基于VLAN的ACL容易和應(yīng)用在三層接口SVI口上的ACL混淆。這兩者的層次不同,基于VLAN的ACL,由于VLAN是二層概念,所以主要過(guò)濾VLAN所屬二層接口收到的報(bào)文。而SVI是一個(gè)三層邏輯接口,應(yīng)用在SVI上的ACL是基于三層接口的ACL,主要過(guò)濾通過(guò)路由轉(zhuǎn)發(fā)的報(bào)文。若VLAN是一個(gè)Private VLAN,則無(wú)法運(yùn)用VACL和基于SVI的ACL,若VLAN是Super VLAN,則和普通VLAN相同。
圖1 in方向和out方向概念
圖2 基于VLAN應(yīng)用的原理圖
以典型的高校解決方案為例。在該方案中,以銳捷S26系列作為接入層交換機(jī)連接各院系PC,各院系接入層交換機(jī)S26通過(guò)Trunk口上連匯聚層交換機(jī)S57,S57上有不同VLAN分別隔離各個(gè)院系。銳捷S86作為核心層交換機(jī)下連S57進(jìn)行高速轉(zhuǎn)發(fā),并連接各種服務(wù)器,如FTP、HTTP服務(wù)器等,最后通過(guò)防火墻與Internet相連。拓?fù)淙鐖D2。
校園網(wǎng)對(duì)ACL應(yīng)用通常有以下需求:
1.S26所連接各院系PC,一個(gè)接口只允許一臺(tái)合法PC接入,不允許其他設(shè)備接入。
2.各個(gè)院系間不能互相訪問(wèn)和共享文件,即不允許各VLAN間數(shù)據(jù)流通過(guò)。
3.Internt病毒無(wú)處不在,需要封堵各種病毒常用端口,以保障內(nèi)網(wǎng)安全。
4.只允許校園內(nèi)部PC對(duì)校園服務(wù)器進(jìn)行訪問(wèn),拒絕外部PC的訪問(wèn)。
5.各院系PC必須在不同的VLAN中,以減少?gòu)V播,多播數(shù)據(jù)流對(duì)網(wǎng)絡(luò)的影響。
針對(duì)以上需求,我們可以通過(guò)以下具體配置,設(shè)置ACL應(yīng)用:
核心層交換機(jī)S86關(guān)鍵配置
匯聚層交換機(jī)S57關(guān)鍵配置
接入層交換機(jī)S26關(guān)鍵配置
通過(guò)實(shí)際測(cè)試表明,銳捷交換機(jī)的ACL功能,可以有效防止病毒、防止惡意攻擊、控制VLAN間數(shù)據(jù)流、控制服務(wù)器的訪問(wèn)、控制用戶(hù)接入等,可以滿(mǎn)足應(yīng)用的需求。
(作者單位為集美大學(xué)網(wǎng)絡(luò)中心)