大部分企業現在存在一種狀況,就是網絡訪問無序的狀態。如所有公司的員工都可以隨意反問財務部門的電腦;如在開集團的視頻會議的時候,其他員工下載電影或者游戲浪費了寶貴的帶寬,導致視頻會議不怎么連貫;如為了管理的方便,大開Telnet端口,對于這個威脅視若無睹,等等。其實,對于這些問題,都可以通過訪問控制列表來實現。筆者將通過一系列的文章,來跟大家分享訪問控制列表的使用方法與使用技巧,跟大家一起利用訪問控制列表來提高網絡的管理。
我們在企業日常網絡的管理中,經常會遇到一些進退兩難的問題。如我們即要保障網絡點暢通,同時,也必須設法拒絕那些不希望的網絡連接。雖然,我們也可以通過其他的一些方式,如密碼、權限、虛擬局域網等功能實現這些目的,但是,他們的管理往往是單一的,也就是說,只能實現一些獨立的管理功能,或者缺乏管理的靈活性。而訪問控制列表,則給我們網絡管理員提供了一個網絡控制的平臺。他就好象一個連通兩個國家的邊關要地,我們可以根據各種需要,允許某些人通過,而其他人則不允許,或者說有些人可以自由無阻的在兩個國家內通行,而有些人則必須憑證件才能夠通行;如當道路繁忙時,我們可以設置哪些人具有優先通行權;如我們可以設置每天的通行數量,等等。
這個訪問控制列表是路由器上的一個服務,他結合路由器的基本功能,來實現對于訪問流量的過濾與控制。實際上,訪問控制列表就是一串連續的語句的集合,這些語句定義了哪些流量可以通過,哪些不可以通過;同時也定義了哪些流量具有優先性等等。
具體的來說,訪問控制列表可以起到如下作用:
1、 可以限制員工對外部網絡的有限訪問
若在企業內網與外網的接口處,部署路由器的訪問控制列表的話,則可以決定哪種類型的通信流量杯轉發、哪些類型的通信流量被禁止等等。例如,我們可以允許只有Email的通信流量被允許,而其他類型的通信流量都會被路由器所禁止。根據這個控制規則,則就可以限制用戶內與外部網絡的訪問,只允許員工接收外部郵件,而不能進行其他的網絡訪問。通過類似的規則,還可以限制員工訪問外部的WEB服務器(禁止瀏覽網頁)、限制員工訪問FTP服務器(不允許像外部的FTP服務器上傳公司內部的資料,從而保護企業內部信息安全)、限制員工使用BT下載工具(BT工具由于其又是下載工具又是一個上載的服務器,會占用比較大的帶寬,所以,應該禁止使用),等等。總之,若把帶有訪問控制列表的路由器部署在企業內網與外網的接口上,網絡管理員就可以根據協議、端口、IP地址等等各種參數以及相互的結合來對員工的網絡行為進行管理控制。
2、 提供網絡訪問的限制
若從企業內部考慮,有時會企業可能希望財務部門的電腦除了總經理辦公室可以訪問之外,而其他辦公室都不能訪問;但是,財務部門的電腦則可以訪問其他部門的電腦,如他們訪問行政部門的電腦,等等。雖然通過虛擬局域網也可以實現網絡的隔離,但是,他是雙向的,也就是說要么兩個部門的網絡都不能相互訪問,要么就是兩個部門的電腦可以暢通無阻的訪問,而不能實現這個有限制的訪問,除非為其設置具體的訪問權限等等。一般情況下,我們可以把一些重要的部門設置成一個獨立的網絡,然后利用路由器對于彼此的訪問進行控制。
如筆者企業現在就把產品開發部門設置成了一個獨立的網絡,他們這個部門的網絡,全體部門的員工都不能在網絡上找到他們的蹤影;這個部門網絡上的一些共享文件,也不能夠被其他部門的人訪問。其他部門的員工若需要向這個部門傳遞信息的話,則只能夠通過書面的傳遞或者通過U盤等工具(這些工具的使用也被嚴格的監督控制)復制傳遞。總之,這么處理的話,是為了保障產品開發部門資料的安全性,以及產品開發設計系統的正常運轉,不受到外部網絡的功能。不過,同時,產品部門的網絡要能夠連接到企業的文件備份服務器,他們電腦上的文件必須及時的在企業的文件備份服務器上進行備份,以保障文件的安全。
3、 管理網絡流量、對網絡流量進行優化
網絡管理員還可以利用網絡控制列表,實現對網絡流量的控制,并且對網絡流量進行適當的優化。
如筆者的企業現在部署了網絡視頻會議系統,有時會集團各個子公司的領導需要開視頻會議;有時候銷售總監也需要對國外的客戶進行視頻溝通等等。我們都知道,視頻會帶來很大的數據流量,而且,保障視頻的連續性與流暢性,也是一個不小的挑戰。如何在視頻的時候,保障視頻的連續性與流暢性呢?為了達到這個目的,我們首先需要保障視頻流量的有限性。如當他們在進行視頻會議時,若網絡比較繁忙,則我們必須保障視頻會議的流量能夠優先被放行。這就好像救護車,載著重傷病人,當其拉響警報時,其他車輛必須為其讓道,其也有闖紅燈的特權。若其他車不讓道時,就是違法,就可能得到交警的處罰。而采用訪問控制列表,就可以做到這一點。如訪問控制列表,可以根據數據包的協議類型,我們可以事先指定這種視頻會議的協議類型具有比較高的優先性,在同等情況下,會被路由器優先處理。如此的話,一些重要協議的數據包,就可以實現比較高的優先性。
同時,還可以在不影響網絡性能的情況下,開通一些限制級別的服務。如雖然BT等下載工具會占用比較大的帶寬,但是,其存在也有其的特殊優勢,就是下載速度特別快。而現在我們通過訪問控制列表,可以把BT類型的數據優先級別設置為最低,如此的話,就可以實現,在不影響網絡性能的情況下,運行BT軟件。因為當網絡繁忙的時候,BT類型的數據包會被暫時放放,其他類型的數據包會優先被路由器處理。如此的話,就可以把BT軟件給網絡帶來的負面影響將到最低,同時,在閑暇的時候,如下班后,仍然可以正常使用BT等下載工具,提高網絡管理的靈活性。
由此我們也可以獲得這么一個信息,利用訪問控制列表,可以實現對網絡流量的靈活管理與控制。而不是像其他控制手段,如虛擬局域網或者憑用戶名與密碼訪問那樣,利用一幫子打死的策略。
上面是筆者對于訪問控制列表的一些基本介紹。在后續的文章中,筆者將結合自己企業的配置實例,講述在企業網絡中如何通過訪問控制列表,來提高對于網絡的掌控。為了能夠深刻的說明問題,在后續的文章中,會采用比較多的實例以及注意技巧,筆者相信,通過這些文章,你或許還不能成為一個訪問控制列表的專家,但是,會對訪問控制列表有一個整體的認識。俗話說,師傅領進門,修行在自身。相信大家通過自己的實踐,會成為這方面對高手。
#p#副標題#e#
案例一:拒絕某個IP地址訪問互聯網
現在某個企業的網絡拓撲結構大致如下:
公司的網絡結構比較簡單,一臺路由器連接交換機,然后再連接終端電腦,路由器作為企業內網與外網連接的通信口。現在的問題是,企業在網絡管理員,可能需要限制某些IP地址,他們不能夠訪問互聯網。但是,他們可以訪問連接在路由器上的服務器。針對企業的這種需求,訪問控制列表該如何實現呢?下面我們就以拒絕一個IP地址為例,談談該如何設置訪問控制列表,多個IP地址也是類似的道理。假設用戶電腦的IP地址為192.168.0.10,我們現在需要拒絕這個IP地址訪問互聯網。
首先,我們來看看訪問控制列表的設置。
Access-list 1 deny host 192.168.0.10 0.0.0.0
Access-list 1 permit 0.0.0.0 255.255.255.255
只要在路由器上配置這兩條簡單的訪問控制列表語句,就可以達到限制192.168.0.10這個IP地址訪問互聯網。然后把這個訪問控制列表關聯到互聯網的出站端口即可。
在寫以上的訪問控制列表語句的時候,我們需要注意以下幾點:
1、要注意語句的順序。我們在上篇文章中,談到過訪問控制列表其實就是各種允許或者拒絕語句的集合。不過,其還有一個特點,就是其是根據從上到下的語句來判斷的。當第一個條件滿足時,就不會去判斷第二條語句。如現在有一個來自于192.168.0.10的數據包,他要發送到互聯網上。則在路由器進行檢查的時候,他從數據包中獲得IP地址,然后根據這個IP地址來核對訪問控制列表。當他看到訪問控制列表中,第一條語句就是拒絕192.168.0.10這個IP地址訪問互聯網的話,則其就不會去判斷第二條語句/。假設我們現在把第一條語句跟第二條語句進行對換的話,又會有什么結果發生呢?當路由器接到192.168.0.10發來的數據包,然后核對訪問控制列表中的語句。而“Access-list 1 permit 0.0.0.0 255.255.255.255”這條語句的意思則是允許所有的IP地址從這個端口轉發出去。也就是說,也允許來自于192.168.0.10的數據包從這個端口出去。而這一條語句滿足的時候,第二條語句“Access-list 1 deny host 192.168.0.10 0.0.0.0”就不會被執行。此時,主機192.168.0.10就可以光明正大的訪問互聯網。這就達不到企業所期望的控制要求。所以,若訪問控制列表中的語句順序出現顛倒的話,則最后出現的結果可能是跟用戶預先期待的會大相徑庭。
2、訪問控制列表的名字是用數字來表示的。如上面語句中的1,就表示這是一號訪問控制列表。把訪問控制列表關聯到具體的路由器端口時,也是利用這個數字進行關聯。不過這里要注意一個潛規則。一般訪問控制列表分為兩類,一是標準訪問控制列表,二是擴展的訪問控制列表。為了管理的方便,一般1-99之間的數字用來表示是標準的訪問控制列表。而100到199之間,就表示路由器將用擴展的訪問控制列表條件來進行判斷。一般在定義訪問控制列表的時候,最好大家都要遵守這個規則。因為有時會,可能不僅一個網絡管理員來管理路由器。
3、訪問控制列表配置四步走。雖然在官方的文檔上,一般把訪問控制列表的配置分成兩步,不過,在實際工作中,筆者還是喜歡把他分為四個步驟,如此的話,可以減少錯誤的發生。第一步就是書寫需求。從上面我們可以看出,訪問控制列表就是一條條條件語句的集合,而且對于條件的順序非常敏感。為此,我們在做訪問控制列表之前,需要先對用戶的需求進行整理,先在紙上對于各條判斷語句做出順序的調整。第二步先在路由器模擬器上進行測試。因為路由器的改動會影響整個網絡的運行,所以,在對路由器進行任何調整之前,筆者的建議是現在路由器的模擬器上進行測試。像CISCO就提供了一些很好的路由模擬器,企業可以在這些模擬器上測試自己配置的準確性。第三步在路由器上寫訪問控制列表語句。當測試沒有問題的時候,就把訪問控制列表語句移植到路由器上。第四步把訪問控制列表語句關聯到特定的端口。在訪問控制列表語句中,沒有指定這個訪問控制列表用于哪個端口。只有等訪問控制列表完成后,把這個訪問控制列表關聯到特定的路由器端口,這個訪問控制列表才會起作用。
4、訪問控制列表建立之后,如果需要更改訪問控制列表,該怎么辦呢?如我們現在想讓192.168.0.10這個Ip地址訪問互聯網,而是想禁止102.168.0.60這個IP地址。一般來說,用戶是不能直接更改這個訪問控制列表的,即使更改了也沒有作用。而是必須先用命令刪除整個訪問控制列表,然后再重新建立并進行端口的關聯。另外需要注意的是,沒一條新建的條件語句都被安置在訪問控制列表的最后面。還有就是,訪問控制列表建立之后,若想通過行序號刪除訪問控制列表中的某條語句,也是不可以的。如在上面這個訪問控制列表中,如果現在網絡管理員加入“Access-list 1 deny host 192.168.0.60 0.0.0.0”這條條件語句。網絡管理員原來的設想是同時拒絕192.168.0.10與192.168.0.60兩臺主機訪問互聯網絡,可是,若在原有的訪問控制列表中,加入語句的話,則會變為:
Access-list 1 deny host 192.168.0.10 0.0.0.0
Access-list 1 permit 0.0.0.0 255.255.255.255
Access-list 1 deny host 192.168.0.60 0.0.0.0
而根據我們上面所講的訪問控制列表時按先后順序進行條件語句判斷的,由于第二條語句是允許所有的IP地址訪問互聯網絡,所以,第三條判斷語句永遠不會被執行。如此的話,就不能達到用戶的目的。
如果現在網絡管理員想刪除第二條語句,然后建一條“Access-list 1 permit 0.0.0.0 255.255.255.255”語句,如此,順序不是對了嗎?這個設想是好的,但是,訪問控制列表時不能夠通過行序號來刪除某個行的條件語句。所以,如果用戶需要新加條件語句時,一般只有刪除原先的所有條件語句,然后重新建立。
基于這個原因,所以,筆者不建議直接在路由器上編輯訪問控制列表。而是現在網絡管理的終端電腦上,利用記事本先編輯好訪問控制列表,然后再利用TFTP(簡單文本傳輸協議),把這訪問控制列表移植到路由器上。如此的話,就可以提高訪問控制列表編輯的效率,而且,通過簡單的復制、粘貼還可以減少錯誤的發生。
5、若有多臺主機需要拒絕訪問互聯網,該如何處理呢?在企業網絡的實際管理中,往往不是一臺或者幾臺電腦不能訪問互聯網或者某個應用,而是某幾個部門的電腦不能訪問,如不能使用QQ等。遇到這種情況,若一個個的區制定IP地址,那顯然會非常的麻煩。此時,我們可以考慮,把這些不能夠訪問互聯網的電腦,對他們的IP地址盡心規劃,劃分成一個子網。然后再訪問控制列表中,對子網進行過濾,而不是對IP地址進行過濾。如現在網絡管理員希望對于192.168.4.0的子網進行管理,不允許他們訪問互聯網,但是訪問內部網絡是沒有限制的。此時,我們就可以按照如下的規則書寫訪問控制列表。
Access-list 1 deny host 192.168.4.0 0.0.0.255
Access-list 1 permit 0.0.0.0 255.255.255.255
如此的話,只要數據包的IP地址屬于這個子網的,則路由器就會拒絕這些數據包通過其互聯網接口進行轉發。現在利用子網來進行過濾的話,我們只用了一條條件語句;而我們若利用單個IP地址來過濾的話,則這個子網內有多少主機就需要書寫多少條條件語句。而且,靈活性也很差。如以后我們還需要指定某些IP地址不能訪問互聯網的話,還必須對訪問控制列表進行調整。而我們若通過子網的形式進行過濾的話,以后遇到這種需求,只需要把用戶的電腦歸入到這個子網內,如此的話,在不調整原有訪問控制列表的情況下,也可以實現企業的網路管理需求。這明顯比按單個IP地址來進行過濾,要方便的多。
上面筆者講述的是按IP地址或者子網來進行網絡過濾。不過,這有一個比較大的缺陷,這個過濾是“一棒子打死”的過濾方法。也就是說,根據IP地址過濾的話,則會過濾所有的網絡流量。被訪問控制列表列入黑名單的IP地址,不僅不能夠使用QQ等被禁止的網絡聊天工具,而且,也不能訪問互聯網的郵件等等。也就是說,不能根據協議的類型來管理網絡流量。而后面筆者要舉的擴展訪問控制列表的例子,就可以滿足企業根據協議對網絡流量進行管理的需求。
#p#副標題#e#
擴展訪問控制列表比標準訪問控制列表提供了更廣闊的控制范圍,其靈活性也比標準訪問控制列表要高的多。在實際工作中,很少有網絡管理員會簡單的采用標準訪問控制列表,而基本上是采用擴展型的訪問控制列表,來對通過路由器的部分數據流量進行過濾。如我們有時候只允許來自于外部的EMAIL通信流量進入企業網絡,而其他的通信流量,如FTP、WEB等等,路由器都要把他們擋在門外,此時,就可以通過擴展型的訪問控制列表來實現。擴展訪問控制列表提供了很多的控制關口,如源地址、目標地址、協議類型、端口號等等,這種擴展后所帶來的功能,可以實現網絡管理員對網絡訪問進行復雜控制的要求,而不再是簡單的只根據IP地址進行控制。廢話不說了,我們先來看一個擴展訪問控制列表的實例,看看其到底有什么神秘的地方。
案例二:拒絕企業內部某個用戶訪問FTP服務器
假設現在企業內部有一臺主機A,其IP地址為192.168.1.10。而路由器上有一臺FTP服務器B,其IP地址為192.168.0.2。現在企業為了FTP服務器的安全,只有經過授權的用戶才能夠訪問這臺FTP服務器。一般來說,這臺FTP服務器是為業務部門準備的,默認情況下,只要業務員可以訪問這臺FTP服務器。
針對這種情況,該如何配置訪問控制列表呢?
Access-list 101 deny tcp 192.168.1.0 0.0.0.255 192.168.0.2 0.0.0.0 eq 21
Access-list 101 permit ip 192.168.1.0 0.0.0.255 0.0.0.0 255.255.255.255
要拒絕某個協議類型的數據流量,若依靠標準的訪問控制列表是達到這個目標的。一般來說,標準的訪問控制列表之能夠簡單的對IP地址進行數據流量的過濾,也就是說,其要么允許全部的數據包通過,要么就是拒絕所有的數據包。而現在若采用擴展的訪問控制列表,則可以根據數據包的協議來類型來實現對部門數據包進行過濾,對部分數據包放行。
下面筆者對以上的訪問控制列表條件語句作一些必要的說明
1、訪問控制列表標號。在上面一篇文章中,筆者談到,為了管理的方便,訪問控制列表規定,用數字1到99來表示標準的訪問控制列表;而100到199用來表示擴展的訪問控制列表。而這邊數字“101”就表示這個訪問控制列表是一個擴展型的訪問控制列表。
2、關鍵字deny與permit。這兩個關鍵字,顧名思義,就是表示拒絕某個流量還是允許某個流量通過路由器。這里要注意一個書寫的順序。在一般情況下,都把拒絕的語句,而就是deny語句放在前頭,而把拒絕的語句放在后面。因為訪問控制列表示從頭到腳對這些語句進行判斷,若前面一條語句滿足的話,則后續的將都不會被判斷。所以,一般要把拒絕的條件語句放在前面。具體的例子在上篇文章中筆者已經詳細介紹過,這里就不再過過多的敘述了。
3、tcp表示一種傳輸層的協議。若想要使用擴展型的訪問控制列表,則一定要對傳輸層的各種訪問協議有清晰的認識,否則的話,配置訪問控制列表的時候,就有點束手束腳的了。
4、192.168.1.0 0.0.0.255,表示對那些IP地址進行這個拒絕操作。這兩組數字是配套使用的。后面的0.0.0.255表示對IP地址的前三位進行檢查,而對最后一位不進行檢查。如此的話,結合前面的IP地址,也就表示IP地址前面三位為192.168.1的IP地址,后面不管是什么,從192.168.1.0到192.168.1.255,都會采用這條語句。也就是說,0表示檢查,必須完全匹配,而255的話,就表示不進行檢查。
5、172.168.0.2 0.0.0.0,表示目的地址。在采用訪問控制列表中,一般源地址與目的地址是成對出現的。因為網絡管理員雖然不允許內部用戶訪問企業內部的FTP服務器,但是,有可能其允許訪問其他的FTP服務器。所以,最好能夠指定目的IP地址,以防止把一些正常訪問的流量拒絕掉。
6、eq 21,表示服務的端口好。我們都知道,在訪問某個服務的時候,一般都是需要有協議類型與端口號才可以。如我們訪問FTP服務器的時候,可能就是通過“FTP://192.168.0.2:21”進行訪問。最后面的21就表示FTP服務器為這個服務所開的端口。所以,在配置擴展訪問列表的時候,需要對各種服務的默認端口了如指掌。如端口23表示終端連接,25表示簡單郵件傳輸協議,69表示普通文本傳輸協議等等。不過這些端口是系統默認的端口,而在實際工作中,有時會我們會為了安全方面的考慮,改變這些端口。如把FTP的端口21改為8000等等,這主要是為了讓別人不能夠破解FTP服務器。所以,針對這種情況的話,我們在配置訪問控制列表的話,也需要注意。
這種拒絕某種通信流量的設置,我們一般會在路由器上普遍采用。如我們都知道,在知道路由器管理員用戶名與密碼的情況下,可以把一些路由器的配置文件,如訪問控制列表,通過普通文本傳輸協議,放到路由器上。所以,有時會為了確保其他人員無法使用路由器的普通文本傳輸協議,我們就會利用訪問控制列表,禁止除了管理員以外的IP地址利用這個普通文本傳輸協議向路由器傳輸相關的配置文件。
所以,Access-list 101 deny tcp 192.168.1.0 0.0.0.255 192.168.0.2 0.0.0.0 eq 21這條語句完整的意思就是,拒絕所有來自于192。168.1.0到192.168.01.255的IP地址訪問192.168.0.2的FTP服務器。若FTP的服務器發生了變化的話,則這個訪問列表的端口號也要進行相應的更改。不過,在上面文章中,我們談到過對以標準訪問控制列表來說,使不能直接在原有的訪問控制列表中進行更改,而必須先把原有訪問控制列表中的判斷語句刪除,然后重新建訪問控制列表,并關聯到相關的端口。這個規則,對于擴展訪問控制列表來說,也是適用的。所以,對于配置擴展訪問控制列表,我們也是建議現在管理員的主機上寫好擴展訪問控制列表,然后再通過簡單文本傳輸協議把訪問控制列表傳到路由器上,再進行端口的關聯動作。如此的話,可以提高訪問控制列表配置的效率與準確性。
另外要注意最后一條語句,Access-list 101 permit ip 192.168.1.0 0.0.0.255 0.0.0.0 255.255.255.255,這表示來自于192.168.1.0到192.168.1.255的IP地址的主機通信流量,可以暢通無阻的進行訪問。這跟前面那條語句結合起來,就表示路由器只是拒絕了對FTP服務器21端口的訪問而已。也就是說,我們此時仍然可以利用PING命令PING通FTP服務器,或者通過網上鄰居找到這臺服務器,只是不能夠通過FTP工具訪問這個服務器而已。
在管理訪問控制列表的時候,無論是標準型的訪問控制列表,還是擴展型的訪問控制列表,都需要注意一個問題就是即可以在路由器的進口,也可以在出口關聯訪問控制列表。不過,兩者還是有一點區別。若在出口關聯訪問控制列表的時候,就意味著被允許的數據包將直接被發送出去,而被拒絕的數據包就會被阻塞。而若把訪問控制列表關聯到進口的話在,則被允許的數據包將進入路由器進行后續的處理,而被拒絕的數據包將直接被丟棄。這個進出口的差異,就引起了訪問控制列表的另一個話題,就是該把訪問控制列表放在進口好還是出口好。因為采用了訪問控制列表之后,會讓路由器多額外的開銷,會對網絡的性能造成一定的影響。而合理放置訪問控制列表,可以把這個影響減少到最低。在后續的文章中,筆者將專門介紹如何來選擇訪問控制列表的放置問題。
另外,在前面筆者在配置訪問控制列表的時候,都是用數字對訪問控制列表進行命名。但是,這個數字的話,明顯不能夠反映這個訪問控制列表的實際作用。如時間長了,或者是前任的網絡管理員留下來的訪問控制列表,我們只是接手,光看這個101三個數字,我們怎么知道他到底實現了什么控制呢?所以,在訪問控制列表管理機制中,路由器還提供了一個命名的訪問控制列表。命名訪問控制列表不僅可以形象的描述訪問控制列表的功能,而且,他還有一些標準或者擴展訪問列表沒有的功能。如通過命名訪問控制列表,如可以讓網絡管理員刪除某個訪問控制列表中不需要的判斷語句。我們上面文章中說過,若是標準型或者擴展型訪問控制列表,是不能夠按照語句序號刪除某個不需要的條件語句。而若采用命名的訪問控制列表的話,則可以達到這個目的。具體該如何操作,請關注我后面的文章,筆者會給大家詳細講述如何使用命名的訪問控制列表,以及其跟其他兩種訪問控制列表的優點。
#p#副標題#e#
在前面關于訪問控制列表的三篇文章中,筆者闡述了訪問控制列表的基本功能與注意點。在這篇文章中,筆者將脫開技術層面的內容,談談自己在訪問控制列表管理中的經驗教訓,或許,這可以從另一個角度提高大家對訪問控制列表的認識。
思考一:如何合理放置訪問控制列表
訪問控制列表即可以放在進口,也可以放在出口,都是正確的。但是,正確跟合理還是有一步之差。位置正確,不一定說,如此放置是最合理的,效率是最高的。
若我們把訪問控制列表放在進口的話,在路由器在進口就會對數據流量進行判斷,看其是否滿足條件語句,若滿足的話,則放行,轉發給下一個端口;不滿足的話,就直接丟進垃圾桶。若把訪問控制列表放在出口的話,則當滿足放行條件時,則路由器會把數據流轉發出去;當不滿足條件時,則會把已經在這個端口存儲緩存中的數據丟進垃圾桶。很明顯,這個訪問控制列表放在進口或者出口,對路由器的性能會有所影響。
假設現在某個集團企業的網絡部署架構如下:
用戶主機---路由器A—路由器B-----互聯網。
在這種網絡架構下,企業現在希望實現如下控制。
1、 用戶主機甲不能夠訪問互聯網。
2、 其他用戶都可以不受限制的訪問互聯網。
此時,很明顯可以通過多種方式來實現這種需求。不過,訪問控制列表是實現這種控制的一個比較靈活的策略。此時,拒絕用戶主機甲訪問互聯網的訪問控制列表可以放在路由器A,也可以放在路由器B上;可以放在路由器A的進口或者出口端口上,也可以放在路由器B的進口或者出口端口上。放在這四個位置的任何一個位置上,都可以實現企業的需求。只是對于網絡的影響有所不同。
假設我們現在把這個訪問控制列表放在路由器B的出口上,則當用戶主機甲訪問互聯網時,這個數據流會通過路由器A,到達路由器B的出口站點上,然后才被丟棄。如此的話,這個本來早早應該被丟棄的數據流,卻一直暢通無阻的到了路由器B的出口商,才被拋棄。
這就好像群眾上訪,本來在農村基層就可以解決的問題,但是,農村基層不解決,當地政府也不解決,一直鬧到中央,這不僅會浪費各地政府部門的精力,而且,中央政府若每天都處理這些基層來的上訪者,那他們就沒有精力去關心一些重大問題了。所以,一些糾紛,在基層可以解決,還是在基層解決好。
訪問控制列表也是如此。若按上面這個位置放置,用戶主機甲若想訪問互聯網,則這些數據流量一直暢通無阻的到達路由器B出口站是,是一種浪費網絡帶寬的行為。所以,應該把拒絕主機用戶甲的訪問控制列表放置在路由器A的進口上,從源頭就把不需要的訪問控制列表拋棄。
很明顯,若只有一臺用戶主機不能訪問互聯網的話,則這個訪問控制列表具體放在上面位置,其所產生的影響對于企業整個網絡來說,是微乎其微的。但是,在實際工作中,我們往往不是拒絕一臺主機的通信流量,而是拒絕一批,如一個子網的通信流量。如此的話,其產生的數據流量就比較大了,會對企業的內部網絡產生比較大的影響。
所以,在訪問控制列表管理的時候,要慎重考慮訪問控制列表的放置地方,否則的話,會對整個網絡產生比較大的影響。那這訪問控制列表該放在什么地方合適呢?筆者給大家提個建議,最好把訪問控制列表放置在離被拒絕的信息來源最近的地方,即上面講的路由器A的進口站點上。如此的話,不允許通過的數據流量就會被盡早的丟進垃圾桶,而不會被暢通無阻的傳遞下去。當然,前期是,路由器A必須支持訪問控制列表,否則的話,也指能夠放在路由器B上了。
思考二:訪問控制列表如何跟防火墻配合使用
現在大部分企業都在企業內外網的接口處,部署了防火墻。那么,訪問控制列表該如何跟防火墻配合使用呢?
根據官方的建議,訪問控制列表應該用在防火墻路由器上,防火墻路由器經常放置在內部網絡與外部網絡之間,即企業內網與互聯網的分割點,目的是為其提供一個孤立的點,以便不受其他互聯網網絡結構的影響。
其實,有些防火墻服務器的話,本身就帶有訪問控制列表的功能。如防火墻的低安全端口要訪問防火墻中的高安全端口的話,就需要訪問控制列表的支持。所以,把訪問控制列表結合防火墻服務器使用,是一個比較好的選擇。
不過,說實話,若把他們兩個部署在一起的話,會增加訪問控制列表的復雜程度,會增加訪問控制列表與防火墻服務器的維護難度。筆者雖然覺得這么部署比較合理,但是,在實際工作中,筆者出于管理與維護的方便,確不是這么部署的。
如企業現在的網絡部署架構如下:
主機-路由器-VPN服務器-防火墻。
其中,這個路由器與防火墻都支持訪問控制列表的功能。按照官方的建議,應該把訪問控制列表部署在防火墻服務器上。但是,筆者認為這么管理的話,會增加防火墻與訪問控制列表的復雜程度,不利于后續的維護與故障的維修。所以,筆者在部署訪問控制列表的時候,沒有遵循官方的建議,而是把訪問控制列表部署在路由器上,而不是防火墻。如此的話,把防火墻與路由器上的訪問控制列表獨立管理,雖然可能會增加一定的工作量,但是,至少把復雜的工作簡單化,反而有利于企業網絡的管理,出現故障的時候,也比較容易檢修。
不過這是筆者個人的工作經驗,其到底是否合理,還需要靠以后網絡維護工作的檢驗。
不過如果要在防火墻服務器這種邊界設備上,部署訪問控制列表的話,筆者可以給大家提一些意見。
一是部署在邊界設備上的訪問控制列表,無論是防火墻服務器還是路由器上,可以為配置在設備接口上的每一個網絡協議創建訪問控制列表。通過配置訪問控制列表。來過濾通過接口的入站通信流量、出站通信流量。
二是如果在邊界路由器與內部的路由器,即上面的路由器A與路由器B上,都配置了訪問控制列表,該如何處理呢?一般來說,若在路由器A上部署了拒絕用戶主機甲訪問互聯網的訪問控制列表,然后再邊界路由器B上又配置了同樣內容的訪問控制列表,就有點脫褲子放屁,多此一舉的感覺。但是,在實際管理中,有些網路管理元還是會這么處理。這主要是出于統一管理的需要。在路由器A上部署訪問控制列表,可以拒絕不應該的數據流量在網絡上傳輸;而在路由器B上部署訪問控制列表的話,則是出于統一管理的需要。或者說,起到雙重保險的作用,即使路由器A上的訪問控制列表因為某種原因失效,還由路由器B在那邊把關。不過,這么配置的話,邊界路由器B的負擔會比較中。因為他要對來自于企業網絡的所有數據流量進行判斷。所以,具體如何部署,還是要看企業對于安全性的要求。到底是犧牲一定的安全來提高網絡性能,還是降低網絡性能來提高網絡的安全冗余,如何在網絡的安全性與網絡性能之間取得均衡的話,網絡管理員還是需要根據企業的實際情況,在這上面花一番心思。
三是要注意訪問控制列表中最后的隱含語句。假設現在有一個訪問控制列表,其前面有八條判斷語句。而其實呢,有九條,最后一條是隱含的,當前面八條語句都沒有滿足的情況下,則這最后一條語句,就會把這個數據流量拒絕掉。不過在訪問控制列表管理中,我們往往不希望出現這種情況。我們希望,當前面的這些條件都不滿足的情況下,則該數據量背放行。如在一個訪問控制列表中,我們寫了兩條判斷語句,一是拒絕用戶A訪問互聯網;二是拒絕用戶B訪問外部的郵件服務器。此時,若有用戶C訪問互聯網的話,由于前面兩條語句都不滿足,則默認情況下,訪問控制列表會應用隱含的判斷語句,把用戶C的數據流量也拒絕掉,這是我們不希望看到的。為此,我們就需要改變這條隱含的判斷語句,把它改為上面條件都不滿足的情況下,數據流量為允許通過。或者,我們可以顯示的給出這條隱含語句,這有利于提高訪問控制列表的可讀性,對我們后續排除故障也是比較有利的。