我來談軟考難點——ACL訪問控制列表 我們知道訪問控制列表(ACL)是為了對路由器處理的流量進行過濾而在路由器上建立的規(guī)則,在今天路由的世界里它在改善網(wǎng)絡(luò)性能和加強網(wǎng)絡(luò)安全等方面已經(jīng)發(fā)揮出越來越重要的作用。但這個玩意是如何發(fā)揮作用的?教材上已經(jīng)有詳細的描述,我們這里簡單的說一下。 我們來看看ACL的本質(zhì),ACL是訪問控制列表的英文縮寫,顧名思義,這個是在訪問中加于控制而建立的一張列表。現(xiàn)在,很多企業(yè)內(nèi)部都在使用路由的NAT技術(shù)進行地址轉(zhuǎn)換,而NAT技術(shù)中就包含了ACL的應(yīng)用。在中高端的路由中,通過ACL,我們可以控制哪些私有地址能上外網(wǎng),哪些只能上內(nèi)網(wǎng)。然后把這些過濾好的數(shù)據(jù),進行NAT轉(zhuǎn)換。同時,企業(yè)內(nèi)部也需要對服務(wù)器的資源訪問進行控制,通過ACL過濾出哪些用戶能完全訪問,哪些用戶只能限制訪問,哪些用戶不能訪問。 在從實際應(yīng)用中,我們可以這樣理解ACL的本質(zhì)其實是一種流量分類技術(shù),它是人為定義的一組或幾組規(guī)則策略,目的是通過網(wǎng)絡(luò)設(shè)備對數(shù)據(jù)流分類,以便執(zhí)行用戶規(guī)定的動作。換句話說,ACL本身不能直接達到訪問控制的目的,它間接輔助特定的用戶策略,達到人們所需效果的一種技術(shù)手段(區(qū)分不同的數(shù)據(jù)流)。 理解的ACL的本質(zhì)后我們再來看訪問控制列表的作用 1.提供網(wǎng)絡(luò)訪問的基本安全手段 2.訪問控制列表可用于QOS,對數(shù)據(jù)流量進行控制 3.提供對通信流量的控制 訪問控制列表應(yīng)用不同決定了路由不同的處理過程 1.路由器對進入的數(shù)據(jù)包先檢查入訪問控制列表,對允許傳輸?shù)臄?shù)據(jù)包才查詢路由表 2.而對于外出的數(shù)據(jù)包則先查詢路由表,確定目標接口后才查看出訪問控制列表 接一下再來看訪問控制列表的工作原理: ACL使用包過濾技術(shù),在路由器上讀取第三層及第四層包頭中的信息,根據(jù)預(yù)先定義好的規(guī)則,對包進行過濾,從而達到訪問控制的目的。ACL適用于所有的路由器協(xié)議:如IP、IPX、AppleTalk,可以在路由器或多層交換機來配置來控制來自特定網(wǎng)絡(luò)資源的訪問。 ACL的兩種類型 1.標準訪問控制列表:檢查被路由數(shù)據(jù)包的源地址,使用1到99,1300至1999之間的數(shù)字作為表號,應(yīng)該把標準列表放在離目標地址近的地方。 2.擴展訪問 控制列表:對數(shù)據(jù)包的源地址與目標地址都進行檢查,也能進行協(xié)議、端口號,使用100到199,2000至2699之間的數(shù)字來作為表號,根據(jù)源和目的IP地址、源和目的端口、協(xié)議類型等信息作出過濾,應(yīng)該把擴展列表放在離源地址近的地方。 實例講解: 在訪問控制列表中使用反碼來標記一個或多個地址是被允許還是拒絕。0表示要檢查的位,1代表不檢查要忽略的位。通配符any可以替代0.0.0.0255.255.255.255,host可代表反碼位全0的情況即0.0.0.0 通過命名訪問控制列表可以對已有的語名進行刪除、添加等操作,而不必去掉整個條目,在IOS11.2以后的版本上支持 一些訪問控制語句例子,我們來看: 標準ACL配置 r(config)#access-list access-list-number{permit | deny | remark}source [widcard-mask] 編號 允許 | 拒絕 | 注釋 通配符掩碼 省略通配符掩碼,則默認為0.0.0.0,這僅限于表轉(zhuǎn)ACL remark 為ACL添加注釋 no access-list access-list-number 通過這條刪除整個ACL 根據(jù)ACL兩種類型可以分為如下二種 基本:Switch#access-list access-list-number(1~99){permit|deny}{anyA|source[source-wildcard-mask]}{any|destination[destination-mask]} 擴展:Switch#access-list access-list-number(100~199) {permit|deny}protocol{any|source[source-mask]}{any|destination[destination-mask]}[port-number] 基本式的: access-list 10 permit 192.168.10.0 0.0.0.255允許192.168.10.0這個網(wǎng)段訪問 ip access-group 1 in 把標準訪問控制列表1應(yīng)用到接口上 access-list 20 deny 172.16.0.0 0.0.255.255禁止172.16.0.0網(wǎng)絡(luò)上的主機訪問 access-list 30 permit 0.0.0.0 255.255.255.255 允許所有IP的訪問 access-list 40 deny 192.168.10.5 0.0.0.0 禁止192.168.10.5主機的通信 再來看一下擴展式實例 access-list 100 deny tcp any any eq ftp 禁止網(wǎng)上FTP下載 any(可以替代0.0.0.0255.255.255.255) access-list 110 permit tcp any any eq www 允許www上網(wǎng) access-list 120 permit tcp host 192.168.0.10 host 192.168.0.20 eqtelnet 允許192.168.0.10這臺主機通過telnet訪問192.168.0.20主機 access-list 130 permit icmp any any 允許icmp數(shù)據(jù)包從任何地址到任何地址 access-list 140 permit tcp 192.168.10.0 0.0.0.255 172.16.1.00.0.0.255 eq 80 允許192.168.10.0網(wǎng)絡(luò)通過WEB80端口訪問172.16.1.0的服務(wù)器 訪問控制列表(ACL)是應(yīng)用在路由器接口上的指令列表。這些指令列表用來告訴路由器哪些數(shù)據(jù)包可以收、哪些數(shù)據(jù)包需要拒絕。至于數(shù)據(jù)包是被接收還是拒絕,可以由類似于源地址、目的地址、端口號等的特定指示條件來判斷決定。 將數(shù)據(jù)包和訪問列表進行比較時應(yīng)遵循的重要規(guī)則: 1.數(shù)據(jù)包到來,則按順序比較訪問列表的每一行。 2.按順序比較訪問列表的各行,直到找到匹配的一行,一旦數(shù)據(jù)包和某行匹配,執(zhí)行該行規(guī)則,不再進行后續(xù)比較。 3.最后一行隱含“deny”的意義。如果數(shù)據(jù)包與訪問列表中的所有行都不匹配,將被丟棄。 4.IP訪問控制列表會發(fā)送一個ICMP主機不可達的消息到數(shù)據(jù)包的發(fā)送者,然后丟棄數(shù)據(jù)包。 5.如果某個列表掛接在實際接口上,刪除列表后,默認的deny any 規(guī)則會阻斷那個接口的所有數(shù)據(jù)流量。 有兩種類型的ACL:標準的訪問列表和擴展的訪問列表 標準訪問控制列表控制基于過濾源地址的信息流。編號范圍1-99,舉例: router(config)#access-list 10 permit 172.16.0.0 0.0.255.255 router(config)#access-list 20 deny 192.168.1.0 0.0.0.255 router(config)#access-list 20 permit any//注意這個編號20的ACL的順序,如果調(diào)換順序,就不起任何作用。 router(config)#access-list 30 deny host 192.168.1.1//host表精確匹配,默認掩碼為0.0.0.0,指定單個主機。 注意:在訪問列表的最后默認定義了一條deny any any 語句。 擴展訪問控制列表比標準訪問控制列表具有更多的匹配項,包括協(xié)議類型、源地址、目的地址、源端口、目的端口、IP優(yōu)先級等。編號范圍是從100到199,格式一般為: access-list ACL號 [permit|deny] [協(xié)議] [定義過濾源主機范圍] [定義過濾源端口][定義過濾目的主機訪問] [定義過濾目的端口] access-list 100 permit ip 172.16.0.0 0.0.255.255 192.168.1.00.0.0.255 access-list 101 deny tcp any host 192.168.1.1 eq www//這句命令是將所有主機訪問192.168.1.1上網(wǎng)頁服務(wù)(WWW)TCP連接的數(shù)據(jù)包丟棄。 access-list 101 permit tcp any host 198.78.46.8 eq smtp//允許來自任何主機的TCP報文到達特定主機198.78.46.8的smtp服務(wù)端口(25) 注意:這里eq就是等于的意思。端口號的指定可以用幾種不同的方法??梢杂脭?shù)字或一個可識別的助記符??梢允褂?0或http或www來指定Web的超文本傳輸協(xié)議。對于使用數(shù)字的端口號,還可以用'<'、'>'、'='以及不等于來進行設(shè)置?!?br>命名訪問列表只是創(chuàng)建標準或擴展訪問列表的另一種方法而已。所謂命名是以列表名代替列表編號來定義IP訪問控制列表的。舉例如下: Router(config)#ip access-list extended http-not Router(config-ext-nacl)#deny tcp 172.16.10.0 0.0.0.255 host172.16.1.2 eq 23 Router(config-ext-nacl)# permit ip any any Router(config-ext-nacl)#exit 入口訪問列表和出口訪問列表:通過上面方法創(chuàng)建的訪問列表,要應(yīng)用到路由器的一個要進行過濾的接口上,并且指定將它應(yīng)用到哪一個方向的流量上時,才真正的被激活而起作用。 訪問列表的調(diào)用:在接口下使用: router(config)#interface s0/1 router(config-if)# ip access-group 10 in router(config-if)# ip access-group 20 out ACL可在VTY下調(diào)用,但只能用標準列表: R1(config)#access-list 10 permit 192.168.1.1 R1(config)#line vty 0 4 R1(config-line)#access-class 10 in 下面是通用的ACL配置規(guī)則: 1.每個接口、每個協(xié)議或每個方向上只可以應(yīng)用一個訪問列表。(因為ACL末尾都隱含拒絕的語句,經(jīng)過第一個ACL的過濾,不符合的包都被丟棄,也就不會留下任何包和第二個ACL比較)。 2.除非在ACL末尾有permitany命令,否則所有和列表條件不符的包都將丟棄,所以每個ACL至少要有一個運行語句,以免其拒絕所有流量。 3.要先創(chuàng)建ACL,再將其應(yīng)用到一個接口上,才會生效。 4.ACL過濾通過路由器的流量,但不過濾該路由器產(chǎn)生的流量。 5.IP標準訪問列表盡可能的應(yīng)用在靠近目的地的接口上,因為他是基于源地址過濾的,放在源端沒有意義。 6.IP擴展訪問列表盡可能的應(yīng)用在靠近源地址的接口上,因為它可以基于目的地址、協(xié)議等過濾,放在源端過濾,免得需要過濾的數(shù)據(jù)包還被路由到目的端才被過濾,以節(jié)省帶寬。 '、'>
|