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