首頁 >服務與支持 >常見問題 >ACL是什么,如何配置?
ACL(Access Control List,訪問控制列表)也稱為訪問列表,有的文檔中還稱之為包過濾。ACL通過定義一系列包含“允許”或“拒絕”的規則語句,并將這些規則應用到設備接口上,對進出接口的數據包進行控制,從而提升網絡設備的安全性。
配置ACL能夠保障網絡安全、可靠和穩定,例如:
l 防止報文攻擊:針對IP、TCP或者ICMP報文的攻擊,對這些攻擊報文做“拒絕”處理。
l 網絡訪問控制:限制用戶訪問服務,例如只允許訪問WWW和電子郵件服務,其他服務如Telnet則禁止?;蛘咧辉试S在給定的時間段內訪問,或者只允許特定主機訪問網絡等。
l 網絡流量控制:結合QoS可以為重要的數據流進行優先服務保證。關于QoS的配置請參見“QoS”。
l 訪問列表
訪問列表有:基本訪問列表和動態訪問列表。
用戶可以根據需要選擇基本訪問列表或動態訪問列表。一般情況下,使用基本訪問列表已經能夠滿足安全需要。但攻擊者可能通過軟件假冒源地址欺騙設備,從而訪問網絡。而動態訪問列表在用戶訪問網絡以前,要求通過身份認證,使攻擊者難以訪問網絡。在敏感區域可以使用動態訪問列表保證網絡安全。
說明
通過假冒源地址欺騙設備即電子欺騙是所有訪問列表固有的問題,使用動態列表也會遭遇電子欺騙問題:攻擊者可能在用戶通過身份認證的有效訪問期間,假冒用戶的地址訪問網絡。解決該問題的方法有兩種,一種是盡量設置更短的用戶訪問空閑時間;另一種是使用IPsec加密協議對網絡數據進行加密,確保進入設備時,所有的數據都是加密的。
訪問列表一般配置在以下位置的網絡設備上:
○ 內部網和外部網(如Internet)之間的設備
○ 兩個網絡交界部分的設備
○ 接入控制端口的設備
ACE(Access Control Entry,訪問控制條目)是包含“允許(Permit)”或“拒絕(Deny)”兩種動作,以及過濾規則的一條語句。每個ACE都有一個序號,該序號可由設備自動分配或者手動配置。一條ACL中包含一個或者多個ACE。ACL通過ACE對數據包進行標識過濾。
ACL中ACE的順序決定了該ACE在訪問列表中的匹配優先級。網絡設備在處理報文時,按ACE的序號從小到大進行規則匹配,當找到匹配的ACE后則停止檢查后續的ACE。
例如創建一條序號為10的ACE,它拒絕所有的數據流通過。
10 deny ip any any
20 permit tcp 192.168.12.0 0.0.0.255 eq telnet any
由于序號為10的ACE拒絕了所有的IP報文,即使192.168.12.0/24網絡的主機Telnet報文,可以被序號為20的ACE匹配,該報文也將被拒絕。因為設備在檢查到報文和序號為10的ACE匹配后,便停止檢查后面序號為20的ACE。
又例如創建一條編號為10的ACE,它允許所有的IPv6數據流通過。
10 permit ipv6 any any
20 deny ipv6 host 200::1 any
由于序號為10的ACE允許所有的IPv6報文通過,主機200::1發出的IPv6報文,即使匹配序號為20的ACE,該報文也將被允許通過。因為設備在檢查到報文和第一條ACE匹配,便停止檢查后面序號為20的ACE。
l 步長
當設備為ACE自動分配序號時,兩個相鄰ACE序號之間的差值,稱為步長。例如,如果將步長設定為5,則設備按照5、10、15…這樣的遞增順序自動為ACE分配序號。如下所示。
5 deny ip any any
10 permit tcp 192.168.12.0 0.0.0.255 eq telnet any
當步長改變后,ACE序號會自動按新步長值重新分配。例如,當把步長改為10后,原來ACE序號從5、10、15變成5、15、25。
通過改變步長可以在兩個ACE之間插入新的ACE。例如創建了4個ACE,并通過手動配置ACE序號分別為1、2、3和4。如果希望能在序號1后面插入一條新的ACE,則可以先將步長修改為2,此時原先4個ACE的序號自動變為1、3、5和7,再插入一條手動配置的序號為2的ACE。
l 過濾域模板
過濾域指的是生成一條ACE時,根據報文中的哪些字段對報文進行識別、分類。過濾域模板就是這些字段的組合。ACE根據以太網報文的某些字段來標識以太網報文,這些字段包括:
二層字段(Layer 2 Fields):
○ 48位的源MAC地址(必須申明所有48位)
○ 48位的目的MAC地址(必須申明所有48位)
○ 16位的二層類型字段
三層字段(Layer 3 Fields):
○ 源IP地址字段(可以申明全部源IP地址值,或使用子網來定義一類流)
○ 目的IP地址字段(可以申明全部目的IP地址值,或使用子網來定義一類流)
○ 協議類型字段
四層字段(Layer 4 Fields):
○ 可以申明一個TCP的源端口、目的端口或者都申明,還可以申明源端口或目的端口的范圍。
○ 可以申明一個UDP的源端口、目的端口或者都申明,還可以申明源端口或目的端口的范圍。
例如,在創建一條ACE時需要根據報文的目的IP字段,對報文進行識別和分類。而在創建另一條ACE時,需要根據報文的源IP地址字段和UDP的源端口字段,對報文進行識別和分類。這兩條ACE就使用了不同的過濾域模板。
l 規則
規則(Rules)指的是ACE過濾域模板對應的值。例如,一條ACE的內容如下:
10 permit tcp host 192.168.12.2 any eq telnet
在這條ACE中,過濾域模板為以下字段的集合:源IP地址字段、目的IP地址字段、IP協議字段、TCP目的端口字段。對應的值(即規則)分別為:源IP地址為Host 192.168.12.2、目的IP地址為Any(即所有主機)、IP協議為TCP、TCP目的端口為Telnet。如圖1-1所示。
圖1-1 對ACE:permit tcp host 192.168.12.2 any eq telnet的分析
通過配置IP標準ACL,禁止財務部以外的部門訪問財務數據服務器。
圖1-3 IP標準ACL應用場景組網圖

l Device A配置IP標準ACL并添加訪問規則。
l Device A將IP標準ACL應用在連接財務數據服務器接口的出方向上。
(1) 配置IP標準ACL并添加訪問規則。
# Device A配置IP標準ACL并添加訪問規則。
DeviceA> enable
DeviceA# configure terminal
DeviceA(config)# ip access-list standard 1
DeviceA(config-std-nacl)# permit 10.1.1.0 0.0.0.255
DeviceA(config-std-nacl)# deny 11.1.1.1 0.0.0.255
DeviceA(config-std-nacl)# exit
(2) 將IP標準ACL應用到接口上。
# Device A將ACL應用在連接財務數據服務器接口的出方向上。
DeviceA(config)# interface gigabitethernet 0/3
DeviceA(config-if-GigabitEthernet 0/3)# ip access-group 1 out
# 檢查Device A設備ACL配置命令是否正確。
DeviceA# show access-lists
ip access-list standard 1
10 permit 10.1.1.0 0.0.0.255
20 deny 11.1.1.0 0.0.0.255
DeviceA# show access-group
ip access-group 1 out
Applied On interface GigabitEthernet 0/3
# 從開發部的某臺PC機上ping財務數據服務器,確認ping不通。
# 從財務部的某臺PC機上ping財務數據服務器,確認能ping通。
l DeviceA的配置文件
hostname DeviceA
!
ip access-list standard 1
10 permit 10.1.1.0 0.0.0.255
20 deny 11.1.1.0 0.0.0.255
!
interface GigabitEthernet 0/1
no switchport
ip address 10.1.1.1 255.255.255.0
!
interface GigabitEthernet 0/2
no switchport
ip address 11.1.1.1 255.255.255.0
!
interface GigabitEthernet 0/3
no switchport
ip access-group 1 out
ip address 12.1.1.1 255.255.255.0
!