應用視點:介紹Cisco路由器安全配置
Cisco路由器在路由行業(yè)中占有非常重要的地位,同時用戶群也很多,了解一些Cisco路由器安全配置還是非常重要的。目前大多數(shù)的企事業(yè)單位和部門連Internet網(wǎng),通常都是一臺路由器與ISP連結(jié)實現(xiàn)。
這臺路由器就是溝通外部Internet和內(nèi)部網(wǎng)絡(luò)的橋梁,如果這臺路由器能夠合理進行安全設(shè)置,那么就可以對內(nèi)部的網(wǎng)絡(luò)提供一定安全性或?qū)σ延械陌踩嗔艘粚悠琳稀,F(xiàn)在大多數(shù)的路由器都是Cisco公司的產(chǎn)品或與其功能近似,本文在這里就針對Cisco路由器安全配置進行管理??紤]到路由器的作用和位置,路由器配置的好壞不僅影響本身的安全也影響整個網(wǎng)絡(luò)的安全。目前路由器(以Cisco為例)本身也都帶有一定的安全功能,如訪問列表、加密等,但是在缺省配置時,這些功能大多數(shù)都是關(guān)閉的。需要進行手工配置。怎樣的配置才能最大的滿足安全的需要,且不降低網(wǎng)絡(luò)的性能?本文從以下幾個部分分別加以說明:
Cisco路由器安全配置. 口令管理
口令是路由器是用來防止對于路由器的非授權(quán)訪問的主要手段,是路由器本身安全的一部分。最好的口令處理方法是將這些口令保存在TACACS+或RADIUS認證服務(wù)器上。但是幾乎每一個路由器都要有一個本地配置口令進行權(quán)限訪問。如何維護這部分的安全?
1. 使用enable secret
enable secret 命令用于設(shè)定具有管理員權(quán)限的口令。并且如果沒有enable secret,則當一個口令是為控制臺TTY設(shè)置的,這個口令也能用于遠程訪問。這種情況是不希望的。還有一點就是老的系統(tǒng)采用的是enable password,雖然功能相似,但是enable password采用的加密算法比較弱。
2. 使用service password-encryption
這條命令用于對存儲在配置文件中的所有口令和類似數(shù)據(jù)(如CHAP)進行加密。避免當配置文件被不懷好意者看見,從而獲得這些數(shù)據(jù)的明文。但是service password-encrypation的加密算法是一個簡單的維吉尼亞加密,很容易被破譯。這主要是針對enable password命令設(shè)置的口令。而enable secret命令采用的是MD5算法,這種算法很難進行破譯的。但是這種MD5算法對于字典式攻擊還是沒有辦法。所以不要以為加密了就可以放心了,最好的方法就是選擇一個長的口令字,避免配置文件被外界得到。且設(shè)定enable secret和service password-encryption。
Cisco路由器安全配置. 控制交互式訪問
任何人登錄到路由器上都能夠顯示一些重要的配置信息。一個攻擊者可以將路由器作為攻擊的中轉(zhuǎn)站。所以需要正確控制路由器的登錄訪問。盡管大部分的登錄訪問缺省都是禁止的。但是有一些例外,如直連的控制臺終端等。
控制臺端口具有特殊的權(quán)限。特別注意的是,當路由器重啟動的開始幾秒如果發(fā)送一個Break信號到控制臺端口,則利用口令恢復程式可以很容易控制整個系統(tǒng)。這樣如果一個攻擊者盡管他沒有正常的訪問權(quán)限,但是具有系統(tǒng)重啟(切斷電源或系統(tǒng)崩潰)和訪問控制端口(通過直連終端、Modem、終端服務(wù)器)的能力就可以控制整個系統(tǒng)。所以必須保證所有連結(jié)控制端口的訪問的安全性。
除了通過控制臺登錄路由器外還有很多的方法,根據(jù)配置和操作系統(tǒng)版本的不同,可以支持如Telnet、rlogin、Ssh以及非基于IP的網(wǎng)絡(luò)協(xié)議如LAT、MOP、X.29和V.120等或者Modem撥號。所有這些都涉及到TTY,本地的異步終端和撥號Modem用標準的"TTYs"。遠地的網(wǎng)絡(luò)連結(jié)不管采用什么協(xié)議都是虛擬的TTYs,即"VTYs"。要控制路由器的訪問,最好就是控制這些TTYs或VTYs,加上一些認證或利用login、no password命令禁止訪問。
1.控制TTY
缺省的情況下一個遠端用戶可以連結(jié)到一個TTY,稱為"反向Telnet",允許遠端用戶和連接到這個TTY上的終端或Modem進行交互。但是這些特征允許一個遠端用戶連接到一個本地的異步終端口或一個撥入的Modem端口,從而構(gòu)造一個假的登錄過程來偷盜口令或其他的非法活動。所以最好禁止這項功能,可以采用transport input none設(shè)置任何異步或Modem不接收來自網(wǎng)絡(luò)用戶的連結(jié)。如果可能,不要用相同的Modem撥入和撥出,且禁止反向Telnet撥入。
2.控制VTY
為了保證安全,任何VTY應該僅允許指定的協(xié)議建立連結(jié)。利用transport input命令。如一個VTY只支持Telnet服務(wù),可以如下設(shè)置transport input telnet。如果路由器操作系統(tǒng)支持SSH,最好只支持這個協(xié)議,避免使用明文傳送的Telnet服務(wù)。如下設(shè)置:transport input ssh。也可以利用ip access-class限制訪問VTY的ip地址范圍。
因為VTYs的數(shù)目有一定的限制,當所有的VTYs用完了,就不能再建立遠程的網(wǎng)絡(luò)連結(jié)了。這就有可能被利用進行Dos(拒絕服務(wù)攻擊)。這里攻擊者不必登錄進入,只要建立連結(jié),到login提示符下就可以,消耗到所有的VTYs。對于這種攻擊的一個好的防御方法就是利用ip access-class命令限制最后一個VTYs的訪問地址,只向特定管理工作站打開。而其他的VTYs不限制,從而既保證了靈活性,也保證關(guān)鍵的管理工作不被影響。另一個方法是利用exec-timeout命令,配置VTY的超時。避免一個空閑的任務(wù)一直占用VTY。類似的也可以用service tcp-keepalives-in 保證Tcp建立的入連結(jié)是活動的,從而避免惡意的攻擊或遠端系統(tǒng)的意外崩潰導致的資源獨占。更好的保護VTY的方法是關(guān)閉所有非基于IP的訪問,且使用IPSec加密所有的遠端與路由器的連結(jié)。
Cisco路由器安全配置.路由安全
控制直接廣播
一個IP直接廣播是一個目的地為某個子網(wǎng)的廣播地址的數(shù)據(jù)包,但是這個發(fā)送主機的不與這個目的子網(wǎng)直接相連。所以這個數(shù)據(jù)包被路由器當作普通包轉(zhuǎn)發(fā)直到目的子網(wǎng),然后被轉(zhuǎn)換為鏈路層廣播。由于Ip地址結(jié)構(gòu)的特性,只有直接連接到這個子網(wǎng)的路由器能夠識別一個直接廣播包。針對這個功能,目前存在一種攻擊稱為"smurf",攻擊者通過不斷的發(fā)送一個源地址為非法地址的直接廣播包到攻擊的子網(wǎng)。從而導致子網(wǎng)的所有主機向這個非法地址發(fā)送響應,最終導致目的網(wǎng)絡(luò)的廣播風暴。
對于這種攻擊可以在Cisco路由器安全配置上的no ip directed-broadcast,但是這種直接廣播包,要被這個接口轉(zhuǎn)換成鏈路層的廣播而不是拋棄,所以為了更好防止攻擊,最好在將所有可能連接到目的子網(wǎng)的路由器都配置no ip directed-broadcast。
防止路由攻擊
源路由攻擊一種常用攻擊方法,因為一些老的Ip實現(xiàn)在處理源路由包時存在問題,所以可能導致這些機器崩潰,所以最好在路由器上關(guān)閉源路由。用命令no ip source-route。Icmp 重定向攻擊也是一種常用的路由攻擊方法。攻擊者通過發(fā)送錯誤的重定向信息給末端主機,從而導致末端主機的錯誤路由。這種攻擊可以通過在邊界路由器上設(shè)定過濾所有icmp重定向數(shù)據(jù)來實現(xiàn)。但是這只能阻止外部的攻擊者,如果攻擊者和目的主機在同一個網(wǎng)段則沒有辦法。
當路由器采用動態(tài)協(xié)議時,攻擊者可以偽造路由包,破壞路由器的路由表。為了防止這種攻擊可以利用訪問列表(distribute-list in)限定正確路由信息的范圍。并且如果可能則采用認證機制。如Rip 2或ospf支持認證等。