Cisco 防火牆 ACL 路由器 協定 思科

用Cisco路由器當防火牆 傳遞網路封包同時過濾

2016-02-18
本文將教大家如何設定Cisco路由器來當作網路防火牆,從基本概念說起,講解如何設計防火牆規則,並透過範例來說明如何設定規則以達成防火牆的功效。
至於最後的log關鍵字,則代表是否要在路由器設定螢幕上顯示出即時的網路封包紀錄(Log)。不過,由於延伸型存取控制清單的設定相當繁複,其指令遠複雜於本文所介紹的。

這裡介紹的指令都是比較常見的,尤其是用在TCP協定,至於其他比較複雜的指令,若以後有機會再慢慢為各位介紹。

套用延伸型存取控制規則到介面

準備好存取控制規則之後,接下來就是把所設定好的存取控制規則套用到介面上。指令格式和標準型控制清單一樣,其指令格式如下:


為了要設定到某個介面上,當然第一步就是要先進入特定介面的Interface Mode底下,所以可以看到上面指令的模式是必須是在(config-if)底下才能 執行。

而ip access-group是關鍵字,後面只要接上存取控制規則的識別碼,然後指定要套用在Inbound或是Outbound。方向的選擇也可以不指定,若不指定,預設只會套用在Outbound方向。

設定存取控制清單的技巧

存取控制清單如果設計得好,可以很有效地過濾網路封包,也能夠減少網路中不必要的網路流量。以下列出一些設計存取控制清單時的技巧,供大家參考。

使用文字編輯器先寫下存取控制清單內容

首先,大家必須先了解到,在設定或是設計存取控制清單時,隨時要注意的就是記得存取控制清單的順序性,這是最重要的。

所以,Cisco建議在設定存取控制清單的規則時,最好使用一個文字編輯器,先把要設定的規則內容寫在文字編輯器內,等到全部的規則都設定好了之後,先重複審查一下所設定的規則內容,確認無誤之後,再用剪下貼上的方式設定到Cisco的路由器設備中。

例如,先開啟Word或記事本軟體,接著在文字編輯軟體中編輯好規則,再Telnet連到遠端Cisco路由器設備並一一設定進去。這樣一來,就能夠減少錯誤的發生率。

善用名稱式存取控制清單

如果想重新安排存取控制規則,必須先把整個存取控制清單刪除,然後再一一建立新的存取控制規則。但是,如果使用的是名稱式存取控制規則,則允許刪除單一一筆存取控制規則。因此,若考慮到往後維護的成本,可以把這一點也加入納入考量。

將標準型存取控制清單放置在靠近目的地的地方

由於標準型存取控制清單只可以針對來源端的IP位址做設定,而不能針對目的地的IP位址做過濾,因此建議把標準型存取控制清單的存放位置距離目的地越近越好。

因為如果把標準型存取控制規則放置在來源端的附近,則所有來源端所發出的網路封包都會經過這個標準型控制規則的確認動作,這樣一來,就做了太多次不必要的存取規則確認動作,效能會比較差。

事實上,標準型存取控制清單是站在目的地的角度來設計的,所以若能放置在距離目的地比較近的地方,則真正要確認這個存取控制清單時,都是一定要發送給這個目的地的網路封包。

將延伸型存取控制清單放置在靠近來源端的地方

延伸型存取控制清單不僅可以針對來源端位址做過濾,還可以針對目的端的位址做過濾,而剛剛提過,可以考慮把標準型存取控制清單放置在距離目的端位址比較接近的地方,而又因為延伸型存取控制清單能夠針對目的端的位址來過濾,所以可以考慮把延伸型存取控制清單放置在距離來源端比較接近的地方。

越容易符合的規則要放在存取控制清單的上方

符合規則的方式其實也與防火牆類似,一般存取控制清單當然都會有很多規則,而每一個網路流量也可能符合存取控制清單中一條以上的規則,但在決定使用哪一條規則時,是由第一條規則開始嘗試,一旦找到第一條符合的規則,就直接套用其符合的規則,也就是「First Match」的精神。

換句話說,假設存取控制清單中第一條規則是「允許TCP協定23埠的網路封包」,但是後面的規則中可能是「拒絕TCP協定23埠的網路封包」,則因為在套用規則時會先找到一條規則,所以最終結果是「允許TCP協定23埠的網路封包」。但如果存取控制清單有這樣的規則衝突,那只會增加網路管理人員在管理上的負擔。

由於存取控制清單是屬於「First Match」,所以若要增加存取控制清單的效能,最好把越容易符合的規則,也就是越經常被使用的規則,放在存取控制清單的上方,這樣就可以大量減少要符合規則所需要的時間。

否則,當規則數量大為增加時,若沒有考慮存取控制清單規則的順序性,就會讓Cisco路由器設備的效能越來越差,到時候要再整理就太遲,其管理成本已經相當可怕了。

越普遍的規則要盡量放在存取控制清單的下方

越普遍的規則要盡量放在存取控制清單的下方,關於這點也是考慮到存取控制清單規則的順序性而建議給大家。

這裡舉一個錯誤設定的例子,假設某位網路管理人員把存取控制清單設定成第一條規則是「允許TCP協定所有埠的網路封包」,而第二條規則是「允許TCP協定23埠的網路封包」。

寫到這裡,大家應該就發現,在這樣的情況下,第二條規則根本不可能被採用,因為第一條規則已經包含第二條規則。

就這兩條規則來比較的話,可以稱第一條規則是比較普遍的(General),而第二條規則是屬於比較具體的(Specific),為了減少這種情況的發生,建議讓比較具體的規則放在普遍規則的上方。

當然,具體的規則有時候可能會變成比較不容易符合的規則,而不容易符合的規則又最好是放在下方,所以如何規劃存取控制清單每一條規則的順序性是很重要的,可以依照自身不同的使用環境來加以規劃。

結語

本文以精簡的方式、以最快的方法讓大家可以在最短的時間之內了解到Cisco路由器設定存取控制清單,以便於達到防火牆的效果,包括整個存取控制清單的概念、套用時機、存取控制清單的種類,以及這些種類的詳細設定方式。最後,也根據筆者以往的經驗提供一些設定上的小技巧。

想必各位現在已經都了解如何設定存取控制清單,是不是很想要趕快來試試看呢?

<本文作者:胡凱智,目前在美商Mozilla擔任全球技術專案總監,曾於趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者可在其粉絲專頁獲取更多網路知識及交流建議:https://www.facebook.com/khu.page>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!