把好關口 安全部署企業網絡邊界路由器
邊界路由器是連接內部局域網和外部Internet的關鍵路由。作為內外網絡之間的橋梁,它的安全運行關系到整個局域網的命運。因為直接與Internet連接,邊界路由器首當其沖是黑客攻擊的重點。基于此,邊界路由器理應成為網絡管理者重點維護的對象。本文就以Cisco的路由器產品為例,和大家分享邊界路由器的安全部署方案。
1、安全部署從密碼開始
密碼是路由器用來阻止對其進行非授權訪問的主要手段,是路由器本身安全的一部分。對于邊界路由器來說,安全可靠的密碼策略更是必不可少的。
(1).設置符合復雜性的特權模式進入密碼
首次登錄路由器后就要為其設置復雜的密碼,例如:“Router(config)#enable secret 55ctocio,.”,建議不要采用enable password進行設置。兩者雖然功能相似,但是enable password采用的加密算法比較弱。同時,還要啟用service password-encryption。例如:“Router(config)#service password-encryption”利用這條命令對存儲在配置文件中的所有密碼和類似的數據進行加密,以提高密碼的安全性。(圖1)
(2).盡量不要遠程訪問路由器
如果不需要對路由器進行遠程維護和管理,建議不要開啟遠程訪問。就算開啟了路由器的遠程訪問功能,也要控制遠程訪問的次數。因為任何人登錄到路由器都會在路由器上顯示一些重要的信息,而這些信息能夠對攻擊者進行網絡滲透提供幫助。另外還有一種情況:攻擊者也許不會通過路由器對局域網實施攻擊,但他會將你的路由器作為一個跳板對其他的目標實施攻擊。這樣,你的路由器被攻擊者利用不說,而且會給你帶來麻煩(嫁禍于人)。基于此,我們一定要控制路由器的遠程訪問。如果情況特殊需要遠程訪問路由器,也一定要設置足夠強的密碼。筆者建議,不要將遠程訪問密碼和特權密碼設置成一樣。
Router(config)#line vty 0 4 Router(config-line)#login Router(config-line)#password ineing55ete |
(圖2)
(3).設置高強度的Consol端口訪問密碼
盡管大部分的登錄訪問缺省都是禁止的。但是有一些例外。如直連的控制臺終端等。控制臺端口具有特殊的權限。特別注意的是,當路由器重啟動的開始幾秒如果發送一個Break信號到控制臺端口,則利用口令恢復程式可以很容易控制整個系統。這樣如果一個攻擊者盡管他沒有正常的訪問權限,但是具有系統重啟(切斷電源或系統崩潰)和訪問控制端口(通過直連終端、Modem、終端服務器)的能力就可以控制整個系統。所以必須保證所有連結控制端口的訪問的安全性,給Consol端口設置高強度密碼。
Router(config)#line consol 0 Router(config-line)#password ewingw58erer Router(config-line)#login |
(圖3)
#p#
2、嚴格配置路由器管理服務
Cisco路由器集成了許多管理服務,這些服務適用于不同的環境和應用需求。通常情況下,其中的很多管理服務我們根本用不著。而默認情況下其中的某些管理服務是開啟的,這帶來了一定的安全隱患。最小的服務帶來最大的安全,所以我們應該根據實際需要對這些管理服務進行嚴格配置。
(1).建議禁止Http管理服務
Http管理服務是Cisco提供的基于圖形界面的Web管理方式,方便某些初級用戶的管理需求。但是,開啟Web管理后路由器需要開啟而外的端口(通常是80),而且Http是Cisco存在漏洞比較多的一個服務。對于一個熟練的管理員,有高效的命令行就可以了,完全用不著Web管理方式,因此筆者建議禁止該管理服務服務。
Router(config)#no ip http server |
HTTP使用的身份識別協議相當于向整個網絡發送一個未加密的口令,這使得用HTTP協議進行管理相當危險。如如果開啟了HTTP服務,最好使用“Router(config)#ip http access-class”命令限制可訪問地址,同時還要設置用戶名和密碼,并且使用“Router(config)#ip http authentication”命令開啟IP驗證。
Router(config)#username ctocio privilege 10 password ienig56egd Router(config)#access-list 10 permit 192.168.1.1 Router(config)#ip http access-class 10 Router(config)#ip http server |
(圖4)
(2).建議禁止SNMP服務
SNMP是英文“Simple Network Management Protocol”的縮寫,中文意思是“簡單網絡管理協議”,它是路由器里最為常用的網管協議。但是SNMP V1存在很多安全隱患,建議大家通過命令“Router(config)#no snmp-server”將其禁止。如確實要使用該協議,應盡量使用SNMP V2,因為它是基于MD5的數字認證方式。另外,應盡可能對不同的路由器設置不同的MD5安全值。
如果一定要使用SNMP V1,那么必須要刪除SNMP的默認配置,如缺省的community public/private等。如筆者曾經寫過一篇文章《防止黑客接管思科路由器》(鏈接地址為:http://networking.ctocio.com.cn/tips/429/8542429.shtml),就是利用了管理員并沒有修改SNMP的默認設置,利用工具下載了路由器的配置文件進而控制路由器的案例。
禁止pulic的只讀屬性和admin的讀寫屬性
Router(config)#no snmp-server community public ro Router(config)#no snmp-server community admin rw |
(圖5)
(3).關閉IP直接廣播(IP Directed Broadcast)
DDOS(拒絕服務)是網絡宿敵而且幾乎沒有有效的防御措施,Smurf攻擊是一種拒絕服務攻擊。局域網中的服務器會應答各種網絡指令,通常情況下它并不管這個指令是誰發出的。在這種攻擊中,攻擊者使用假冒的源地址向你的網絡廣播地址發送一個“ICMP ech0”請求。這要求所有的主機對這個廣播請求做出回應,這種情況至少會降低你的網絡性能。大家可參考你的路由器信息文件,了解如何關閉IP直接廣播。例如,可以使用“Router(config)#no ip source-route”這個指令關閉路由器的IP直接廣播地址。
(4).封鎖ICMP ping請求
Ping命令的主要目的是識別目前正在使用的主機是否活動,ping通常用于更大規模的協同性攻擊之前的偵察活動,這是攻擊者在攻擊之前首先要做的測試。通過取消遠程用戶接收ping請求的應答能力,就能夠在一定程度上避開那些無人注意的掃描活動或者防御那些尋找容易攻擊的目標的黑客實施進一步的工具。當然,這樣做實際上并不能保護你的路由器不受攻擊,但是這將使你不太可能成為一個攻擊目標,降低的被攻擊的幾率。
有的時候,我們需要發ICMP ping包探測Internet中的某個IP。所以一個折中的方案是:對于進入局域網的ICMP數據包我們要禁止ICMP協議的ECHO、Redirect、Mask request,也需要禁止TraceRoute命令的探測。對于流出的ICMP數據包我們可以允許ECHO、Parameter Problem、Packet too big和TraceRoute命令的使用。
屏蔽外部ping包
Router(Config)#access-list 110 deny icmp any any echo log Router(Config)#access-list 110 deny icmp any any redirect log Router(Config)#access-list 110 deny icmp any any mask-request log Router(Config)#access-list 110 permit icmp any any |
允許內部ping包
Router(Config)#access-list 111 permit icmp any any echo Router(Config)#access-list 111 permit icmp any any Parameter-problem Router(Config)#access-list 111 permit icmp any any packet-too-big Router(Config)#access-list 111 permit icmp any any source-quench Router(Config)#access-list 111 deny icmp any any log |
屏蔽外部TraceRoute
Router(Config)#access-list 112 deny udp any any range 33400 34400 |
允許內部TraceRoute
Router(Config)#access-list 112 permit udp any any range 33400 34400 |
(圖6)
#p#
3、按需定制訪問控制列表
訪問控制列表(ACL)可以實現網絡通信流量的控制。合理應用路由器(尤其是邊緣路由器)的訪問控制列表功能,將對網絡的安全起到很好的保護作用,如拒絕非公有地址訪問內部網絡以及一些垃圾和惡意路由信息等。下面提供筆者在實戰中設置的訪問控制策略供大家借鑒:
(1).拒絕回環地址127.0.0.0/8
Router(Config)#access-list 100 deny ip 127.0.0.0 0.255.255.255 any log |
(2).拒絕RFCl918私有地址
Router(Config)#access-list 100 deny ip 192.168.0.0 0.0.255.255 any log Router(Config)#access-list 100 deny ip 172.16.0.0 0.15.255.255 any log Router(Config)#access-list 100 deny ip 10.0.0.0 0.255.255.255 any log |
(3).拒絕組播地址
Router(Config)#access-list 100 deny ip 224.0.0.0 0.255.255.255 any |
(4).拒絕網絡垃圾數據流
Router(Config)#access-list 100 deny ip 192.168.2.0 0.0.0.255 any |
(圖7)
#p#
4、安全配置路由協議
路由協議配置是路由器配置中非常重要的一個方面,對于cisco路由器來說其支持的路由協議太多了,路由協議的配置對路由器的安全至關重要。
(1).建議啟用RIPV2協議
只有RIPV2支持RIP協議的認證,而RlPVl并不支持,并且采用MD5認證。
啟用設置密鑰鏈
Router(Config)#key chain Key-chain |
設置密鑰字串
Router(Config-Keychain)#key 1 Router(Config-Keychain-key)#key-string FirstKeyString Router(Config-Keychain)#key 2 Router(Config-Keychain-key)#key-string SecondKeyString |
啟用RIPV2
Router(Config)#router rip Router(Config-router)#version 2 Router(Config-router)#netword 192.168.1.0 |
(圖8)
采用MD5認證,并選擇已配置的密鑰鏈
Router(Config)#interface fastEthernet 0/0 Router(Config-if)#ip rip authentication mode md5 Router(Config-if)#ip rip authentication key-chain in keychain |
(圖9)
(2).啟用OSPF路由協議認證
默認的OSPF認證密碼是明文傳輸的,建議啟用MD5認證.并設置一定強度密鑰(key,相對的路由器必須有相同的Key)。
啟用OSPF協議
Router(Config)#router ospf 1 Router(Config-router)#network 192.168.1.0 0.0.0.255 area 1 |
啟用認證,為明文密碼認證
Router(Config-router)#area 1 authentication message-digest |
啟用MD5認證,密鑰Key為routerospfkey
Router(Config)#interface fastEthernet 0/0 Router(Config-if)#ip ospf message-digest-key 1 md5 routerospfkey |
(圖10)
#p#
5、其他安全配置
(1).要有完備的路由器安全訪問和維護記錄日志
路由器的日志主要包括訪問日志和維護日志兩部分,日志對于路由的管理至關重要。當我們懷疑遭受網絡攻擊時,審閱路由器訪問記錄是查出安全事件的最有效的方法,無論是對于正在實施的攻擊還是將要實施的攻擊都非常有效。利用連接到Internet的記錄,你還能夠查出試網建立外部連接的特洛伊木馬程序和間諜軟件程序,一個具有一定安全經驗并且細心的管理員在病毒傳播者作出反應之前能夠查出病毒的攻擊。另外,一個有經驗的攻擊者在登錄路由器并實施攻擊后會利用諸如clear logging這樣的命令清除自己的登錄記錄。所以,一定要有完備的日志備份策略。
(2).及時升級路由器IOS系統
對Cisco路由器來說,升級IOS不僅能夠修訂Bug,提升路由器性能擴展路由器功能。需要注意的是升級IOS是有一定的操作風險的,需要做好充足的準備。筆者此前曾經寫過一篇文章《路由器IOS升級應該注意七點細節》(鏈接地址為http://networking.ctocio.com.cn/wpsummary/398/8636398.shtml),大家在升級IOS的時候可供參考。
(3).做好路由器配置文件的完整備份
路由器配置文件中保存了管理員對路由器所做的所有配置信息,這些配置可都是自己的心血,一定要做好備份。因為即使做好安全預防措施,也難免會發生不可預想的問題。所以為了盡可能地減少或避免意外的發生,要隨時為路由器的配置文件作安全備份。當然,路由器配置的備份包括不同的層次,命令“Router#copy running-config startup-config”是將當前存儲在RAM的正確配置備份到路由器的NVRAM中,在下一次啟動時路由器就會使用這個正確的配置。命令“Router#copy running-config tftp”是將RAM中配置信息備份到tftp服務器中,筆者說所的備份就是這樣的備份。這樣當路由器的配置信息丟失或者被惡意修改后我們可以通過命令“Router#copy tftp runing-config”來快速恢復。(圖11)
總結:邊界路由器因為處在特殊的網絡位置因此其安全性備受關注,其實除此之外其他網絡節點上的路由器的安全也不容忽視。本文所述的路由器安全解決配置方案同樣也適用于其他節點上的路由器的配置,大家可根據實際情況選擇性地應用。最后,希望本文對于大家加固路由器安全配置有所幫助。
【編輯推薦】