網絡層訪問權限控制技術ACL詳解_第1頁
網絡層訪問權限控制技術ACL詳解_第2頁
網絡層訪問權限控制技術ACL詳解_第3頁
網絡層訪問權限控制技術ACL詳解_第4頁
網絡層訪問權限控制技術ACL詳解_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

網絡層訪問權限控制技術一一ACL詳解技術從來都是一把雙刃劍,網絡應用與互聯網的普及在大幅提高企業的生產經營效率的同時,也帶來了諸如數據的安全性,員工利用互聯網做與工作不相干事等負面影響。如何將一個網絡有效的管理起來,盡可能的降低網絡所帶來的負面影響就成了擺在網絡管理員面前的一個重要課題。A公司的某位可憐的網管目前就面臨了一堆這樣的問題。A公司建設了一個企業網,并通過一臺路由器接入到互聯網。在網絡核心使用一臺基于IOS的多層交換機,所有的二層交換機也為可管理的基于IOS的交換機,在公司內部使用了VLAN技術,按照功能的不同分為了6個VLAN。分別是網絡設備與網管(VLAN1,/24)、內部服務器(VLAN2)、Internet連接(VLAN3)、財務部(VLAN4)、市場部(VLAN5)、研發部門(VLAN6),出口路由器上Fa0/0接公司內部網,通過s0/0連接到Internet。每個網段的三層設備(也就是客戶機上的缺省網關)地址都從高位向下分配,所有的其它節點地址均從低位向上分配。該網絡的拓樸如下圖所示:自從網絡建成后麻煩就一直沒斷過,一會兒有人試圖登錄網絡設備要搗亂;一會兒領導又在抱怨說互聯網開通后,員工成天就知道泡網;一會兒財務的人又說研發部門的員工看了不該看的數據。這些抱怨都找這位可憐的網管,搞得他頭都大了。那有什么辦法能夠解決這些問題呢?答案就是使用網絡層的訪問限制控制技術一一訪問控制列表(下文簡稱ACL)。那么,什么是ACL呢?ACL是種什么樣的技術,它能做什么,又存在一些什么樣的局限性呢?ACL的基本原理、功能與局限性網絡中常說的ACL是CiscoIOS所提供的一種訪問控制技術,初期僅在路由器上支持,近些年來已經擴展到三層交換機,部分最新的二層交換機如2950之類也開始提供ACL的支持。只不過支持的特性不是那么完善而已。在其它廠商的路由器或多層交換機上也提供類似的技術,不過名稱和配置方式都可能有細微的差別。本文所有的配置實例均基于CiscoIOS的ACL進行編寫。基本原理:ACL使用包過濾技術,在路由器上讀取第三層及第四層包頭中的信息如源地址、目的地址、源端口、目的端口等,根據預先定義好的規則對包進行過濾,從而達到訪問控制的目的。功能:網絡中的節點資源節點和用戶節點兩大類,其中資源節點提供服務或數據,用戶節點訪問資源節點所提供的服務與數據。ACL的主要功能就是一方面保護資源節點,阻止非法用戶對資源節點的訪問,另一方面限制特定的用戶節點所能具備的訪問權限。配置ACL的基本原則:在實施ACL的過程中,應當遵循如下兩個基本原則:?最小特權原則:只給受控對象完成任務所必須的最小的權限?最靠近受控對象原則:所有的網絡層訪問權限控制局限性:由于ACL是使用包過濾技術來實現的,過濾的依據又僅僅只是第三層和第四層包頭中的部分信息,這種技術具有一些固有的局限性,如無法識別到具體的人,無法識別到應用內部的權限級別等。因此,要達到endtoend的權限控制目的,需要和系統級及應用級的訪問權限控制結合使用。ACL配置技術詳解“說那么多廢話做什么,趕快開始進行配置吧。”,A公司的網管說。呵呵,并不是我想說那么多廢話,因為理解這些基礎的概念與簡單的原理對后續的配置和排錯都是相當有用的。說說看,你的第一個需求是什么。“做為一個網管,我不期望普通用戶能telnet到網絡設備”一一ACL基礎“補充一點,要求能夠從我現在的機器(研發VLAN的6)上telnet到網絡設備上去。"。hamm,是個不錯的主意,誰都不希望有人在自己的花園中撤野。讓我們分析一下,在A公司的網絡中,除出口路由器外,其它所有的網絡設備段的是放在Vlanl中,那個我只需要在到VLAN1的路由器接口上配置只允許源地址為6的包通過,其它的包通通過濾掉。這中只管源IP地址的ACL就叫做標準IPACL:我們在SWA上進行如下的配置:access-list1permithost6access-list1denyanyintvlan1ipaccess-group1out這幾條命令中的相應關鍵字的意義如下:access-list:配置均ACL的關鍵字,所有的ACL均使用這個命令進行配置。access-list后面的1:ACL號,ACL號相同的所有ACL形成一個組。在判斷一個包時,使用同一組中的條目從上到下逐一進行判斷,一遇到滿足的條目就終止對該包的判斷。1-99為標準的IPACL號,標準IPACL由于只讀取IP包頭的源地址部分,消耗資源少。permit/deny:操作。Permit是允許通過,deny是丟棄包。host6/any:匹配條件,等同于。剛才說過,標準的ACL只限制源地址。Host6()的意思是只匹配源地址為6的包。是wildcards,某位的wildcards為0表示IP地址的對應位必須符合,為1表示IP地址的對應位不管是什么都行。簡單點說,就是55減去子網掩碼后的值,的wildcards就是意味著IP地址必須符合6,可以簡稱為host6。any表示匹配所有地址。注意:IOS中的ACL均使用wildcards,并且會用wildcards對IP地址進行嚴格的對齊,如你輸入一條access-list1permit21,在你showaccess-list看時,會變成access-list1permit21,PIXOS中的ACL均使用subnetmasks,并且不會進行對齊操作。intvlan1///ipaccess-group1out:這兩句將access-list1應用到vlan1接口的out方向。其中1是ACL號,和相應的ACL進行關聯。Out是對路由器該接口上哪個方向的包進行過濾,可以有in和out兩種選擇。注意:這里的in/out都是站在路由器或三層模塊(以后簡稱R)上看的,in表示從該接口進入R的包,out表示從該接口出去的包。好了,這就是一個最基本的ACL的配置方法。什么,你說普通用戶還能telnet到RTA?那你在intvlan3上現加一個ipaccess-group1out吧。Hammmm,等等,你這樣加上去普通用戶就訪問不了internet了。讓我們把剛才的ACL去掉,重新寫一個。回憶一下,我們的目的是除了6能夠進行telnet操作外,其它用戶都不允許進行telnet操作。剛才我們說過,標準的IPACL只能控制源IP地址,不能控制到端口。要控制到第四層的端口,就需要使用到:擴展的IPACL的配置先看看配置實例吧。在SWA上進行如下配置:intvlan1noipaccess-group1outexitnoaccess-list1access-list101permittcphost6anyeqtelnetaccess-list101denytcpanyanyeqtelnetintvlan1ipaccess-group101outintvlan3ipaccess-group101out你應該注意到到這里的ACL有一些變化了,現在對變化的部分做一些說明:access-list101:注意這里的101,和剛才的標準ACL中的1一樣,101是ACL號,表示這是一個擴展的IPACL。擴展的IPACL號范圍是100-199,擴展的IPACL可以控制源^、目的IP、源端口、目的端口等,能實現相當精細的控制,擴展ACL不僅讀取IP包頭的源地址/目的地址,還要讀取第四層包頭中的源端口和目的端口,的IP在沒有硬件ACL加速情況下,會消耗大量的CPU資源。intvlan1///noipaccess-group1out///exit///noaccess-list1:取消access-list1,對于非命名的ACL,可以只需要這一句就可以全部取消。注意,在取消或修改一個ACL前,必須先在它所應用的接口上先把應用給no掉,否則會導致相當嚴重的后果。tcphost6anyeqtelnet:匹配條件。完整格式為:協議源地址源wildcards[關系][源端口]目的地址目的wildcards[關系][目的端口]。其中協議可以是IP、TCP、UDP、EIGRP等,口內為可選字段。僅在協議為tcp/udp等具備端口號的協議才有用。關系可以是eq(等于)、neq(不等于)、lt(大于)、range(范圍)等。端口一般為數字的1-65535,對于周知端口,如23(服務名為telnet)等可以用服務名代替。源端口和目的端口不定義時表示所有端口。把這個ACL應用上去后,用戶們開始打電話來罵娘了,因為他們都訪問不了Internet了,是哪里出了問題了呢?注意:所有的ACL,缺省情況下,從安全角度考慮,最后都會隱含一句denyany(標準4?1)或denyipanyany(擴展IPACL)。所以在不了解業務會使用到哪些端口的情況下,最好在ACL的最后加上一句permitipanyany,在這里就是access-list101permitipanyany。現在用戶倒是能夠訪問Internet了,但我們的可憐的網管卻發現普通用戶還是能夠telnet到他的SWA上面,因為SWA上面有很多個網絡接口,而且使用擴展的ACL會消耗很多的資源。有什么簡單的辦法能夠控制用戶對網絡設備的Telnet訪問,而又不消耗太多的資源呢?這就需要使用到:對網絡設備自身的訪問如何進行控制的技術讓我們先把剛才配置的ACL都取掉(具體配置略,不然后讀者會以為我在騙稿費了。),再在每臺網絡設備上均進行如下配置:access-list1permithost6linevty04(部分設備是15)access-class1in這樣就行了,telnet都是訪問的設備上的linevty,在linevty下面使用access-class與ACL組進行關聯,in關鍵字表示控制進入的連接。就這么簡單?wk,你丫是不是在玩我們,為什么還要繞一大圈?臭雞蛋和爛西紅柿開始在70的腦袋上方狂飛。(5555555,偶也只是想向大家把ACL的基礎知識講的明白一些的嘛)。經過剛才的配置,我們可以理出一個簡單的ACL配置步驟了:分析需求,找清楚需求中要保護什么或控制什么;為方便配置,最好能以表格形式列出。在本文的后面會舉例的。分析符合條件的數據流的路徑,尋找一個最適合進行控制的位置;書寫ACL,并將ACL應用到接口上;測試并修改ACL。當A公司的領導知道在網管能夠控制普通用戶對網絡設備的訪問后,我們的可憐的網管就收到了很多看起來很難的要求。領導要求網管:“使用ACL技術對網絡訪問進行精細化控制"一一ACL進階配置命名的IPACL由于最近服務器網段的機器老是被人用telnet、rsh等手段進行攻擊,我們只對員工開放web服務器(0)所提供的http、FTP服務器(2)提供的FTP服務和數據庫服務器(1:1521)。好吧,我們著手進行配置,可是我們的ACL剛寫到一半,發現前面寫的幾句好像有問題,一個no命令輸進去,整個ACL都沒了,唉,一切都得重來,難道就沒有一個變通的辦法么?有,這里我就需要用到:命名的IPacl提供的兩個主要優點是:解決ACL號碼不足的問題。可以自由的刪除ACL中的一條語句,而不必刪除整個ACL。命名的ACL的主要不足之處在于無法實現在任意位置加入新的ACL條目。比如上面那個例子中,我們進行了如下的配置:ipaccess-listextendserver-protectpermittcp55host0eqwwwpermittcp55host1eq1521permittcp55host2eqftp配置到這里,我們發現permittcp55host1eq1521這句配錯了,我們得把它給取掉并重新配置,OK,我樣可以簡單的進行如下配置:ipaccess-listextendserver-protectnopermittcp55host1eq1521permittcp55host1eq1521exitintvlan2ipaccess-groupserver-protect就可以了。現在對命名的IPaccess-list的配置方法解釋如下:ipaccess-listextendserver-access-limit:ipaccess-list相當于使用編號的access-list中的access-list段。extend表明是擴展的ACL(對應地,standard表示標準的ACL)。server-access-limit是access-list的名字,相當于基于編號的ACL中的編號字段。permittcp55host1eq1521:這一段和使用編號的access-list的后半段的意義相同,都由操作和條件兩段組成。其實基于名字的IPACL還有一個很好的優點就是可以為每個ACL取一個有意義的名字,便于日后的管理與維護。所以強烈建議各位看官在實際工作中均使用命名的ACL。進一步完善對服務器數據的保護一一ACL執行順序再探討在服務器網段中的數據庫服務器中存放有大量的市場信息,市場部門的人員不希望研發部門訪問到數據庫服務器,經過協商,同意研發部門的領導的機器(IP地址為3)可以訪問到數據庫服務器。這樣,我們的服務器網段的的訪問權限部分如下表所示:協議源地址源端口目的地址目的端口操作TCP10.1/16所有0/3280允許訪問TCP10.1/16所有2/3221允許訪問TCP10.1/16所有1/321521允許訪問TCP10.1.6/24所有1/321521禁止訪問TCP3/32所有1/321521允許訪問IP10.1/16N/A所有N/A禁止訪問于是,網管就在server-protect后面順序加了兩條語句進去,整個ACL變成了如下形式:ipaccess-listextendserver-protectpermittcp55host0eqwwwpermittcp55host1eq1521permittcp55host2eqftpdenytcp55host1eq1521permittcphost3host1eq1521做完之后發現根本沒起到應有的作用,研發部門的所有機器還是可以訪問到數據庫服務器。這是為什么呢?前面我們提到過,ACL的執行順序是從上往下執行,一個包只要遇到一條匹配的七語句后就會停止后續語句的執行在我們的這個ACL中,因為前面已經有了一條permittcp55host1eq1521語句。內部網上所有訪問1的1521端口的在這兒就全部通過了,跟本不會到后面兩句去比較。所以導致達不到我們的目的。應該把server-protect這個ACL按如下形式進行修改才能滿足我們的要求:ipaccess-listextendserver-protectpermittcphost3host1eq1521denytcp55host1eq1521permittcp55host1eq1521permittcp55host0eqwwwpermittcp55host2eqftp這個例子告訴我們在寫ACL時,一定要遵循最為精確匹配的語句一定要寫在最前面的原則,只有這樣才能保證不會出現無用的ACL語句。基于時間的ACL在保證了服務器的數據安全性后,領導又準備對內部員工上網進行控制。要求在上班時間內(9:00-18:00)禁止內部員工瀏覽internet,禁止使用QQ、MSN。而且在2003年6月1號到2號的所有時間內都不允許進行上述操作。但在任何時間都可以允許以其它方式訪問Internet。天哪,這可叫人怎么活呀,但領導既然這樣安排,也只好按指示做了。首先,讓我們來分析一下這個需求,瀏覽internet現在基本上都是使用http或https進行訪問,標準端口是TCP/80端口和TCP/443,MSN使用TCP/1863端口,QQ登錄會使用到TCP/UDP8000這兩個端口,還有可能使用到udp/4000進行通訊。而且這些軟件都能支持代理服務器,目前的代理服務器主要布署在TCP8080、TCP3128(HTTP代理)和TCP1080(socks)這三個端口上。這個需求如下表所示:應用協議源地址源端口目的地址目的端口操作IETCP10.1/16所有所有80限制訪問IETCP10.1/16所有所有443限制訪問MSNTCP10.1/16所有所有1863限制訪問QQTCP10.1/16所有所有8000限制訪問QQUDP10.1/16所有所有8000限制訪問QQUDP10.1/16所有所有4000限制訪問HTTP代理TCP10.1/16所有所有8080限制訪問HTTP代理TCP10.1/16所有所有3128限制訪問SocksTCP10.1/16所有所有1080限制訪問AllotherIP10.1/16N/A所有N/A允許訪問然后,讓我們看看ACL應該在哪個位置配置比較好呢?由于是對訪問Internet進行控制,涉及到的是公司內部所有的網段,這們這次把ACL就放到公司的Internet出口處。在RTA上進行如下的配置,就能夠滿足領導的要求了:time-rangeTR1absolutestart00:001June2003end00:003June2003periodicweekdaysstart9:0018:00exitipaccess-listextendinternet_limitdenytcp55anyeq80time-rangeTR1denytcp55anyeq443time-rangeTR1denytcp55anyeq1863time-rangeTR1denytcp55anyeq8000time-rangeTR1denyudp55anyeq8000time-rangeTR1denyudp55anyeq4000time-rangeTR1denytcp55anyeq3128time-rangeTR1denytcp55anyeq8080time-rangeTR1denytcp55anyeq1080time-rangeTR1permitipanyanyints0/0ipaccess-groupinternet_limitout或intfa0/0ipaccess-groupinternet_limitin或者將ACL配置在SWA上,并intvlan3ipaccess-groupinternet_limitout呵呵,現在讓我們來看看在基于時間的訪問列表中都有哪些新內容吧:time-rangeTR1:定義一個新的時間范圍,其中的TR1是為該時間范圍取的一個名字。absolute:為絕對時間。只使用一次。可以定義為1993-2035年內的任意一個時點。具體的用法請使用?命令查看。Periodic:為周期性重復使用的時間范圍的定義。完整格式為periodic日期關鍵字開始時間結束時間。其中日期關鍵字的定義如下所示:Monday星期一Tuesday星期二Wednesday星期三Thursday星期四Friday星期五Saturday星期六Sunday星期天daily每天weekdays周一至五weekend周末access-list101denyip55anytime-rangeTR1:注意這一句最后的time-rangeTR1,使這條ACL語句與time-rangeTR1相關聯,表明這條語句在time-rangeTR1所定義的時間范圍內才起作用。注意:給出三種配置位置是幫助大家深刻理解關于in/out的區別的。acl是對從一個接上流入(皿)或流出(out)路由器的包進行過濾的。網管發問了,“你是怎么找到這些應用的所使用的端口的?”。呵呵,在如下文件中可以找到大多數應用的端口的定義:Win9x:%windir%\servicesWinNT/2000/XP:%windir%\system32\drivers\etc\servicesLinux:/etc/services對于在services文件中找不到端口的應用,可以在運行程序的前后,運行netstatap來找出應用所使用的端口號。使用IPACL實現單向訪問控制A公司準備實行薪資的不透明化管理,由于目前的薪資收入數據還放在財務部門的Vlan中,所以公司不希望市場和研發部門能訪問到財務部Vlan中的數據,另一方面,財務部門做為公司的核心管理部門,又希望能訪問到市場和研發部門Vlan內的數據。我們的網管在接到這個需求后就在SWA上做了如下的配置:ipaccess-listextendfi-access-limitdenyipany55permitipanyanyintvlan5ipaccess-groupfi-access-limitinintvlan6ipaccess-groupfi-access-limitin配置做完后,測試了一下,市場和研發部門確實訪問不到財務部了,剛準備休息一下,財務部打電話過來說為訪問不到市場與研發部門的數據了。這是怎么回事呢?讓我們回憶一下,在兩臺主機A與B之間要實現通訊,需要些什么條件呢?答案是既需要A能向B發包,也需要B能向A發包,任何一個方向的包被阻斷,通訊都不能成功,在我們的例子中就存在這樣的問題,財務部訪問市場或研發部門時,包到到市場或研發部門的主機,由這些主機返回的包在到達路由器SWA時,由于普通的ACL均不具備檢測會話狀態的能力,就被denyipany55這條ACL給阻斷了,所以訪問不能成功。要想實現真正意義上的單向訪問控制應該怎么辦呢?我們希望在財務部門訪問市場和研發部門時,能在市場和研發部門的ACL中臨時生成一個反向的ACL條目,這樣就能實現單向訪問了。這里就需要使用到反向ACL技術。我們可以按照如下配置實例就可以滿足剛才的那個單向訪問需求:ipaccess-listextendfi-mainpermittcpany55reflectr-maintimeout120permitudpany55reflectr-main

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論