網(wǎng)絡(luò)層訪問權(quán)限控制技術(shù) ACL詳解(二) ACL基本配置
ACL配置技術(shù)詳解
本文引用地址:http://www.ex-cimer.com/article/201706/357705.htm“說那么多廢話做什么,趕快開始進(jìn)行配置吧。”,A公司的網(wǎng)管說。呵呵,并不是我想說那么多廢話,因?yàn)槔斫膺@些基礎(chǔ)的概念與簡單的原理對后續(xù)的配置和排錯都是相當(dāng)有用的。說說看,你的第一個需求是什么。
“做為一個網(wǎng)管,我不期望普通用戶能telnet到網(wǎng)絡(luò)設(shè)備”――ACL基礎(chǔ)
“補(bǔ)充一點(diǎn),要求能夠從我現(xiàn)在的機(jī)器(研發(fā)VLAN的10.1.6.66)上telnet到網(wǎng)絡(luò)設(shè)備上去。”。hamm,是個不錯的主意,誰都不希望有人在自己的花園中撤野。讓我們分析一下,在A公司的網(wǎng)絡(luò)中,除出口路由器外,其它所有的網(wǎng)絡(luò)設(shè)備段的是放在Vlan1中,那個我只需要在到VLAN 1的路由器接口上配置只允許源地址為10.1.6.66的包通過,其它的包通通過濾掉。這中只管源IP地址的ACL就叫做
標(biāo)準(zhǔn)IP ACL:
我們在SWA上進(jìn)行如下的配置:
access-list 1 permit host 10.1.6.66
access-list 1 deny any
int vlan 1
ip access-group 1 out
這幾條命令中的相應(yīng)關(guān)鍵字的意義如下:
access-list:配置均ACL的關(guān)鍵字,所有的ACL均使用這個命令進(jìn)行配置。
access-list后面的1:ACL號,ACL號相同的所有ACL形成一個組。在判斷一個包時,使用同一組中的條目從上到下逐一進(jìn)行判斷,一遇到滿足的條目就終止對該包的判斷。1-99為標(biāo)準(zhǔn)的IP ACL號,標(biāo)準(zhǔn)IP ACL由于只讀取IP包頭的源地址部分,消耗資源少。
permit/deny:操作。Permit是允許通過,deny是丟棄包。
host 10.1.6.66/any:匹配條件,等同于10.1.6.66 0.0.0.0。剛才說過,標(biāo)準(zhǔn)的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地址的對應(yīng)位必須符合,為1表示IP地址的對應(yīng)位不管是什么都行。簡單點(diǎn)說,就是255.255.255.255減去子網(wǎng)掩碼后的值,0.0.0.0的wildcards就是意味著IP地址必須符合10.1.6.66,可以簡稱為host 10.1.6.66。any表示匹配所有地址。
注意:IOS中的ACL均使用wildcards,并且會用wildcards對IP地址進(jìn)行嚴(yán)格的對齊,如你輸入一條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,并且不會進(jìn)行對齊操作。更為詳細(xì)的關(guān)于IP V4地址的資料可以參見拙著《IP v4基礎(chǔ)知識》http://www.ultratechnology.net/showarticle.php?s=articleid=60 一文
int vlan1///ip access-group 1 out:這兩句將access-list 1應(yīng)用到vlan1接口的out方向。其中1是ACL號,和相應(yīng)的ACL進(jìn)行關(guān)聯(lián)。Out是對路由器該接口上哪個方向的包進(jìn)行過濾,可以有in和out兩種選擇。
注意:這里的in/out都是站在路由器或三層模塊(以后簡稱R)上看的,in表示從該接口進(jìn)入R的包,out表示從該接口出去的包。
好了,這就是一個最基本的ACL的配置方法。什么,你說普通用戶還能telnet到RTA?那你在int vlan3上現(xiàn)加一個ip access-group 1 out吧。Hammmm,等等,你這樣加上去普通用戶就訪問不了internet了。讓我們把剛才的ACL去掉,重新寫一個。
回憶一下,我們的目的是除了10.1.6.66能夠進(jìn)行telnet操作外,其它用戶都不允許進(jìn)行telnet操作。剛才我們說過,標(biāo)準(zhǔn)的IP ACL只能控制源IP地址,不能控制到端口。要控制到第四層的端口,就需要使用到:
擴(kuò)展的IP ACL的配置
先看看配置實(shí)例吧。在SWA上進(jìn)行如下配置:
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
你應(yīng)該注意到到這里的ACL有一些變化了,現(xiàn)在對變化的部分做一些說明:
access-list 101:注意這里的101,和剛才的標(biāo)準(zhǔn)ACL中的1一樣,101是ACL號,表示這是一個擴(kuò)展的IP ACL。擴(kuò)展的IP ACL號范圍是100-199,擴(kuò)展的IP ACL可以控制源IP、目的IP、源端口、目的端口等,能實(shí)現(xiàn)相當(dāng)精細(xì)的控制,擴(kuò)展ACL不僅讀取IP包頭的源地址/目的地址,還要讀取第四層包頭中的源端口和目的端口,的IP在沒有硬件ACL加速情況下,會消耗大量的CPU資源。
int vlan 1///no ip access-group 1 out///exit///no access-list 1:取消access-list 1,對于非命名的ACL,可以只需要這一句就可以全部取消。注意,在取消或修改一個ACL前,必須先在它所應(yīng)用的接口上先把應(yīng)用給no掉,否則會導(dǎo)致相當(dāng)嚴(yán)重的后果。
tcp host 10.1.6.66 any eq telnet:匹配條件。完整格式為:協(xié)議 源地址 源wildcards [關(guān)系] [源端口] 目的地址 目的wildcards [關(guān)系] [目的端口]。其中協(xié)議可以是IP、TCP、UDP、EIGRP等,[]內(nèi)為可選字段。僅在協(xié)議為tcp/udp等具備端口號的協(xié)議才有用。關(guān)系可以是eq(等于)、neq(不等于)、lt(大于)、range(范圍)等。端口一般為數(shù)字的1-65535,對于周知端口,如23(服務(wù)名為telnet)等可以用服務(wù)名代替。源端口和目的端口不定義時表示所有端口。
把這個ACL應(yīng)用上去后,用戶們開始打電話來罵娘了,因?yàn)樗麄兌荚L問不了Internet了,是哪里出了問題了呢?
注意:所有的ACL,缺省情況下,從安全角度考慮,最后都會隱含一句deny any(標(biāo)準(zhǔn)ACL)或deny ip any any(擴(kuò)展IP ACL)。所以在不了解業(yè)務(wù)會使用到哪些端口的情況下,最好在ACL的最后加上一句permit ip any any,在這里就是access-list 101 permit ip any any。
現(xiàn)在用戶倒是能夠訪問Internet了,但我們的可憐的網(wǎng)管卻發(fā)現(xiàn)普通用戶還是能夠telnet到他的SWA上面,因?yàn)?/span>SWA上面有很多個網(wǎng)絡(luò)接口,而且使用擴(kuò)展的ACL會消耗很多的資源。有什么簡單的辦法能夠控制用戶對網(wǎng)絡(luò)設(shè)備的Telnet訪問,而又不消耗太多的資源呢?這就需要使用到:
對網(wǎng)絡(luò)設(shè)備自身的訪問如何進(jìn)行控制的技術(shù)
讓我們先把剛才配置的ACL都取掉(具體配置略,不然后讀者會以為我在騙稿費(fèi)了。),再在每臺網(wǎng)絡(luò)設(shè)備上均進(jìn)行如下配置:
access-list 1 permit host 10.1.6.66
line vty 0 4(部分設(shè)備是15)
access-class 1 in
這樣就行了,telnet都是訪問的設(shè)備上的line vty,在line vty下面使用access-class與ACL組進(jìn)行關(guān)聯(lián),in關(guān)鍵字表示控制進(jìn)入的連接。
就這么簡單?wk,你丫是不是在玩我們,為什么還要繞一大圈?臭雞蛋和爛西紅柿開始在70的腦袋上方狂飛。(5555555,偶也只是想向大家把ACL的基礎(chǔ)知識講的明白一些的嘛)。經(jīng)過剛才的配置,我們可以理出一個簡單的ACL配置步驟了:
u 分析需求,找清楚需求中要保護(hù)什么或控制什么;為方便配置,最好能以表格形式列出。在本文的后面會舉例的。
u 分析符合條件的數(shù)據(jù)流的路徑,尋找一個最適合進(jìn)行控制的位置;
u 書寫ACL,并將ACL應(yīng)用到接口上;
u 測試并修改ACL。
當(dāng)A公司的領(lǐng)導(dǎo)知道在網(wǎng)管能夠控制普通用戶對網(wǎng)絡(luò)設(shè)備的訪問后,我們的可憐的網(wǎng)管就收到了很多看起來很難的要求。領(lǐng)導(dǎo)要求網(wǎng)管:
評論