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