眾所周知,防火牆可以透過設定來控制所通過的網路封包,以便於決定何種網路協定或何種埠的封包能夠通過,甚至可設定哪些來源端或目的地端套用這樣的設定。防火牆就是由許多這樣的規則所組成,以增加網路的安全性,而Cisco網路設備也可以提供這樣的功能,本文將示範如何設定Cisco路由器來當作網路防火牆。
進入介面之後,套用存取控制規則的指令格式,如下所示:
一開始要先選擇網路協定,一般而言為ip,接著的access-group是保留字,number和前面一樣,指的是存取控制規則的識別碼,而in和out指的是網路封包的流向。流向是針對路由器本身而言,與網路其他位置或設備完全無關。這裡所提及的in和out,就是剛才提到的inbound和outbound。
文章後面還會分別為標準型存取控制清單和延伸型存取控制清單,並詳細說明這些步驟的作法。
設定標準型存取控制清單
先介紹如何透過指令來設定標準型存取控制清單,這裡介紹的指令分為以下幾個部分:
1. 增加一筆存取控制規則的指令。
2. 刪除特定一筆存取控制規則的指令。
3. 將特定存取控制規則套用到某介面上的指令。
4. 刪除已經套用在介面上的規則的指令。
增加一筆存取控制規則
基本的設定語法格式如下所示,與剛剛步驟一提到的格式類似。由於這裡要設定的是標準型存取控制清單,所以存取控制規則的識別碼範圍為1到99之間,而mask指的是字元遮罩,這個字元遮罩可輸入也可忽略。若沒有輸入字元遮罩,預設值是0.0.0.0。
刪除一筆存取控制規則
若要刪除某一筆存取控制規則,其指令格式如下所示:
可以看出這是標準的反向操作指令,在Cisco IOS上,很多指令的反向操作通常都只是在原本指令的前面加上no關鍵字。所以,若要刪除剛剛上面所增加的存取控制規則,只要執行以下的指令即可:
套用存取控制規則到介面上
準備好存取控制規則之後,接下來把所設定好的存取控制規則套用到介面上,其指令格式如下:
為了要設定到某個介面上,第一步必須先進入特定介面的Interface Mode底下,所以上面的指令模式必須在(config-if)下才能執行。ip access-group是關鍵字,後面只要接上存取控制規則的識別碼,然後指定要套用在inbound或outbound即可。方向的選擇也可以不指定,若不指定的話,預設只會套用在outbound方向上。
移除已套用在某介面上的規則
這裡的作法其實也是類似,只要執行反向指令即可。若原本把規則套用在某個介面上的指令是ip access-group,而要把這條規則從介面上移除時,只要在原本的指令前面加上no關鍵字即可,如下所示:
設定延伸型存取控制清單
現在讀者已經學會如何使用標準型存取控制清單,不過,如同前面所看到的,標準型存取控制清單中的規則功能很有限,並不能設定出複雜的存取控制規則,所以以下再介紹幾種不同的指令:
1. 增加一筆延伸型存取控制規則的指令。
2. 套用延伸型存取控制規則到某介面的指令。
增加一筆延伸型存取控制規則
增加一筆延伸型存取控制規則的指令與標準型存取控制規則類似,但能夠設定的選項比較多,其指令格式如下所示:
這個指令的關鍵字同樣也是access-list,後面接上存取控制規則的識別碼,可選擇的動作也有permit和deny。接下來比較不同的是,延伸型存取控制規則可以選擇網路協定,可選的網路協定包括TCP、IP、ICMP、UDP、GRE以及IGRP等協定。其中,GRE指的是General Routing Encapsulation,而IGRP全名為Interior Gateway Routing Protocol。
然後,指定來源端IP位址和位址字元遮罩,再來可以指定埠。可以指定從來源端哪個埠出去的網路封包,才需要套用這個存取控制規則。設定的方式是一個比較關鍵字加上埠號碼,例如要指定來源端的21號埠時,可以寫成eq 21。此處的比較關鍵字就是eq,其他比較關鍵字還有lt、gt和neq。
lt就是less than,代表小於,gt是greater than,代表大於,而neq就是not equal,代表不等於。原本範例中的eq則代表equal,就是等於的意思。而埠的相關設定可以不輸入,是可有可無的設定項目。
來源埠設定好了之後,後面繼續加上目的端的IP位址以及相對應的位址字元遮罩,同樣也可以指定埠號碼。最後,可以額外指定是否要established這個關鍵字。
若設定這個關鍵字,代表允許TCP協定的網路封包,但前提是這些網路封包是使用已經建立好的網路連線(Established Connection),而且這關鍵字只能套用在Inbound的網路封包上。至於最後的log關鍵字,代表是否要在路由器設定螢幕上顯示即時的網路封包紀錄(log)。
不過,由於延伸型存取控制清單的設定相當複雜,所以其指令遠複雜於此處所介紹的。這裡介紹的指令比較常見,尤其是用在TCP協定,至於其他比較複雜的指令,以後若有機會再介紹。
套用延伸型存取控制規則到介面
準備好存取控制規則之後,接著把所設定好的存取控制規則套用到介面上。指令格式和標準型控制清單一樣,其指令格式如下:
為了要設定到某個介面上,第一步還是要先進入特定介面的Interface Mode底下,所以可以看到上面的指令的模式必須在(config-if)底下才能執行。
ip access-group是關鍵字,後面只要接上存取控制規則的識別碼,然後指定要套用在inbound或是outbound。方向的選擇也可以不指定,若不指定,預設只會套用在outbound方向上。