ACL

ACL

訪問控制列表(Access Control List,ACL) 是路由器和交換機接口的指令列表,用來控制連線埠進出的數據包。ACL適用於所有的被路由協定,如IP、IPX、AppleTalk等。信息點間通信和內外網路的通信都是企業網路中必不可少的業務需求,為了保證區域網路的安全性,需要通過安全策略來保障非授權用戶只能訪問特定的網路資源,從而達到對訪問進行控制的目的。簡而言之,ACL可以過濾網路中的流量,是控制訪問的一種網路技術手段。配置ACL後,可以限制網路流量,允許特定設備訪問,指定轉發特定連線埠數據包等。如可以配置ACL,禁止區域網路內的設備訪問外部公共網路,或者只能使用FTP服務。ACL既可以在路由器上配置,也可以在具有ACL功能的業務軟體上進行配置。ACL是物聯網中保障系統安全性的重要技術,在設備硬體層安全基礎上,通過對在軟體層面對設備間通信進行訪問控制,使用可程式方法指定訪問規則,防止非法設備破壞系統安全,非法獲取系統數據。

基本信息

基於時間

概述

一個很通常的需求,就是在某個公司里,有時希望限制員工在某個時間範圍內才可以訪問網頁,即HTTP服務,或其它服務,在時間範圍之外,就不能訪問,那么這樣的需求,就可以通過配置基於時間的ACL來實現。

要通過ACL來限制用戶在規定的時間範圍內訪問特定的服務,首先設備上必須配置好正確的時間。在相應的時間要允許相應的服務,這樣的命令,在配置ACL時,是正常配置的,但是,如果就將命令正常配置之後,默認是在所有時間內允許的,要做到在相應時間內允許,還必須為該命令加上一個時間限制,這樣就使得這條ACL命令只在此時間範圍內才能生效。而要配置這樣的時間範圍,是通過配置time-range來實現的,在time-range中定義好時間,再將此time-range跟在某ACL的條目之後,那么此條目就在該時間範圍內起作用,其它時間是不起作用的。

在定義time-range時,常用的時間簡單分為兩種,第一種叫做絕對時間(absolute),即這個時間只生效一次,比如2010年1月1月15:00;另一種時間叫做周期時間(periodic),即這個時間是會多次重複的,比如每周一,或者每周一到周五。

配置

ACLACL

前提:在R1路由器上需要提前配置好正確的時間,此步驟省略。

配置time-range

r1(config)#time-range TELNET

r1(config-time-range)#periodic weekdays 9:00 to 15:00

說明:定義的時間範圍為每周一到周五的9:00 to 15:00

配置ACL

說明:配置R1在上面的時間範圍內拒絕R2到R4的telnet,其它流量全部通過。

r1(config)#access-list 150 deny tcp host 10.1.1.2 any eq 23 time-range TELNET

r1(config)#access-list 150 permit ip any any

套用ACL

r1(config)#int f0/1

r1(config-if)#ip access-group 150 out

測試時間範圍內的流量情況

(1)查看當前R1的時間

r1#sh clock

14:34:33.002 GMT Thu Oct 1 2009

r1#

說明:當前時間為周四14:34,即在所配置的時間範圍內。

(2)測試R2向R4發起telnet會話

r2#telnet 14.1.1.4

Trying 14.1.1.4 ...

% Destination unreachable; gateway or host down

r2#

說明:可以看到,在規定的時間範圍內,R2向R4發起telnet會話是被拒絕的。

(3)測試除telnet外的其它流量

r2#ping 14.1.1.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 14.1.1.4, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r2#

說明:可以看到,在規定的時間範圍內,除了telnet之外,其它流量不受限制。

(4)測試除R2之外的設備telnet情況

r3#telnet 14.1.1.4

Trying 14.1.1.4 ... Open

r4>

說明:可以看到,除R2之外,其它設備telnet並不受限制。

測試時間範圍外的流量情況

(1)查看當前R1的時間

r1#sh clock

15:01:15.206 GMT Thu Oct 1 2009

r1#

說明:當前時間為周四15:01,即在所配置的時間範圍之外。

(2)測試R2向R4發起telnet會話

r2#telnet 14.1.1.4

Trying 14.1.1.4 ... Open

r4>

說明:在時間範圍之外,所限制的流量被放開。

正確放置

ACL通過過濾數據包並且丟棄不希望抵達目的地的數據包來控制通信流量。然而,網路能否有效地減少不必要的通信流量,這還要取決於網路管理員把ACL放置在哪個地方。

假設在的一個運行TCP/IP協定的網路環境中,網路只想拒絕從RouterA的T0接口連線的網路到RouterD的E1接口連線的網路的訪問,即禁止從網路1到網路2的訪問。

根據減少不必要通信流量的通行準則,網管員應該儘可能地把ACL放置在靠近被拒絕的通信流量的來源處,即RouterA上。如果網管員使用標準ACL來進行網路流量限制,因為標準ACL只能檢查源IP位址,所以實際執行情況為:凡是檢查到源IP位址和網路1匹配的數據包將會被丟掉,即網路1到網路2、網路3和網路4的訪問都將被禁止。由此可見,這個ACL控制方法不能達到網管員的目的。同理,將ACL放在RouterB和RouterC上也存在同樣的問題。只有將ACL放在連線目標網路的RouterD上(E0接口),網路才能準確實現網管員的目標。由此可以得出一個結論: 標準ACL要儘量靠近目的端。

網管員如果使用擴展ACL來進行上述控制,則完全可以把ACL放在RouterA上,因為擴展ACL能控制源地址(網路1),也能控制目的地址(網路2),這樣從網路1到網路2訪問的數據包在RouterA上就被丟棄,不會傳到RouterB、RouterC和RouterD上,從而減少不必要的網路流量。因此,我們可以得出另一個結論:擴展ACL要儘量靠近源端。ACL的主要的命令 命令描述access-list 定義訪問控制列表參數ip access-group 指派一個訪問控制列表到一個接口ip access-list extended 定義一個擴展訪問控制列表Remark 注釋一個訪問控制列表show ip access-list 顯示已配置的訪問控制列表。

定義規範

(1)ACL的列表號指出了是哪種協定的ACL。各種協定有自己的ACL,而每個協定的ACL又分為標準ACL和擴展ACL。這些ACL是通過ACL列表號區別的。如果在使用一種訪問ACL時用錯了列表號,那么就會出錯誤。

(2)一個ACL的配置是每協定、每接口、每方向的。路由器的一個接口上每一種協定可以配置進方向和出方向兩個ACL。也就是說,如果路由器上啟用了IP和IPX兩種協定棧,那么路由器的一個接口上可以配置IP、IPX兩種協定,每種協定進出兩個方向,共四個ACL。

(3)ACL的語句順序決定了對數據包的控制順序。在ACL中各描述語句的放置順序是很重要的。當路由器決定某一數據包是被轉發還是被阻塞時,會按照各項描述語句在ACL中的順序,根據各描述語句的判斷條件,對數據報進行檢查,一旦找到了某一匹配條件就結束比較過程,不再檢查以後的其他條件判斷語句。

(4)最有限制性的語句應該放在ACL語句的首行。把最有限制性的語句放在ACL語句的首行或者語句中靠近前面的位置上,把“全部允許”或者“全部拒絕”這樣的語句放在末行或接近末行,可以防止出現諸如本該拒絕(放過)的數據包被放過(拒絕)的情況。

(5)新的表項只能被添加到ACL的末尾,這意味著不可能改變已有訪問控制列表的功能。如果必須改變,只有先刪除已存在的ACL,然後創建一個新ACL,將新ACL套用到相應的接口上。

(6)在將ACL套用到接口之前,一定要先建立ACL。首先在全局模式下建立ACL,然後把它套用在接口的出方向或進方向上。在接口上套用一個不存在的ACL是不可能的。

(7)ACL語句不能被逐條的刪除,只能一次性刪除整個ACL。

(8)在ACL的最後,有一條隱含的“全部拒絕”的命令,所以在 ACL里一定至少有一條“允許”的語句。

(9)ACL只能過濾穿過路由器的數據流量,不能過濾由本路由器上發出的數據包。

(10)在路由器選擇進行以前,套用在接口進入方向的ACL起作用。

(11)在路由器選擇決定以後,套用在接口離開方向的ACL起作用。

ACL會議(Annual Meeting of the Association for Computational Linguistics)

ACL會議是自然語言處理與計算語言學領域最高級別的學術會議,由計算語言學協會主辦,每年一屆。涉及對話(Dialogue)篇章(Discourse)評測( Eval)信息抽取( IE) 信息檢索( IR) 語言生成(LanguageGen) 語言資源(LanguageRes) 機器翻譯(MT) 多模態(Multimodal) 音韻學/ 形態學( Phon/ Morph) 自動問答(QA) 語義(Semantics) 情感(Sentiment) 語音(Speech) 統計機器學習(Stat ML) 文摘(Summarisation) 句法(Syntax) 等多個方面。

命令格式

access-list命令

(1)標準訪問列表

access-list access-list-number { permit | deny } {source [source-wildcard] | any}

命令解釋如下。

access-list:訪問列表命令。

access-list-number:訪問列表號碼,值為1~99.

permit:允許。

deny:拒絕。

source:源IP位址。

source-wildcard:源IP位址的通配符。

(2)擴展訪問列表

access-list access-list-number { permit | deny } { protocol \ protocol-keyword } { source [ source-wildcard ] | any } { destination destination-wildcard } | any }[protocol-specific options][log]

命令解釋如下。

access-list-number:訪問列表號碼,值為100~199.

protocol \ protocol-keyword:可使用的協定,包括IP、ICMP、IGRP、EIGRP、OSPF等。

destination destination-wild:目的IP位址,格式與源IP位址相同。

protocol-specific options:協定制定的選項。

log:記錄有關數據報進入訪問列表的信息。

相關搜尋

熱門詞條

聯絡我們