訪問控制列表簡稱爲ACL,訪問控制列表使用包過濾技術,在路由器上讀取第三層及第四層包頭中(zhōng)的信息如源地址,目的地址,源端口,目的端口等,根據預先定義好的規則對包進行過濾,從而達到訪問控制的目的。該技術初期僅在路由器上支持,近些年來已經擴展到三層交換機,部分(fēn)最新的二層交換機也開(kāi)始提供ACL的支持了。
訪問控制列表的原理
對路由器接口來說有兩個方向
出:已經經路由器的處理,正離(lí)開(kāi)路由器接口的數據包
入:已經到達路由器接口的數據包,将被路由器處理。
匹配順序爲:"自上而下(xià),依次匹配".默認爲拒絕
訪問控制列表的類型
标準訪問控制列表:一(yī)般應用在out出站接口。建議配置在離(lí)目标端最近的路由上
擴展訪問控制列表:配置在離(lí)源端最近的路由上,一(yī)般應用在入站in方向
命名訪問控制列表:允許在标準和擴展訪問列表中(zhōng)使用名稱代替表号
訪問控制列表使用原則
1、最小(xiǎo)特權原則
隻給受控對象完成任務所必須的最小(xiǎo)的權限。也就是說被控制的總規則是各個規則的交集,隻滿足部分(fēn)條件的是不容許通過規則的。
2、最靠近受控對象原則
所有的網絡層訪問權限控制。也就是說在檢查規則時是采用自上而下(xià)在ACL中(zhōng)一(yī)條條檢測的,隻要發現符合條件了就立刻轉發,而不繼續檢測下(xià)面的ACL語句。
3、默認丢棄原則
在CISCO路由交換設備中(zhōng)默認最後一(yī)句爲ACL中(zhōng)加入了DENY ANY ANY,也就是丢棄所有不符合條件的數據包。這一(yī)點要特别注意,雖然我(wǒ)們可以修改這個默認,但未改前一(yī)定要引起重視。
由于ACL是使用包過濾技術來實現的,過濾的依據又(yòu)僅僅隻是第三層和第四層包頭中(zhōng)的部分(fēn)信息,這種技術具有一(yī)些固有的局限性,如無法識别到具體(tǐ)的人,無法識别到應用内部的權限級别等。因此,要達到端到端的權限控制目的,需要和系統級及應用級的訪問權限控制結合使用。
一(yī)、标準訪問列表
訪問控制列表ACL分(fēn)很多種,不同場合應用不同種類的ACL.其中(zhōng)最簡單的就是标準訪問控制列表,标準訪問控制列表是通過使用IP包中(zhōng)的源IP地址進行過濾,使用訪問控制列表号1到99來創建相應的ACL.
它的具體(tǐ)格式:
access-list access-list-number [permit | deny ] [sourceaddress][wildcard-mask]
access-list-number 爲1-99 或者 1300-1999之間的數字,這個是訪問列表号。
例如:access-list 10 deny host 192.168.1.1這句命令是将所有來自192.168.1.1地址的數據包丢棄。
當然我(wǒ)們也可以用網段來表示,對某個網段進行過濾。命令如下(xià):access-list 10 deny 192.168.1.0 0.0.0.255
通過上面的配置将來自192.168.1.0/24的所有計算機數據包進行過濾丢棄。爲什麽後頭的子網掩碼表示的是0.0.0.255呢?這是因爲CISCO規定在ACL中(zhōng)用反向掩瑪表示子網掩碼,反向掩碼爲0.0.0.255的代表他的子網掩碼爲255.255.255.0.
小(xiǎo)提示:對于标準訪問控制列表來說,默認的命令是HOST,也就是說access-list 10 deny 192.168.1.1表示的是拒絕192.168.1.1這台主機數據包通訊,可以省去(qù)我(wǒ)們輸入host命令。
标準訪問列表配置實例:
R1(config)#access-list 10 deny 192.168.2.0 0.0.0.255
R1(config)#access-list 10 permit any
R1(config)#int fa0/0.1
R1(config-subif)#ip access-group 10 out
上面配置的含義是阻止來自網段192.168.2.0的機器從int fa0/0.1端口出去(qù),訪問列表在配置好之後,要把它在端口上應用,否則配置了還是無效的。
注意事項:
1、标準訪問列表,一(yī)般來說配置盡量靠近目的端。
2、配置的第二條命令中(zhōng)的any相當于 0.0.0.0 255.255.255.255
3、一(yī)定要加pemint any,使其他的網絡可通。
4、訪問列表是從上到下(xià)一(yī)條一(yī)條進行匹配的,所以在設置訪問列表的時候要注意順序。如果從第一(yī)條匹配到最後一(yī)條還是不知(zhī)道要怎麽做,路由器就會丢棄這個數據包,也就是爲什麽上面的例子中(zhōng)上一(yī)定要加permit any.
5、如果隻阻止一(yī)個主機,那可以用 host 192.168.1.12 或者 192.168.1.12 0.0.0.0,這兩種配置是等價的。
删除已建立的标準ACL
R1(config)#no access-list +access-list number
對标準的ACL來說,不能删除單個acl語句,隻能删除整個ACL
總結:标準ACL占用路由器資(zī)源很少,是一(yī)種最基本最簡單的訪問控制列表格式。應用比較廣泛,經常在要求控制級别較低的情況下(xià)使用。如果要更加複雜(zá)的控制數據包的傳輸就需要使用擴展訪問控制列表了,他可以滿足我(wǒ)們到端口級的要求。
二、擴展訪問控制列表
上面我(wǒ)們提到的标準訪問控制列表是基于IP地址進行過濾的,是最簡單的ACL.那麽如果我(wǒ)們希望将過濾細到端口怎麽辦呢?或者希望對數據包的目的地址進行過濾。這時候就需要使用擴展訪問控制列表了。使用擴展IP訪問列表可以有效的容許用戶訪問物(wù)理LAN而并不容許他使用某個特定服務擴展訪問控制列表使用的ACL号爲100到199.
擴展訪問控制列表的格式:
access-list access-list number {permit/deny} protocol +源地址+反碼 +目标地址+反碼+operator operan(It小(xiǎo)于,gt大(dà)于,eq等于,neq不等于。具體(tǐ)可?)+端口号
1、擴展訪問控制列表号的範圍是100-199或者2000-2699.
2、因爲默認情況下(xià),每個訪問控制列表的末尾隐含deny all,所以在每個擴展訪問控制列表裏面必須有:access-list 110 permit ip any any .
3、不同的服務要使用不同的協議,比如TFTP使用的是UDP協議。
4、更多注意事項可以參考上面标準訪問控制列表部分(fēn)
例如:access-list 101 deny tcp any host 192.168.1.1 eq www //将所有主機訪問192.168.1.1這個地址網頁服務(WWW)TCP連接的數據包丢棄。
小(xiǎo)提示:同樣在擴展訪問控制列表中(zhōng)也可以定義過濾某個網段,當然和标準訪問控制列表一(yī)樣需要我(wǒ)們使用反向掩碼定義IP地址後的子網掩碼。
擴展訪問控制列表配置實例:
R2(config)#access-list 110 deny tcp any host 192.168.1.12 eq www
R2(config)#access-list 110 deny tcp any host 192.168.1.12 eq ftp
R2(config)#int fa0/0
R2(config-if)#ip access-group 110 out
上面配置的含義是拒絕訪問192.168.1.12的www和ftp服務
實例二:
路由器連接了二個網段,分(fēn)别爲172.16.4.0/24,172.16.3.0/24.在172.16.4.0/24網段中(zhōng)有一(yī)台服務器提供WWW服務,IP地址爲172.16.4.13.
要求:禁止172.16.3.0的計算機訪問172.16.4.0的計算機,包括那台服務器,不過惟獨可以訪問172.16.4.13上的WWW服務,而其他服務不能訪問。
路由器配置命令:
access-list 101 permit tcp any 172.16.4.13 0.0.0.0 eq www //設置ACL101,容許源地址爲任意IP,目的地址爲172.16.4.13主機的80端口即WWW服務。由于CISCO默認添加DENY ANY的命令,所以ACL隻寫此一(yī)句即可。
進入相應端口
ip access-group 101 out //将ACL101應用到端口
設置完畢後172.16.3.0的計算機就無法訪問172.16.4.0的計算機了,就算是服務器172.16.4.13開(kāi)啓了FTP服務也無法訪問,惟獨可以訪問的就是172.16.4.13的WWW服務了。
删除已建立的擴展标準ACL
删除和标準一(yī)樣,不能單條删除,隻能删除整個acl
總結:擴展ACL功能很強大(dà),他可以控制源IP,目的IP,源端口,目的端口等,能實現相當精細的控制,擴展ACL不僅讀取IP包頭的源地址/目的地址,還要讀取第四層包頭中(zhōng)的源端口和目的端口的IP.不過他存在一(yī)個缺點,那就是在沒有硬件ACL加速的情況下(xià),擴展ACL會消耗大(dà)量的路由器CPU資(zī)源。所以當使用中(zhōng)低檔路由器時應盡量減少擴展ACL的條目數,将其簡化爲标準ACL或将多條擴展ACL合一(yī)是最有效的方法。
三、命名訪問控制列表
不管是标準訪問控制列表還是擴展訪問控制列表都有一(yī)個弊端,那就是當設置好ACL的規則後發現其中(zhōng)的某條有問題,希望進行修改或删除的話(huà)隻能将全部ACL信息都删除。也就是說修改一(yī)條或删除一(yī)條都會影響到整個ACL列表。這一(yī)個缺點影響了我(wǒ)們的工(gōng)作,爲我(wǒ)們帶來了繁重的負擔。不過我(wǒ)們可以用基于名稱的訪問控制列表來解決這個問題。
命名訪問控制列表格式:
ip access-list {standard/extended} access-list-name(可有字母,數字組合的字符串)
例如:ip access-list standard softer //建立一(yī)個名爲softer的标準訪問控制列表。
命名訪問控制列表使用方法:
router(config)#ip access-list standard +自定義名
router(config-std-nac1)#11 permit host +ip //默認情況下(xià)第一(yī)條爲10,第二條爲20.如果不指定序列号,則新添加的ACL被添加到列表的末尾
router(config-std-nac1)#deny any
對于命名ACL來說,可以向之前的acl中(zhōng)插入acl,删除也可以删除單條acl,
如:router(config)#ip access-list standard benet
router(config-std-nasl)#no 11
使用show access-lists可查看配置的acl信息
總結:如果設置ACL的規則比較多的話(huà),應該使用基于名稱的訪問控制列表進行管理,這樣可以減輕很多後期維護的工(gōng)作,方便我(wǒ)們随時進行調整ACL規則。
四、反向訪問控制列表
反向訪問控制列表屬于ACL的一(yī)種高級應用。他可以有效的防範病毒。通過配置反向ACL可以保證AB兩個網段的計算機互相PING,A可以PING通B而B不能PING通A.
說得通俗些的話(huà)就是傳輸數據可以分(fēn)爲兩個過程,首先是源主機向目的主機發送連接請求和數據,然後是目的主機在雙方建立好連接後發送數據給源主機。反向ACL控制的就是上面提到的連接請求。
反向訪問控制列表的格式:
反向訪問控制列表格式非常簡單,隻要在配置好的擴展訪問列表最後加上established即可。
反向訪問控制列表配置實例:
路由器連接了二個網段,分(fēn)别爲172.16.4.0/24,172.16.3.0/24.在172.16.4.0/24網段中(zhōng)的計算機都是服務器,我(wǒ)們通過反向ACL設置保護這些服務器免受來自172.16.3.0這個網段的病毒攻擊。
要求:禁止病毒從172.16.3.0/24這個網段傳播到172.16.4.0/24這個服務器網段。
路由器配置命令:
access-list 101 permit tcp 172.16.3.0 0.0.0.255 172.16.4.0 0.0.0.255 established //定義ACL101,容許所有來自172.16.3.0網段的計算機訪問172.16.4.0網段中(zhōng)的計算機,前提是TCP連接已經建立了的。當TCP連接沒有建立的話(huà)是不容許172.16.3.0訪問172.16.4.0的。
進入路由相應端口
ip access-group 101 out //将ACL101應用到端口
設置完畢後病毒就不會輕易的從172.16.3.0傳播到172.16.4.0的服務器區了。因爲病毒要想傳播都是主動進行TCP連接的,由于路由器上采用反向ACL禁止了172.16.3.0網段的TCP主動連接,因此病毒無法順利傳播。
小(xiǎo)提示:檢驗反向ACL是否順利配置的一(yī)個簡單方法就是拿172.16.4.0裏的一(yī)台服務器PING在172.16.3.0中(zhōng)的計算機,如果可以PING通的話(huà)再用172.16.3.0那台計算機PING172.16.4.0的服務器,PING不通則說明ACL配置成功。
通過上文配置的反向ACL會出現一(yī)個問題,那就是172.16.3.0的計算機不能訪問服務器的服務了,假如圖中(zhōng)172.16.4.13提供了WWW服務的話(huà)也不能正常訪問。解決的方法是在ESTABLISHED那句前頭再添加一(yī)個擴展ACL規則,例如:access-list 101 permit tcp 172.16.3.0 0.0.0.255 172.16.4.13 0.0.0.0 eq www
這樣根據"最靠近受控對象原則"即在檢查ACL規則時是采用自上而下(xià)在ACL中(zhōng)一(yī)條條檢測的,隻要發現符合條件了就立刻轉發,而不繼續檢測下(xià)面的ACL語句。172.16.3.0的計算機就可以正常訪問該服務器的WWW服務了,而下(xià)面的ESTABLISHED防病毒命令還可以正常生(shēng)效。
五、定時訪問控制列表
設置步驟:
1、定義時間段及時間範圍。
2、ACL自身的配置,即将詳細的規則添加到ACL中(zhōng)。
3、宣告ACL,将設置好的ACL添加到相應的端口中(zhōng)。
定義時間範圍的名稱:
router(config)#time-range time-range-name
定義一(yī)個時間周期
router(config-time-range)#periodic(周期) days-of-the-week hh:mm to [days-of-the-week] hh:mm
其中(zhōng)days-of-the-week的取值有
Monday Tuesday Wednesday Thursday Friday Saturday Sunday{周一(yī)到周日}
daily(每天)weekdays(在平日)weekend(周末)
定義一(yī)個絕對時間
router(config)#time-range time-range-name
router(config-time-range)#absolute [start hh:mm day month year] [end hh:mm day month year]
在擴展ACL中(zhōng)引入時間範圍
router(config)#access-list access-list-number {permit|deny} protocol {source ip +反碼 destination ip +反碼 +operator+time-range+time-range-name}
定時訪問控制列表實例:
路由器連接了二個網段,分(fēn)别爲172.16.4.0/24,172.16.3.0/24.在172.16.4.0/24網段中(zhōng)有一(yī)台服務器提供FTP服務,IP地址爲172.16.4.13.
要求:隻容許172.16.3.0網段的用戶在周末訪問172.16.4.13上的FTP資(zī)源,工(gōng)作時間不能下(xià)載該FTP資(zī)源。
路由器配置命令:
time-range softer //定義時間段名稱爲softer
periodic weekend 00:00 to 23:59 //定義具體(tǐ)時間範圍,爲每周周末(6,日)的0點到23點59分(fēn)。當然可以使用periodic weekdays定義工(gōng)作日或跟星期幾定義具體(tǐ)的周幾。
access-list 101 deny tcp any 172.16.4.13 0.0.0.0 eq ftp time-range softer //設置ACL,禁止在時間段softer範圍内訪問172.16.4.13的FTP服務。
access-list 101 permit ip any any //設置ACL,容許其他時間段和其他條件下(xià)的正常訪問。
進入相應端口。
ip access-group 101 out //應用到端口
基于時間的ACL比較适合于時間段的管理,通過上面的設置172.16.3.0的用戶就隻能在周末訪問服務器提供的FTP資(zī)源了,平時無法訪問。
六、訪問控制列表流量記錄
網絡管理員(yuán)就是要能夠合理的管理公司的網絡,俗話(huà)說知(zhī)己知(zhī)彼方能百戰百勝,所以有效的記錄ACL流量信息可以第一(yī)時間的了解網絡流量和病毒的傳播方式。下(xià)面這篇文章就爲大(dà)家簡單介紹下(xià)如何保存訪問控制列表的流量信息,方法就是在擴展ACL規則最後加上LOG命令。
實現方法:
log 192.168.1.1 //爲路由器指定一(yī)個日志(zhì)服務器地址,該地址爲192.168.1.1
access-list 101 permit tcp any 172.16.4.13 0.0.0.0 eq www log //在希望監測的擴展ACL最後加上LOG命令,這樣就會把滿足該條件的信息保存到指定的日志(zhì)服務器192.168.1.1中(zhōng)。
小(xiǎo)提示:如果在擴展ACL最後加上log-input,則不僅會保存流量信息,還會将數據包通過的端口信息也進行保存。使用LOG記錄了滿足訪問控制列表規則的數據流量就可以完整的查詢公司網絡哪個地方流量大(dà),哪個地方有病毒了。簡單的一(yī)句命令就完成了很多專業工(gōng)具才能完成的工(gōng)作。
聯系電話(huà):020-87518715
聯系郵箱:services@picusit.com
公司名稱:鄭州易科計算機服務有限公司
公司地址:廣州市天河區龍口西路100号中(zhōng)明大(dà)廈1601