方便之餘也要防止意外發生
提昇Cisco設備VTY介面安全性

2010-05-25
也許很多網路管理人員針對Cisco設備的設定,都能達到公司業務上的要求,網路設定也都很完善,但是對VTY介面而言,是否真的能夠滿足這方面的安全性考量,則不無疑問。
對於網路管理人員來說,VTY是相當實用的介面,網路管理人員透過VTY埠就可以輕鬆管理遠端的Cisco路由器設備。許多設定也都可以透過VTY介面來達成。VTY介面雖然好用,但同時也可能引起網路安全的漏洞,因此必須提昇VTY介面的安全性才行。本文將介紹如何透過存取控制清單來達成這項要求。  

VTY簡介

Virtual Type Terminal簡稱VTY,是用來連線到遠端Cisco路由器設備並使用Telnet對遠端設備進行設定。Telnet是一種虛擬終端協定(Virtual Terminal Protocol),為TCP/IP的一部分。藉由telnet指令,後面接上主機名稱或IP位址,就可以連線到其他設備:
RouterA#telnet 10.1.0.3

當然,目的端的Cisco設備也要做相對應的設定才行。一旦下達telnet指令後,跳出輸入密碼的提示符號,就代表可連線到此設備。  

此時,對於遠端設備而言,連線的介面,就稱為VTY。

所以,先來整理一下Cisco路由器會有哪幾種介面。Cisco路由器除了一般討論最多的Ethernet介面之外,還有Console介面。Console介面是用來連接到管理人員的電腦以便作區分,而另外的介面就是VTY介面。一般來說,Cisco路由器有五個VTY介面,編號從0開始到4為止。這五個VTY介面屬於虛擬介面,因此這五個介面並沒有實體的埠,而現在有些Cisco的IOS系統已經可以支援超過五個以上的VTY介面了。

由於VTY這種遠端管理Cisco路由器設備也牽扯到不少安全性的議題,所以提昇VTY的安全性已經是網路管理人員不可忽略的問題。而這裡所要介紹的作法就是透過Cisco設備的存取控制清單來完成。  

存取控制清單簡介

Cisco路由器設備的標準型存取控制清單和延伸型存取控制清單提供了許多功能,其中包含一般的存取控制,同時也提供資料加密以及根據策略自動決定路由的功能(Policy-based Routing)。而存取控制清單(Access Control List,ACL)顧名思義就是一個清單,內容包含一些「規則」,也可以視為條件,用來指導Cisco路由器設備如何辨識哪些網路封包,以及要對這些網路封包做哪些動作。

譬如網路管理人員可能想要阻絕某些網路封包,而希望只允許某些特定的網路封包,而網路管理人員在Cisco路由器設備上設定好存取控制清單後,當網路封包通過Cisco路由器設備時,就會依據存取控制清單的內容來決定是否要讓這個網路封包經過。藉由適當地控制好存取控制清單,網路管理人員就可以過濾網路封包,達到一定的網路安全。  

存取控制清單的種類

基本上,存取控制清單分為「標準型存取控制清單」和「延伸型存取控制清單」兩種類型。兩種存取控制清單各有優劣,以下就來分析這兩種存取控制清單到底有何不同。

檢查網路封包的條件(Criteria)  

標準型存取控制清單與延伸型存取控制清單最大的不同在於,標準型會檢查網路封包的來源IP位址,而延伸型存取控制清單不但檢查網路封包的來源IP位址,也會檢查目的地IP位址。

所能處理的網路協定  

除此之外,標準型存取控制清單只能針對所有的網路協定來做處理,而不能針對特定的網路協定指定允許或拒絕的動作處理,但是延伸型存取控制清單可以針對特定的網路協定做處置。由此看來,延伸型的存取控制清單的能力比較強大,可設定的東西比較多。

延伸型存取控制清單內的規則,除了指定網路協定之外,還可以在協定後面加上埠的編號,以便指明要套用在那種埠的網路封包。網路管理人員一般都會指明比較常見的埠編號(Well Known Ports),底下列出一些常見的埠編號以及所對應的網路服務:  

存取控制清單的識別碼範圍  

在存取控制清單中,每一條規則都有其特定的識別碼(ID),以便於辨識每一條專屬的存取控制規則,不過標準型存取控制清單和延伸型存取控制清單所使用的識別碼範圍不同。標準型存取控制清單的識別碼範圍是從1到99以及1300到1999之間,而延伸型存取控制清單的識別碼範圍則是從100到199以及2000到2699之間。從這裡可以看出,標準型存取控制清單所能設定的規則數目一共有799個,而延伸型存取控制清單可以設定的規則數目一樣也是799個,但是所使用的識別碼範圍卻不同。  

設定標準型存取控制清單的步驟

以下說明比較簡單的標準型存取控制清單。先介紹如何透過指令來設定,而介紹的指令分為以下幾個部分:
1. 增加一筆存取控制規則的指令。
2. 刪除特定一筆存取控制規則的指令。
3. 將特定存取控制規則套用到某個介面上的指令。
4. 刪除已經套用在介面上的規則的指令。 這些步驟是一般設定標準型存取控制清單的步驟,與VTY介面並沒有直接關連,因此這些步驟也同時適用於所有介面。  

增加一筆存取控制規則  

基本的設定語法格式如下所示:
Router(config)#access-list number [permit | deny] source mask

由於這裡要設定的是標準型存取控制清單,所以存取控制規則的識別碼範圍為1到99之間,而mask指的是字元遮罩,這個字元遮罩可輸入也可忽略,若沒有輸入字元遮罩,預設值是0.0.0.0。

字元遮罩是用來指定一個以上的位址,不過不同的是,在存取控制清單中,位元值為0代表符合(Match)目前這個位元值所對應的位址值,而位元值為1則代表忽略(Ignore)。這點和子網路遮罩剛好相反,在子網路遮罩中,位元值為0代表忽略(Ignore),而位元值為1則代表要符合(Match)。

剛剛提到此處字元遮罩的預設值是0.0.0.0,所以代表要符合前面輸入之IP位址的每一個位元才能套用這個存取控制規則。 假設,要在某台Cisco路由器設備上增加一筆存取控制規則,允許10.1.152.43這台機器所發送過來的網路封包,則設定指令如下所示:
Router(config)#access-list 46 permit 10.1.152.43  

由此可以看出,將這條規則的識別碼設定為46。 刪除一筆存取控制規則  

若要刪除某一筆存取控制規則,其指令格式如下:
Router(config)#no access-list number

這是標準的反向操作指令。在Cisco IOS上,很多指令的反向操作通常都只是在原本指令的前面加上no關鍵字。所以,若想要刪除剛剛上面所增加的存取控制規則,只要執行以下的指令即可:
Router(config)#no access-list 46

套用存取控制規則到介面上  

準備好存取控制規則之後,接著就是把所設定好的存取控制規則套用到介面上,其指令如下:  

Router(config-if)#ip access-group access-list-number [in | out] 為了要設定到某個介面上,當然第一步就是要先進入特定介面的Interface Mode底下,所以讀者可以看到上面的指令模式必須在(config-if)底下才能執行。Ip access-group是關鍵字,後面只要接上存取控制規則的識別碼,然後指定要套用在inbound或outbound。方向的選擇也可以不指定,若不指定的話,預設只會套用在outbound方向上。

移除已經套用在某介面上的規則  

這裡的作法其實也是類似,只要執行反向指令即可。原本要把規則套用在某個介面上的指令是ip access-group,因此,若要將這條規則從介面上移除,則該指令只要在原本的指令前面加上no關鍵字即可:
Router(config-if)#no ip access-group access-list-number  

(更多精采文章,請見網管人52期雜誌)


追蹤我們Featrue us

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

我知道了!