流量訪問控制
❶ ACL是什麼
訪問控制列表(ACL)是一種基於包過濾的訪問控制技術。
它可以根據設定的條件對介面上的數據包進行過濾,允許其通過或丟棄。訪問控制列表被廣泛地應用於路由器和三層交換機,藉助於訪問控制列表,可以有效地控制用戶對網路的訪問,從而最大程度地保障網路安全。
訪問控制列表具有許多作用,如限制網路流量、提高網路性能;通信流量的控制,例如ACL可以限定或簡化路由更新信息的長度,從而限制通過路由器某一網段的通信流量;提供網路安全訪問的基本手段。
ACL的功能:
1、限制網路流量、提高網路性能。例如,ACL可以根據數據包的協議,指定這種類型的數據包具有更高的優先順序,同等情況下可預先被網路設備處理。
2、提供對通信流量的控制手段。
3、提供網路訪問的基本安全手段。
4、在網路設備介面處,決定哪種類型的通信流量被轉發、哪種類型的通信流量被阻塞。
以上內容參考:網路—ACL
❷ CCNA考點精析——訪問控制列表
訪問控制列表使用目的:
1、限制網路流量、提高網路性能。例如隊列技術,不僅限制了網路流量,而且減少了擁塞
2、提供對通信流量的控制手段。例如可以用其控制通過某台路由器的某個網路的流量
3、提供了網路訪問的一種基本安全手段。例如在公司中,允許財務部的員工計算機可以訪問財務伺服器而拒絕其他部門訪問財務伺服器
4、在路由器介面上,決定某些流量允許或拒絕被轉發。例如,可以允許FTP的通信流量,而拒絕TELNET的通信流量。
工作原理:
ACL中規定了兩種操作,所有的應用都是圍繞這兩種操作來完成的:允許、拒絕
注意:ACL是CISCO IOS中的一段程序,對於管理員輸入的指令,有其自己的執行順序,它執行指令的順序是從上至下,一行行的執行,尋找匹配,一旦匹配則停止繼續查找,如果到末尾還未找到匹配項,則執行一段隱含代碼——丟棄DENY.所以在寫ACL時,一孫檔定要注意先後順序。
例如:要拒絕來自172.16.1.0/24的流量,把ACL寫成如下形式
允許172.16.0.0/18
拒絕172.16.1.0/24
允許192.168.1.1/24
拒絕172.16.3.0/24
那麼結果將於預期背道而馳,把表一和表二調換過來之後,再看一下有沒有問題:
拒絕172.16.1.0/24
允許172.16.0.0/18
允許192.168.1.1/24
拒絕172.16.3.0/24
發現172.16.3.0/24和剛才的情況一樣,這個表項並未起到作用,因為執行到表二就發現匹配,於是路由器將會允許,和我們的需求完全相反,那麼還需要把表項四的位置移到前面
最後變成這樣:
拒絕172.16.1.0/24
拒絕172.16.3.0/24
允許172.16.0.0/18
允許192.168.1.1/24
可以發現,在ACL的配置中的一個規律:越精確的表項越靠前,而越籠統的表項越靠後放置
ACL是一組判斷語句的集合,它主要用於對如下數據進行控制:
1、入站數據;
2、出站數據;
3、被路由器中繼的數據
工作過程
1、無論在路由器上有無ACL,接到數據包的處理方法都是一樣的:當數據進入某個入站口時,路由器首先對其進行檢查,看其是否可路由,如果不可路由那麼就丟棄,反之通過查路由選擇表發現該路由的詳細信息——包括AD,METRIC……及對應的出介面;
2、這時,我們假定該數據是可路由的,並且已經順利完成了第一步,找出了要將其送出站的介面,此時路由器檢查該出站口有沒有被編入ACL,如果沒有ACL 的話,則直接從該口送出。如果該介面編入了ACL,那塵穗么就比較麻煩。第一種情況——路由器將按照從上到下的順序依次把該數據和ACL進行匹配,從上往下,逐條執行,當發現其中某條ACL匹配,則根據該ACL指定的操作對數據進行相應處理派凱卜(允許或拒絕),並停止繼續查詢匹配;當查到ACL的最末尾,依然未找到匹配,則調用ACL最末尾的一條隱含語句deny any來將該數據包丟棄。
對於ACL,從工作原理上來看,可以分成兩種類型:
1、入站ACL
2、出站ACL
上面的工作過程的解釋是針對出站ACL的。它是在數據包進入路由器,並進行了路由選擇找到了出介面後進行的匹配操作;而入站ACL是指當數據剛進入路由器介面時進行的匹配操作,減少了查表過程
並不能說入站表省略了路由過程就認為它較之出站表更好,依照實際情況而定:
如圖所示,採用基本的ACL——針對源的訪問控制
要求如下:
1、拒絕1.1.1.2訪問3.1.1.2但允許訪問5.1.1.2
2、拒絕3.1.1.2訪問1.1.1.2但允許訪問5.1.1.2
採用基本的ACL來對其進行控制
R1(config)#access-list 1 deny 1.1.1.2 0.0.0.255
R1(config)#access-list 1 permit any
R1(config)#int e0
R1(config-if)#access-group 1 in
R2(config)#access-list 1 deny 3.1.1.2 0.0.0.255
R2(config)#access-list 1 permit any
R2(config)#int e0
R2(config-if)#access-group 1 in
從命令上來看,配置似乎可以滿足條件。
假定從1.1.1.2有數據包要發往3.1.1.2,進入路由器介面E0後,這里採用的是入站表,則不需查找路由表,直接匹配ACL,發現有語句 access-list 1 deny 1.1.1.2 0.0.0.255拒絕該數據包,丟棄;假定從3.1.1.2有數據包要發往1.1.1.2,同上。
當1.1.1.2要和5.1.1.2通信,數據包同樣會被拒絕掉
當3.1.1.2要和5.1.1.2通信,數據包也會被拒絕掉
該ACL只能針對源進行控制,所以無論目的是何處,只要滿足源的匹配,則執行操作。
如何解決此問題?
1、把源放到離目標最近的地方,使用出站控制;
2、使ACL可以針對目的地址進行控制。
第一項很好理解,因為標準的ACL只能針對源進行控制,如果把它放在離源最近的地方,那麼就會造成不必要的數據包丟失的情況,一般將標准ACL放在離目標最近的位置!
第二種辦法,要針對目標地址進行控制。因為標准ACL只針對源,所以,這里不能採用標准ACL,而要採用擴展ACL.但是它也有它的劣勢,對數據的查找項目多,雖然控制很精確,但是速度卻相對慢些。
簡單比較以下標准和擴展ACL
標准ACL僅僅只針對源進行控制
擴展ACL可以針對某種協議、源、目標、埠號來進行控制
從命令行就可看出
標准:
Router(config)#access-list list-number
擴展:
Router(config)#access-list list-number protocol source {source-mask destination destination-mask} [operator operand] [established] [log]
Protocol—用來指定協議類型,如IP、TCP、UDP、ICMP以及IGRP等
Source and destination—源和目的,分別用來標示源地址及目的地址
Source-mask and destination-mask—源和目的的通配符掩碼
Operator operand—It,gt,eq,neq(分別是小於、大於、等於、不等於)和一個埠號
Established—如果數據包使用一個已建連接(例如,具有ACK位組),就允許TCP信息通過
為了避免過多的查表,所以擴展ACL一般放置在離源最近的地方
看完上面的內容後,那麼大家可以看以下幾道關於CISCO訪問控制列表的例題:
1、What are two reasons that a network administrator would use access lists? (Choose two.)
A:to control vty access into a router
B:to control broadcast traffic through a router
C:to filter traffic as it passes through a router
D:to filter traffic that originates from the router
E:to replace passwords as a line of defense against security incursions
Answers: A, C
註:該題主要考察CISCO考生對ACL作用的理解:網路管理員在網路中使用ACL的兩個理由?
A選項指出了CISCO 訪問列表的一個用法:通過VTY線路來訪問路由器的訪問控制;
ACL不能對穿越路由器的廣播流量作出有效控制。
選項C也指明了ACL的另一個作用,那就是過濾穿越路由器的流量。這里要注意了,是「穿越」路由器的流量才能被ACL來作用,但是路由器本身產生的流量,比如路由更新報文等,ACL是不會對它起任何作用的:因為ACL不能過濾由路由器本身產生的流量,那麼D也是錯誤的;
2、For security reasons, the network administrator needs to prevent pings into the corporate networks from hosts outside the internetwork. Which protocol should be blocked with access control lists?
A: IP
B: ICMP
C: TCP
D: UDP
Answers: B
安全起見,網路管理員想要阻止來自Internet上的外部主機PING企業內部網路,哪種協議必須在訪問列表中被阻塞掉?PING使用的是ICMP協議,在ACL中,我們可以自己來定義需要被允許或者拒絕某些協議的流量。該題選B
3、Refer to the exhibit. The access list has been configured on the S0/0 interface of router RTB in the outbound direction. Which two packets, if routed to the interface, will be denied? (Choose two.)
access-list 101 deny tcp 192.168.15.32 0.0.0.15 any eq telnet
access-list 101 permit ip any any
訪問控制列表
A:source ip address: 192.168.15.5; destination port: 21
B:source ip address:, 192.168.15.37 destination port: 21
C:source ip address:, 192.168.15.41 destination port: 21
D:source ip address:, 192.168.15.36 destination port: 23
E:source ip address: 192.168.15.46; destination port: 23
Correct Answers: B, E
如圖,在RTB上配置了訪問列表,控制從S0/0口出去向外部的由192.168.15.32/29網段發起的telnet流量,其它流量允許通過。telnet使用23號埠,由此可以排除掉ABC三個選項。該題選擇D,E.