一、訪問列表簡介
通常,ACL被看作是一種過濾工具,過濾進(jìn)入或離開路由器的流量。ACL支持下列所有類型的操作:
●對進(jìn)入接口的流量進(jìn)行過濾;
●對離開接口的流量進(jìn)行過濾;
●控制道路由器VTY線路的訪問;
●控制路由器向相鄰路由器發(fā)布哪些路由更新或者從相鄰路由器接收哪些路由更新;
●用模擬線路或者ISDN觸發(fā)撥號路由選擇;
●分類流量以處理擁塞,如擁塞避免、擁塞管理和隊列功能;
●基于地址或者協(xié)議信息,限制debug命令的輸出。
1、ACL和過濾
當(dāng)ACL用作過濾流量時,通常稱為過濾器(FILTER)?;谠诼酚善魃隙x的條件(規(guī)則),可以應(yīng)用道這些流量的決定包括允許或者丟棄流量。條件可以在數(shù)據(jù)包的內(nèi)容中查找匹配信息,包括:
★源地址或者目的地址;
★第2層協(xié)議信息,例如以太網(wǎng)幀類型;
★第3層協(xié)議,例如IP、IPX和AppleTalk;
★第3層協(xié)議信息,例如IP、ICMP、OSPF、TCP、UDP和其他TCP/IP協(xié)議族中的協(xié)議;
★第4層協(xié)議信息,例如TCP和UDP端口號。
通常,ACL過濾第3層和第4層信息,從上面可以看出,還可以用來過濾第2層信息。另外,ACL也可以跟蹤第5層,或會話層信息以及更高層信息。
2、ACL類型
▲標(biāo)準(zhǔn)IP ACL --這種類型的ACL只能過濾第3層信息。這些ACL基于數(shù)據(jù)包頭的源地址過濾數(shù)據(jù)包。
▲擴(kuò)展IP ACL --這種類型的ACL可以活率第3層和第4層信息。這些ACL基于源地址和目的地址、協(xié)議以及協(xié)議信息(如ICMP消息類型、TCP或UDP端口號)來過濾數(shù)據(jù)包。
▲Turbo ACL --這是一個ACL特性,可以編譯標(biāo)準(zhǔn)和擴(kuò)展ACL,使得路由器可以更有效地處理它們,以便快速查找。
▲定時IP ACL -- 這是一種擴(kuò)展IP ACL,可以過濾第3層和第4層信息。 不同于普通的擴(kuò)展IP ACL,定時ACL可以基于每天的某時間,每周的某天被激活??梢栽O(shè)置它們基于一個重復(fù)的時間周期或者單個時間期來進(jìn)行過濾。
▲反射IP ACL --這個類型的ACL可以過濾第3、4、5層的信息。
▲基于上下文的ACL(CBAC)--這種類型的ACL可以過濾第3層到第7層的信息。這是Cisco IOS中的有狀態(tài)防火墻功能。
▲鎖和密鑰(Lock-and-key)ACL --這種類型的ACL過濾第3層信息,有時也可以過濾第4層信息。在通過PPP連接時,這些ACL執(zhí)行雙重認(rèn)證,用戶首先通過PAP或者CHAP進(jìn)行認(rèn)證,然后在路由器允許連接之前,在應(yīng)用層進(jìn)行認(rèn)證。
(ACL主要在第3、4層執(zhí)行過濾,有時在第5層:它們不可能阻止所有類型的攻擊,例如應(yīng)用層攻擊。ACL也很容易受到欺騙攻擊。因此,ACL應(yīng)該和Cisco IOS的其他安全特性一起為網(wǎng)絡(luò)提供最好的保護(hù),防止網(wǎng)絡(luò)威脅。)
3、處理ACL
ACL語句有兩個組件:一個是條件,一個是操作。條件用于匹配數(shù)據(jù)包內(nèi)容。當(dāng)為條件找到匹配時,則會采取一個操作:允許或者拒絕數(shù)據(jù)包。
⑴條件
條件基本上是一組規(guī)則,定義了要在數(shù)據(jù)包內(nèi)容中查找什么來確定數(shù)據(jù)包是否匹配。條件可以簡單到在數(shù)據(jù)包源地址中查找匹配,或者復(fù)雜到在源地址、目的地址、協(xié)議類型和協(xié)議信息中查找匹配。
每條ACL語句中只可以列出一個條件。但是,可以將ACL語句組合在一起形成一個列表或策略。語句通過編號或者名稱來分組。
⑵對條件的匹配
當(dāng)ACL語句條件與比較的數(shù)據(jù)包內(nèi)容相匹配時,Cisco IOS可以采取兩種基本的操作:
●允許
●拒絕
當(dāng)在ACL語句中找到一個匹配時,則不會再處理其他語句。而且,在每個ACL最后都有一個看不見的語句,稱為“隱式的拒絕”語句。這條語句的目的是丟棄數(shù)據(jù)包,如果一個數(shù)據(jù)包和列表中的每條語句都進(jìn)行比較后,也沒有發(fā)現(xiàn)匹配,則該數(shù)據(jù)包被丟棄。因此,在ACL中應(yīng)該至少有一個允許操作是常識。如果只有拒絕操作,Cisco IOS將會因為匹配一條語句而丟棄數(shù)據(jù)包,或者會使用隱式的拒絕語句來丟棄數(shù)據(jù)包。
⑶ACL流程圖
當(dāng)接口收到數(shù)據(jù)包時,Cisco IOS首先確定ACL是否被應(yīng)用到該接口。如果沒有,Cisco IOS正常地路由該數(shù)據(jù)包。如果有,則處理ACL。從第一條語句開始,將條件和數(shù)據(jù)包內(nèi)容作比較。如果沒有匹配,Cisco IOS處理列表中的下一條語句。如果有匹配,則執(zhí)行操作:允許或拒絕。如果Cisco IOS查遍了整個ACL也沒有找到匹配,則丟棄數(shù)據(jù)包。
對于輸出ACL,過程是相似的。當(dāng)Cisco IOS接收到數(shù)據(jù)包時,首先將數(shù)據(jù)包路由到輸出接口。然后Cisco IOS檢查在接口上是否有ACL輸出,如果沒有,Cisco IOS將數(shù)據(jù)包排在隊列中,發(fā)送出接口。否則,數(shù)據(jù)包通過與ACL條目進(jìn)行比較被處理。
⑷ACL中的語句順序
默認(rèn)地,當(dāng)將ACL語句添加到列表中時,被添加到列表的最后。ACL語句的順序很重要,因為Cisco IOS自上而下地處理列表。
在設(shè)置過濾規(guī)則時,從約束性最強(qiáng)地到約束性最弱地順序列出它們。另外,如果想允許每個人都能夠訪問大多數(shù)服務(wù)器,只拒絕少數(shù)特定的人,則在設(shè)置ACL時,首先拒絕特定的連接,然后允許所有其他的連接。如果只想允許少數(shù)的訪問,而拒絕所有其他的訪問,則首先指定允許語句,而隱式拒絕丟棄所有其他的訪問。
⑸ACL規(guī)則和限制
★ACL語句按名稱或者編號分組;
★每條ACL語句都只有一組條件和操作(允許或者拒絕)。如果需要多個條件或者多個行動,則必須生成多個ACL語句;
★如果一條語句的條件中沒有找到匹配,則處理列表中的下一條ACL語句;
★如果在ACL組的一條語句中找到匹配,則不再處理后面的語句;
★如果處理了列表中的所有語句而沒有指定匹配,不可見的隱式拒絕語句拒絕該數(shù)據(jù)包;
★由于在ACL語句組的最后有隱式拒絕,所有至少要有一個允許操作;否則,所有數(shù)據(jù)包都會被拒絕;
★在過濾時,如果Cisco IOS丟棄數(shù)據(jù)包,它會生成ICMP管理性禁止消息;
★語句的順序很重要,約束性最強(qiáng)的語句應(yīng)該放在列表的頂部,約束性最弱的語句應(yīng)該放在列表的底部;
★一個空的ACL組允許所有數(shù)據(jù)包,空的ACL組已經(jīng)在路由器上被激活,但是不包括任何語句的ACL。要使隱式拒絕語句起作用,則在ACL中至少要有一條允許或者拒絕語句。
★只能在每個接口、每個協(xié)議、每個方向上應(yīng)用一個ACL。
★在數(shù)據(jù)包被路由到其他接口之前,處理輸入ACL;
★在數(shù)據(jù)包被路由到接口之后,而在數(shù)據(jù)包離開接口之前,處理輸出ACL;
★當(dāng)ACL應(yīng)用到一個接口時,這會影響通過接口的流量,但ACL不會過濾路由器本身產(chǎn)生的流量。
⑹ACL定位
◆只過濾數(shù)據(jù)包源地址的ACL應(yīng)該放在離目的地(正在過濾的)盡可能近的地方;
◆過濾數(shù)據(jù)包的源地址和目的地址以及其他信息的ACL,則應(yīng)該放在離源地址盡可能近的地方。
二、基本ACL的配置
配置ACL需要兩個步驟:
●建立ACL規(guī)則;
●激活A(yù)CL規(guī)則。
1、建立ACL
對想要過濾的每個協(xié)議,需要建立單獨的ACL。每個ACL基本上是一組定義過濾規(guī)則的語句的組合,使用編號或者名稱用來分組這些語句。如果使用編號,不可以任意選擇隨機(jī)的數(shù)字分配給ACL語句組。
標(biāo)準(zhǔn)IP--1~99,1300~1999
擴(kuò)展IP--100~199,2000~2699
使用以下的命令來建立使用編號的ACL語句組,不同組用不同的編號來區(qū)分:
Router(config)#access-list ACL_# permit|deny conditions
2、激活A(yù)CL
可以使用下面的命令,在一個接口上激活A(yù)CL來實現(xiàn)過濾:
Router(config-if)#ip access-group ACL_#_or_name in|out