ACL訪問控制列表

2021-04-12 22:34:48 字數 3493 閱讀 6292

acl的基本原理、功能與侷限性

網路中常說的acl是網路裝置所提供的一種訪問控制技術(其他很多地方也用到了acl),初期僅在路由器上支援,近些年來已經擴充套件到三層交換機,部分最新的二層交換機如2950之類也開始提供acl的支援。只不過支援的特性不是那麼完善而已。在其它廠商的路由器或多層交換機上也提供類似的技術,不過名稱和配置方式都可能有細微的差別。本文所有的配置例項均基於cisco ios的acl進行編寫。

功能:網路中的節點資源節點和使用者節點兩大類,其中資源節點提供服務或資料,使用者節點訪問資源節點所提供的服務與資料。acl的主要功能就是一方面保護資源節點,阻止非法使用者對資源節點的訪問,另一方面限制特定的使用者節點所能具備的訪問許可權。

配置acl的基本原則:在實施acl的過程中,應當遵循如下兩個基本原則:

最小特權原則:只給受控物件完成任務所必須的最小的許可權

最靠近受控物件原則:所有的網路層訪問許可權控制

侷限性:由於acl是使用包過濾技術來實現的,過濾的依據又僅僅只是第三層和第四層包頭中的部分資訊,這種技術具有一些固有的侷限性,如無法識別到具體的人,無法識別到應用內部的許可權級別等。因此,要達到end to end的許可權控制目的,需要和系統級及應用級的訪問許可權控制結合使用。

acl基本配置

acl配置技術詳解

「說那麼多廢話做什麼,趕快開始進行配置吧。」,a公司的網管說。呵呵,並不是我想說那麼多廢話,因為理解這些基礎的概念與簡單的原理對後續的配置和排錯都是相當有用的。說說看,你的第乙個需求是什麼。

「做為乙個網管,我不期望普通使用者能telnet到網路裝置」――acl基礎

「補充一點,要求能夠從我現在的機器(研發vlan的10.1.6.66)上telnet到網路裝置上去。」。hamm,是個不錯的主意,誰都不希望有人在自己的花園中撤野。讓我們分析一下,在a公司的網路中,除出口路由器外,其它所有的網路裝置段的是放在vlan1中,那個我只需要在到vlan 1的路由器介面上配置只允許源位址為10.1.6.66的包通過,其它的包通通過濾掉。這中只管源ip位址的acl就叫做

標準ip acl:

我們在swa上進行如下的配置:

access-list 1 permit host 10.1.6.66

access-list 1 deny any

int vlan 1

ip access-group 1 out

這幾條命令中的相應關鍵字的意義如下:

access-list:配置均acl的關鍵字,所有的acl均使用這個命令進行配置。

access-list後面的1:acl號,acl號相同的所有acl形成乙個組。在判斷乙個包時,使用同一組中的條目從上到下逐一進行判斷,一遇到滿足的條目就終止對該包的判斷。1-99為標準的ip acl號,標準ip acl由於只讀取ip包頭的源位址部分,消耗資源少。

permit/deny:操作。permit是允許通過,deny是丟棄包。

host 10.1.6.66/any:匹配條件,等同於10.1.6.66 0.0.0.0。剛才說過,標準的acl只限制源位址。host 10.1.6.66(10.1.6.66 0.0.0.0)的意思是只匹配源位址為10.1.6.66的包。0.0.0.0是wildcards,某位的wildcards為0表示ip位址的對應位必須符合,為1表示ip位址的對應位不管是什麼都行。簡單點說,就是255.255.255.255減去子網掩碼後的值,0.0.0.0的wildcards就是意味著ip位址必須符合10.1.6.66,可以簡稱為host 10.1.6.66。any表示匹配所有位址。

注意:ios中的acl均使用wildcards,並且會用wildcards對ip位址進行嚴格的對齊,如你輸入一條access-list 1 permit 10.1.1.129 0.0.0.31,在你show access-list看時,會變成access-list 1 permit 10.1.1.128 0.0.0.31,pixos中的acl均使用subnet masks,並且不會進行對齊操作。

int vlan1///ip access-group 1 out:這兩句將access-list 1應用到vlan1介面的out方向。其中1是acl號,和相應的acl進行關聯。out是對路由器該介面上哪個方向的包進行過濾,可以有in和out兩種選擇。

注意:這裡的in/out都是站在路由器或三層模組(以後簡稱r)上看的,in表示從該介面進入r的包,out表示從該介面出去的包。

好了,這就是乙個最基本的acl的配置方法。什麼,你說普通使用者還能telnet到rta?那你在int vlan3上現加乙個ip access-group 1 out吧。hammmm,等等,你這樣加上去普通使用者就訪問不了internet了。讓我們把剛才的acl去掉,重新寫乙個。

回憶一下,我們的目的是除了10.1.6.66能夠進行telnet操作外,其它使用者都不允許進行telnet操作。剛才我們說過,標準的ip acl只能控制源ip位址,不能控制到埠。要控制到第四層的埠,就需要使用到:

擴充套件的ip acl的配置

先看看配置例項吧。在swa上進行如下配置:

int vlan 1

no ip access-group 1 out

exit

no access-list 1

access-list 101 permit tcp host 10.1.6.66 any eq telnet

access-list 101 deny tcp any any eq telnet

int vlan 1

ip access-group 101 out

int vlan 3

ip access-group 101 out

你應該注意到到這裡的acl有一些變化了,現在對變化的部分做一些說明:

int vlan 1///no ip access-group 1 out///exit///no access-list 1:取消access-list 1,對於非命名的acl,可以只需要這一句就可以全部取消。注意,在取消或修改乙個acl前,必須先在它所應用的介面上先把應用給no掉,否則會導致相當嚴重的後果。

tcp host 10.1.6.66 any eq telnet:匹配條件。完整格式為:協議 源位址 源wildcards [關係] [源埠] 目的位址 目的wildcards [關係] [目的埠]。其中協議可以是ip、tcp、udp、eigrp等,內為可選字段。僅在協議為tcp/udp等具備埠號的協議才有用。關係可以是eq(等於)、neq(不等於)、lt(大於)、range(範圍)等。埠一般為數字的1-65535,對於周知埠,如23(服務名為telnet)等可以用服務名代替。源埠和目的埠不定義時表示所有埠。

把這個acl應用上去後,使用者們開始打**來罵娘了,因為他們都訪問不了internet了,是**出了問題了呢?

注意:所有的acl,預設情況下,從安全角度考慮,最後都會隱含一句deny any(標準acl)或deny ip any any(擴充套件ip acl)。所以在不了解業務會使用到哪些埠的情況下,最好在acl的最後加上一句permit ip any any,在這裡就是access-list 101 permit ip any any。 

ACL訪問控制列表

技術從來都是一把雙刃劍,網路應用與網際網路的普及在大幅提高企業的生產經營效率的同時,也帶來了諸如資料的安全性,員工利用網際網路做與工作不相干事等負面影響。如何將乙個網路有效的管理起來,盡可能的降低網路所帶來的負面影響就成了擺在網路管理員面前的乙個重要課題。a公司的某位可憐的網管目前就面臨了一堆這樣的...

訪問控制列表 ACL

訪問控制列表的條件引數都在ip包中,協議號和ip位址 源位址和目的位址 都在ip包頭部分,埠號在ip包的資料部分,也就是第四層頭部。訪問控制列表是應用在路由器介面的指令列表,這些指令列表用來告訴路由器哪些資料報可以接收 哪些資料報需要拒絕。訪問控制是網路安全防範和保護的主要策略,它的主要任務是保證網...

ACL訪問控制列表

ip access group 1 in out 不管此處是in還是out pc1都將無法訪問pc2,但是這兩種情況下,資料報被阻止的情況不一樣,如果應用的是 ip access group 1 out,那麼從pc1傳送出來的資料報,只能傳到f0 1介面,但不能通過此介面,因為此時訪問列表將pc1傳...