全面剖析Cisco路由器安全配置問題
讓我們全面剖析Cisco路由器安全配置問題,讓大家學會如何配置Cisco路由器,讓大家有一個更安全的環境上網。目前大多數的企事業單位和部門連Internet網,通常都是一臺路由器與ISP連結實現。這臺路由器就是溝通外部Internet和內部網絡的橋梁,如果這臺路由器能夠合理進行安全設置,那么就可以對內部的網絡提供一定安全性或對已有的安全多了一層屏障。現在大多數的路由器都是Cisco公司的產品或與其功能近似,本文在這里就針對Cisco路由器的安全配置進行管理。
考慮到路由器的作用和位置,Cisco路由器安全配置的好壞不僅影響本身的安全也影響整個網絡的安全。目前路由器(以Cisco為例)本身也都帶有一定的安全功能,如訪問列表、加密等,但是在缺省配置時,這些功能大多數都是關閉的。需要進行手工配置。怎樣的配置才能最大的滿足安全的需要,且不降低網絡的性能?本文從以下幾個部分分別加以說明:
一.Cisco路由器安全配置:口令管理
口令是路由器是用來防止對于路由器的非授權訪問的主要手段,是路由器本身安全的一部分。最好的口令處理方法是將這些口令保存在TACACS+或RADIUS認證服務器上。但是幾乎每一個路由器都要有一個本地配置口令進行權限訪問。如何維護這部分的安全?
使用enablesecret,enablesecret命令用于設定具有管理員權限的口令。并且如果沒有enablesecret,則當一個口令是為控制臺TTY設置的,這個口令也能用于遠程訪問。這種情況是不希望的。還有一點就是老的系統采用的是enablepassword,雖然功能相似,但是enablepassword采用的加密算法比較弱。
使用servicepassword-encryption,這條命令用于對存儲在配置文件中的所有口令和類似數據(如CHAP)進行加密。避免當配置文件被不懷好意者看見,從而獲得這些數據的明文。但是servicepassword-encrypation的加密算法是一個簡單的維吉尼亞加密,很容易被破譯。
這主要是針對enablepassword命令設置的口令。而enablesecret命令采用的是MD5算法,這種算法很難進行破譯的。但是這種MD5算法對于字典式攻擊還是沒有辦法。所以不要以為加密了就可以放心了,最好的方法就是選擇一個長的口令字,避免配置文件被外界得到。且設定enablesecret和servicepassword-encryption。
二.Cisco路由器安全配置:控制交互式訪問
任何人登錄到路由器上都能夠顯示一些重要的配置信息。一個攻擊者可以將路由器作為攻擊的中轉站。所以需要正確控制路由器的登錄訪問。盡管大部分的登錄訪問缺省都是禁止的。但是有一些例外,如直連的控制臺終端等。
控制臺端口具有特殊的權限。Cisco路由器安全配置注意的是,當路由器重啟動的開始幾秒如果發送一個Break信號到控制臺端口,則利用口令恢復程式可以很容易控制整個系統。這樣如果一個攻擊者盡管他沒有正常的訪問權限,但是具有系統重啟(切斷電源或系統崩潰)和訪問控制端口(通過直連終端、Modem、終端服務器)的能力就可以控制整個系統。所以必須保證所有連結控制端口的訪問的安全性。
除了通過控制臺登錄路由器外還有很多的方法,根據配置和操作系統版本的不同,可以支持如Telnet、rlogin、Ssh以及非基于IP的網絡協議如LAT、MOP、X.29和V.120等或者Modem撥號。所有這些都涉及到TTY,本地的異步終端和撥號Modem用標準的"TTYs"。遠地的網絡連結不管采用什么協議都是虛擬的TTYs,即"VTYs"。要控制路由器的訪問,最好就是控制這些TTYs或VTYs,加上一些認證或利用login、nopassword命令禁止訪問。
控制TTY,缺省的情況下一個遠端用戶可以連結到一個TTY,稱為"反向Telnet",允許遠端用戶和連接到這個TTY上的終端或Modem進行交互。但是這些特征允許一個遠端用戶連接到一個本地的異步終端口或一個撥入的Modem端口,從而構造一個假的登錄過程來偷盜口令或其他的非法活動。所以最好禁止這項功能,可以采用transportinputnone設置任何異步或Modem不接收來自網絡用戶的連結。如果可能,不要用相同的Modem撥入和撥出,且禁止反向Telnet撥入。
控制VTY,為了保證安全,任何VTY應該僅允許指定的協議建立連結。利用transportinput命令。如一個VTY只支持Telnet服務,可以如下設置transportinputtelnet。如果路由器操作系統支持SSH,最好只支持這個協議,避免使用明文傳送的Telnet服務。如下設置:transportinputssh。也可以利用ipaccess-class限制訪問VTY的ip地址范圍。
因為VTYs的數目有一定的限制,當所有的VTYs用完了,就不能再建立遠程的網絡連結了。這就有可能被利用進行Dos(拒絕服務攻擊)。這里攻擊者不必登錄進入,只要建立連結,到login提示符下就可以,消耗到所有的VTYs。對于這種攻擊的一個好的防御方法就是利用ipaccess-class命令限制最后一個VTYs的訪問地址,只向特定管理工作站打開。
而其他的VTYs不限制,從而既保證了靈活性,也保證關鍵的管理工作不被影響。另一個方法是利用exec-timeout命令,配置VTY的超時。避免一個空閑的任務一直占用VTY。類似的也可以用servicetcp-keepalives-in保證Tcp建立的入連結是活動的,從而避免惡意的攻擊或遠端系統的意外崩潰導致的資源獨占。更好的保護VTY的方法是關閉所有非基于IP的訪問,且使用IPSec加密所有的遠端與路由器的連結。
三.Cisco路由器安全配置:管理服務配置
許多的用戶利用協議如Snmp或Http來管理路由器。但是利用這些協議管理服務時,就會存在一定的安全問題。Snmp,Snmp是最經常用于路由器的管理的協議。目前使用最多的Snmp版本1,但是這個版本的Snmp存在著很多的安全問題:使用明文認證,利用"community"字符串。在周期性輪循時,重復的發送這些"community"。采用容易被欺騙的基于數據包的協議。
所以盡量采用SnmpV2,因為它采用基于MD5的數字認證方式,并且允許對于不同的管理數據進行限制。如果一定要使用SnmpV1,則要仔細的配置。如避免使用缺省的community如public,private等。避免對于每個設備都用相同的community,區別和限制只讀和讀寫commnity。對于SnmpV2,則可能的話對于不同的路由器設定不同的MD5安全值。還有就是最好使用訪問列表限定可以使用Snmp管理的范圍。
Http:最近的路由器操作系統支持Http協議進行遠端配置和監視。而針對Http的認證就相當于在網絡上發送明文且對于Http沒有有效的基于挑戰或一次性的口令保護。這使得用Http進行管理相當危險。如果選擇使用Http進行管理,最好用iphttpaccess-class命令限定訪問地址且用iphttpauthentication命令配置認證。最好的http認證選擇是利用TACACS+或RADIUS服務器。
四.Cisco路由器安全配置:日志
利用路由器的日志功能對于安全來說是十分重要的。Cisco路由器支持如下的日志
◆AAA日志:主要收集關于用戶撥入連結、登錄、Http訪問、權限變化等。
◆這些日志用TACACS+或RADIUS協議送到認證服務器并本地保存下來。
◆這些可以用aaaaccouting實現。
◆Snmptrap日志:發送系統狀態的改變到Snmp管理工作站。
◆系統日志:根據配置記錄大量的系統事件。并可以將這些日志發送到下列地方:
◆控制臺端口
◆Syslog服務器
◆TTYs或VTYs
◆本地的日志緩存。
這里最關心的就是系統日志,缺省的情況下這些日志被送到控制臺端口,通過控制臺監視器來觀察系統的運行情況,但是這種方式信息量小且無法記錄下來供以后的查看。最好是使用syslog服務器,將日志信息送到這個服務器保存下來。
五.Cisco路由器安全配置:路由安全
防止偽造:偽造是攻擊者經常使用的方法。通過路由器的配置可以在一定程度上防止偽造。通常是利用訪問列表,限制通過的數據包的地址范圍。但是有下面幾點注意的。
◆可以在網絡的任何一點進行限制,但是最好在網絡的邊界路由器上進行,因為在網絡內部是難于判斷地址偽造的。
◆最好對接口進入的數據進行訪問控制(用ipaccess-grouplistin)。因為輸出列表過濾只保護了位于路由器后的網絡部分,而輸入列表數據過濾還保護了路由器本身不受到外界的攻擊。
◆不僅對外部的端口進行訪問控制,還要對內部的端口進行訪問控制。因為可以防止來自內部的攻擊行為。
下面是一個是一個訪問列表的例子:
◆ipaccess-listnumberdenyicmpanyanyredirect拒絕所有的Icmp重定向
◆ipaccess-listnumberdenyiphost127.0.0.00.255.255.255any拒絕Loopback的數據包
◆ipaccess-listnumberdenyip224.0.0.031.255.255.255any拒絕多目地址的數據包
除了訪問列表的限制外,還可以利用路由器的RPF檢查(ipverifyunicastrpf)。這項功能主要用于檢查進入接口的數據包的源地址,根據路由表判斷是不是到達這個源地址的路由是不是也經過這個接口轉發,如果不是則拋棄。這進一步保證了數據源的正確性。但是這種方式不適合非對稱的路由,即A到B的路由與B到A的路由不相同。所以需要判斷清楚路由器的具體配置。
控制直接廣播,一個IP直接廣播是一個目的地為某個子網的廣播地址的數據包,但是這個發送主機的不與這個目的子網直接相連。所以這個數據包被路由器當作普通包轉發直到目的子網,然后被轉換為鏈路層廣播。由于Ip地址結構的特性,只有直接連接到這個子網的路由器能夠識別一個直接廣播包。
針對Cisco路由器安全配置,目前存在一種攻擊稱為"smurf",攻擊者通過不斷的發送一個源地址為非法地址的直接廣播包到攻擊的子網。從而導致子網的所有主機向這個非法地址發送響應,最終導致目的網絡的廣播風暴。對于這種攻擊可以在路由器的接口上設置noipdirected。