訪(fǎng)問(wèn)控制列表-細(xì)說(shuō)ACL那些事兒(初步認(rèn)識(shí)ACL)

ACL,是Access Control List的簡(jiǎn)稱(chēng),中文名稱(chēng)叫“訪(fǎng)問(wèn)控制列表”,它由一系列規(guī)則(即描述報(bào)文匹配條件的判斷語(yǔ)句)組成。這些條件,可以是報(bào)文的源地址、目的地址、端口號(hào)等。這樣解釋ACL,大家是不是覺(jué)得太抽象了!打個(gè)比方,ACL其實(shí)是一種報(bào)文過(guò)濾器,ACL規(guī)則就是過(guò)濾器的濾芯。安裝什么樣的濾芯(即根據(jù)報(bào)文特征配置相應(yīng)的ACL規(guī)則),ACL就能過(guò)濾出什么樣的報(bào)文了。

看看ACL長(zhǎng)啥模樣。話(huà)不多說(shuō),先上圖!


圖片.png

ACL分類(lèi)

首先,圖中是一個(gè)數(shù)字型ACL,ACL編號(hào)為2000。這類(lèi)似于人類(lèi)的身份證號(hào),用于唯一標(biāo)識(shí)自己的身份。當(dāng)然,人類(lèi)的身份證上不僅有身份證編號(hào),還有每個(gè)人自己的名字。ACL也同樣如此,除了數(shù)字型ACL,還有一種叫做命名型的ACL,它就能擁有自己的ACL名稱(chēng)。


圖片.png

通過(guò)名稱(chēng)代替編號(hào)來(lái)定義ACL,就像用域名代替IP地址一樣,可以方便記憶,也讓大家更容易識(shí)別此ACL的使用目的。
命名型ACL實(shí)際上是“名字+數(shù)字”的形式,可以在定義命名型ACL時(shí)同時(shí)指定ACL編號(hào)。如果不指定編號(hào),則由系統(tǒng)自動(dòng)分配。上圖就是一個(gè)既有名字“deny-telnet-login”又有編號(hào) “3998”的ACL。

ACL類(lèi)別 規(guī)則定義描述 編號(hào)范圍
基本ACL 僅使用報(bào)文的源IP地址、分片標(biāo)記和時(shí)間段信息來(lái)定義規(guī)則。 2000~2999
高級(jí)ACL 既可使用報(bào)文的源IP地址,也可使用目的地址、IP優(yōu)先級(jí)、ToS、DSCP、IP協(xié)議類(lèi)型、ICMP類(lèi)型、TCP源端口/目的端口、UDP源端口/目的端口號(hào)等來(lái)定義規(guī)則。 3000~3999
二層ACL 可根據(jù)報(bào)文的以太網(wǎng)幀頭信息來(lái)定義規(guī)則,如根據(jù)源MAC地址、目的MAC地址、以太幀協(xié)議類(lèi)型等。 4000~4999
用戶(hù)自定義ACL 可根據(jù)報(bào)文偏移位置和偏移量來(lái)定義規(guī)則。 5000~5999
用戶(hù)ACL 既可使用IPv4報(bào)文的源IP地址或源UCL(User Control List)組,也可使用目的地址或目的UCL組、IP協(xié)議類(lèi)型、ICMP類(lèi)型、TCP源端口/目的端口、UDP源端口/目的端口號(hào)等來(lái)定義規(guī)則。 6000~9999

ACL規(guī)則

接下來(lái),我們來(lái)看看圖中ACL的 “deny | permit”語(yǔ)句。這些條件語(yǔ)句,我們稱(chēng)作ACL規(guī)則(rule)。其中的“deny | permit”,稱(chēng)作ACL動(dòng)作,表示拒絕/允許。
ACL規(guī)則的編號(hào)范圍是0~4294967294,所有規(guī)則均按照規(guī)則編號(hào)從小到大進(jìn)行排序。系統(tǒng)按照規(guī)則編號(hào)從小到大的順序,將規(guī)則依次與報(bào)文匹配,一旦匹配上一條規(guī)則即停止匹配。
除了包含ACL動(dòng)作和規(guī)則編號(hào),ACL規(guī)則中還定義了源地址、生效時(shí)間段這樣的字段。這些字段,稱(chēng)作匹配選項(xiàng),它是ACL規(guī)則的重要組成部分。其實(shí),ACL提供了極其豐富的匹配選項(xiàng)。你可以選擇二層以太網(wǎng)幀頭信息(如源MAC、目的MAC、以太幀協(xié)議類(lèi)型)作為匹配選項(xiàng),也可以選擇三層報(bào)文信息(如源地址、目的地址、協(xié)議類(lèi)型)作為匹配選項(xiàng),還可以選擇四層報(bào)文信息(如TCP/UDP端口號(hào))等等等等。

步長(zhǎng)

步長(zhǎng),是指系統(tǒng)自動(dòng)為ACL規(guī)則分配編號(hào)時(shí),每個(gè)相鄰規(guī)則編號(hào)之間的差值。也就是說(shuō),系統(tǒng)是根據(jù)步長(zhǎng)值自動(dòng)為ACL規(guī)則分配編號(hào)的。
圖中的ACL 2000,步長(zhǎng)就是5。系統(tǒng)按照5、10、15…這樣的規(guī)律為ACL規(guī)則分配編號(hào)。如果將步長(zhǎng)調(diào)整為了2,那么規(guī)則編號(hào)會(huì)自動(dòng)從步長(zhǎng)值開(kāi)始重新排列,變成2、4、6…。


圖片.png

設(shè)置步長(zhǎng)的目的,是為了方便大家在ACL規(guī)則之間插入新的規(guī)則。
先來(lái)看個(gè)例子
假設(shè),一條ACL中,已包含了下面三條規(guī)則5、10、15。如果你希望源IP地址為1.1.1.3的報(bào)文也被禁止通過(guò),該如何處理呢?

rule 5 deny source 1.1.1.1 0  //表示禁止源IP地址為1.1.1.1的報(bào)文通過(guò)                   
rule 10 deny source 1.1.1.2 0 //表示禁止源IP地址為1.1.1.2的報(bào)文通過(guò)                    
rule 15 permit source 1.1.1.0 0.0.0.255 //表示允許源IP地址為1.1.1.0網(wǎng)段的報(bào)文通過(guò)

我們來(lái)分析一下。由于ACL匹配報(bào)文時(shí)遵循“一旦命中即停止匹配”的原則,所以源IP地址為1.1.1.1和1.1.1.2的報(bào)文,會(huì)在匹配上編號(hào)較小的rule 5和rule 10后停止匹配,從而被系統(tǒng)禁止通過(guò);而源IP地址為1.1.1.3的報(bào)文,則只會(huì)命中rule 15,從而得到系統(tǒng)允許通過(guò)。要想讓源IP地址為1.1.1.3的報(bào)文也被禁止通過(guò),我們必須為該報(bào)文配置一條新的deny規(guī)則。

rule 5 deny source 1.1.1.1 0  //表示禁止源IP地址為1.1.1.1的報(bào)文通過(guò)                   
rule 10 deny source 1.1.1.2 0 //表示禁止源IP地址為1.1.1.2的報(bào)文通過(guò)                    
rule 11 deny source 1.1.1.3 0 //表示禁止源IP地址為1.1.1.3的報(bào)文通過(guò)  
rule 15 permit source 1.1.1.0 0.0.0.255 //表示允許源IP地址為1.1.1.0網(wǎng)段的報(bào)文通過(guò)

在rule 10和rule 15之間插入rule 11后,源IP地址為1.1.1.3的報(bào)文,就可以先命中rule 11而停止繼續(xù)往下匹配,所以該報(bào)文將會(huì)被系統(tǒng)禁止通過(guò)。
試想一下,如果這條ACL規(guī)則之間間隔不是5,而是1(rule 1、rule 2、rule 3…),這時(shí)再想插入新的規(guī)則,該怎么辦呢?只能先刪除已有的規(guī)則,然后再配置新規(guī)則,最后將之前刪除的規(guī)則重新配置回來(lái)。如果這樣做,那付出的代價(jià)可真是太大了!
所以,通過(guò)設(shè)置ACL步長(zhǎng),為規(guī)則之間留下一定的空間,后續(xù)再想插入新的規(guī)則,就非常輕松了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 0×1.ACL概述ACL(Access Control List,訪(fǎng)問(wèn)控制列表),是一系列運(yùn)用到路由器接口的指令列...
    Zero___閱讀 3,013評(píng)論 0 3
  • 一、基礎(chǔ)知識(shí) 1.訪(fǎng)問(wèn)控制列表ACL,分為基本ACL(2000~2999)、高級(jí)ACL(3000~3999)、二層...
    Sec小玖閱讀 3,184評(píng)論 0 0
  • 防火墻的概念iptables的簡(jiǎn)介iptables命令網(wǎng)絡(luò)防火墻NATfirewalld服務(wù) 一、防火墻的概念 (...
    哈嘍別樣閱讀 1,977評(píng)論 0 1
  • DPDK提供了三種classify算法:最長(zhǎng)匹配LPM、精確匹配(Exact Match)和通配符匹配(ACL)。...
    cumirror閱讀 27,158評(píng)論 13 21
  • 2018.4.3 今天,臨近清明節(jié)假期,身邊的同學(xué)朋友,回家的回家,計(jì)劃旅行的旅行,我我身處此場(chǎng)景的,也耐不住性子...
    懿舒閱讀 177評(píng)論 0 0

友情鏈接更多精彩內(nèi)容