標準ACL、擴展ACL和命名ACL的配置詳解

訪問控制列表(ACL)是應用在路由器接口的指令列表(即規則)。這些指令列表用來告訴路由器,那些數據包可以接受,那些數據包需要拒絕。


訪問控制列表(ACL)的工作原理

ACL使用包過濾技術,在路由器上讀取OSI七層模型的第3層和第4層包頭中的信息。如源地址,目標地址,源端口,目標端口等,根據預先定義好的規則,對包進行過濾,從而達到訪問控制的目的。

ACl是一組規則的集合,它應用在路由器的某個接口上。對路由器接口而言,訪問控制列表有兩個方向。

出:已經過路由器的處理,正離開路由器的數據包。

入:已到達路由器接口的數據包。將被路由器處理。

如果對路由器的某接口應用了ACL,那麼路由器對數據包應用該組規則進行順序匹配,使用匹配即停止的,不匹配則使用默認規則的方式來過濾數據包。如下圖:

153716719.jpg

訪問控制列表的類型

標準訪問控制列表:根據數據包的源IP地址來允許或拒絕數據包,標準訪問控制列表的訪問控制列表號是1-99。

擴展訪問控制列表:根據數據包的源IP地址,目的IP地址,指定協議,端口和標誌,來允許或拒絕數據包。擴展訪問控制列表的訪問控制列表號是100-199


配置標準控制列表

創建標準ACL的語法如下:

Router(config)#access-listaccess-list-number{permit|deny}source[souce-wildcard]

下面是命令參數的詳細說明

access-list-number:訪問控制列表號,標準ACL取值是1-99。

permit|deny:如果滿足規則,則允許/拒絕通過。

source:數據包的源地址,可以是主機地址,也可以是網絡地址。

source-wildcard:通配符掩碼,也叫做反碼,即子網掩碼去反值。如:正常子網掩碼255.255.255.0取反則是0.0.0.255。

刪除已建立的標準ACL語法如下:

Router(config)#noaccess-listaccess-list-number

列如:創建一個ACL允許192.168.1.0網段的所有主機。

Router(config)#access-list1permit192.168.1.00.0.0.255

列如:創建一個ACL允許某個主機。

Router(config)#access-list1permithost10.0.0.1

列如:創建一個默認ACL拒絕所有主機訪問。

Router(config)#access-list1denyany

注意:上述中的關鍵字host可以指定一個主機地址,而不用寫子網反碼,而any可以代表所有主機。


配置擴展訪問控制列表

創建擴展的ACL語法如下:

Router(config)#access-listaccess-list-number{permit|deny}protocol{sourcesouce-wildcarddestinationdestination-wildcard}[operatoroperan]

下面是命令參數的詳細說明

access-list-number:訪問控制列表號,擴展ACL取值是100-199。

permit|deny:如果滿足規則,則允許/拒絕通過。

protocol:用來指定協議的類型,如IP,TCP,UDP,ICMP等。

source、destination:源和目的,分別用來標示源地址和目的地址。

souce-wildcard、destination-wildcard:子網反碼,souce-wildcard是源反碼,destination-wildcard是目標反碼。

operatoroperan:lt(小於)、gt(大於)、eq(等於)、neq(不等於)一個端口號。

刪除已建立的擴展ACL語法如下:

Router(config)#noaccess-listaccess-list-number

列如:允許192.168.1.0/24訪問192.168.2.0/24,而拒絕其他所有主機訪問。

Router(config)#access-list101permitip192.168.1.00.0.0.255192.168.2.00.0.0.255

Router(config)#access-list101denyipanyany

列如:拒絕網絡192.168.1.0/24訪問FTP服務器192.168.2.100/24,而允許其他主機訪問。

Router(config)#access-list102denytcp192.168.1.00.0.0.255host192.168.2.100eq21

Router(config)#access-list102permitipanyany

列如:禁止網絡192.168.1.0/24中的主機ping同服務器192.168.2.200/24,而允許其它主機訪問。

Router(config)#access-list103denyicmp192.168.1.00.0.0.255host192.168.1.200echo

Router(config)#access-list103permitipanyany


將創建好的ACL應用與路由器的接口上

不管是標準ACL還是擴展ACL只有將創建好的ACL應用與路由器的接口上纔算是有效的。語法如下:

Router(config-if)#ipaccess-groupaccess-list-number{in|out}

參數解釋如下:

access-list-number:創建ACL時指定的訪問控制列表號

in:應用到入站接口。

out:應用出站接口。

取消接口上的ACL應用可以使用如下命令:

Router(config-if)#noipaccess-groupaccess-list-number{in|out}

可以使用showaccess-lists命令查看ACL配置。

注意:不管是標準ACL或者是擴展ACL,只要應用了該規則就不可以在向裏面添加新的規則了,只能是刪除整個ACL。這樣很不方便我們管理ACL,那麼我們改這麼辦呢?下面我們來講解命名訪問控制列表。


配置命名訪問控制列表

所謂的命名控制列表就是給控制列表取個名字,而不是想上面所述的使用訪問控制列表號。我們通過命令訪問控制列表可以很方便的管理ACL規則,可以隨便添加和刪除規則,而無需刪除整個訪問控制列表了。

創建命名訪問控制列表的語法如下:

Router(config)#ipaccess-list{standard|extended}access-list-name

下面是命令參數的詳細說明

standard:創建標準的命名訪問控制列表。

extended:創建擴展的命名訪問控制列表。

access-list-name:命名控制列表的名字,可以是任意字母和數字的組合。

標準命名ACL語法如下:

Router(config-std-nacl)#[Sequence-Number]{permit|deny}source[souce-wildcard]

擴展命名ACL語法如下:

Router(config-ext-nacl)#[Sequence-Number]{permit|deny}protocol{sourcesouce-wildcarddestinationdestination-wildcard}[operatoroperan]

無論是配置標準命名ACL語句還是配置擴展命名ACL語句,都有一個可選參數Sequence-Number。Sequence-Number參數表明了配置的ACL語句在命令ACL中所處的位置,默認情況下,第一條爲10,第二條爲20,以此類推。Sequence-Number可以很方便地將新添加的ACL語句插於到原有的ACL列表的指定位置,如果不選擇Sequence-Number,默認添加到ACL列表末尾並且序列號加10。

刪去以創建的命名ACL語法如下:

Router(config)#noipaccess-list{standard|extended}access-list-name

對於命名ACL來說,可以刪除單條ACL語句,而不比刪除整個ACL。並且ACL語句可以有選擇的插入到列表中的某個位置,使得ACL配置更加方便靈活。

如果要刪除某一ACL語句,可以使用“noSequence-Number”或“noACL”語句兩種方式。

列如:將一條新添加的ACL加入到原有標準命名ACL的序列15的位置。內容爲允許主機192.168.1.1/24訪問Internet。

Router(config)#ipaccess-liststandardtest1

Router(config-std-nacl)#15permithost192.168.1.1

列如:創建擴展命名ACL,內容爲拒絕192.168.1.0/24訪問FTP服務器192.168.2.200/24,允許其他主機。

Router(config)#ipaccess-listextendedtest2

Router(config-ext-nacl)#denytcp192.168.1.00.0.0.255host192.168.2.200eq21

Router(config-ext-nacl)#permitipanyany

將命名ACL應用於接口語法如下:

Router(config-if)#ipaccess-groupaaccess-list-name{in|out}

取消命名ACL的應用語法如下:

Router(config-if)#noipaccess-groupaaccess-list-name{in|out}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章