(一)路由器物理安全
針對(duì)網(wǎng)絡(luò)存在的各種安全隱患,路由器的安全設(shè)置通常包括如下幾個(gè)方面:
1. 可靠性與線路安全方面
對(duì)于路由器來(lái)說(shuō),可靠性主要體現(xiàn)在接口故障和網(wǎng)絡(luò)流量增大兩種情況下,因此,線路和接口的備份是路由器不可缺少的。當(dāng)主接口出現(xiàn)故障時(shí),備份接口自動(dòng)投入工作,保證網(wǎng)絡(luò)的正常運(yùn)行;當(dāng)網(wǎng)絡(luò)流量增大時(shí),備份接口又可承擔(dān)負(fù)載分擔(dān)的任務(wù)。如使用電話撥號(hào)上網(wǎng)方式的備份。
2. 身份認(rèn)證方面
路由器中的身份認(rèn)證主要包括訪問(wèn)路由器時(shí)的身份認(rèn)證、對(duì)端路由器的身份認(rèn)證和路由信息的身份認(rèn)證。
3. 訪問(wèn)控制方面
(1)對(duì)于路由器的訪問(wèn)控制,需要進(jìn)行口令的分級(jí)保護(hù)。
(2)可以采用基于IP地址的訪問(wèn)控制。
(3)可以采用基于用戶的訪問(wèn)控制。
(4)可以基于時(shí)間的訪問(wèn)控制。
4. 信息隱藏方面
主機(jī)與對(duì)端通信時(shí),不一定需要用真實(shí)身份進(jìn)行通信。這就要通過(guò)路由器的地址轉(zhuǎn)換功能,隱藏內(nèi)網(wǎng)地址、只以公共地址的方式訪問(wèn)外部網(wǎng)絡(luò)。除了由內(nèi)部網(wǎng)絡(luò)首先發(fā)起的連接,網(wǎng)外用戶不能通過(guò)地址轉(zhuǎn)換直接訪問(wèn)內(nèi)網(wǎng)資源。
5.數(shù)據(jù)加密方面
為了避免因?yàn)閿?shù)據(jù)竊聽(tīng)而造成的信息泄漏,需要對(duì)所傳輸?shù)男畔⑦M(jìn)行加密,只有與之通信的對(duì)端才能對(duì)此密文進(jìn)行解密。通過(guò)對(duì)路由器所發(fā)送的報(bào)文進(jìn)行加密,即使在Internet上進(jìn)行傳輸,也能保證數(shù)據(jù)的私有性、完整性以及報(bào)文內(nèi)容的真實(shí)性。
6.攻擊探測(cè)和防范方面
路由器作為一個(gè)內(nèi)部網(wǎng)絡(luò)對(duì)外的接口設(shè)備,是攻擊者進(jìn)入內(nèi)部網(wǎng)絡(luò)的第一個(gè)目標(biāo)。如果路由器不提供攻擊檢測(cè)、防范功能,或者或者配置不當(dāng),將使路由器成為攻擊者進(jìn)入內(nèi)部網(wǎng)絡(luò)的一個(gè)橋梁。在路由器上提供攻擊檢測(cè)和對(duì)路由器進(jìn)行必要的安全配置,可以防止一部分的網(wǎng)絡(luò)攻擊。
7.安全管理方面
內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)之間的每一個(gè)數(shù)據(jù)報(bào)文都會(huì)通過(guò)路由器,在路由器上進(jìn)行報(bào)文的審計(jì)可以提供網(wǎng)絡(luò)運(yùn)行的必要信息,有助于分析網(wǎng)絡(luò)的運(yùn)行情況。
(二)路由器口令的安全
路由器的口令分為端口登錄口令、特權(quán)用戶口令。
使用端口登錄口令可以登錄到路由器,一般只能查看部分信息,而使用特權(quán)用戶口令登錄可以使用全部的查看、配置和管理命令。
特權(quán)用戶口令只能用于使用端口登錄口令登錄路由器后進(jìn)入特權(quán)模式,不能用于端口登錄。
1. 口令加密
在路由器默認(rèn)配置中,口令是以純文本形式存放的,不利于對(duì)保護(hù)路由器的安全。在Cisco路由器上可以對(duì)口令加密,這樣訪問(wèn)路由器的其他人就不能看到這些口令。以CISCO的命令為例:
Router (config)# service password-encryption
其中Router (config)#為命令提示符,service password-encryption為口令加密服務(wù)命令。
口令加密服務(wù)將加密所有現(xiàn)存的和在以后配置的口令。建議在Cisco網(wǎng)絡(luò)設(shè)備配置中使用這項(xiàng)服務(wù)。
2. 端口登錄口令
路由器一般有Consle(控制臺(tái)端口)、Aux(輔助端口)和Ethernet口可以登錄到路由器,這為網(wǎng)絡(luò)管理員對(duì)路由器進(jìn)行管理提供了很大的方便,同時(shí)也給攻擊者提供了可乘之機(jī)。
因此,首先應(yīng)該給相應(yīng)的端口加上口令。要注意口令的長(zhǎng)度以及數(shù)字、字母、符號(hào)是否相混合,以防止攻擊者利用口令或默認(rèn)口令進(jìn)行攻擊。
不同的端口可以建立不同的認(rèn)證方法。
下面以Cisco路由器為例簡(jiǎn)單說(shuō)明路由器口令的設(shè)置。
Router (config)# line vty 0 4
Router (config-line)# login
Router (config-line)# exec-timeout 2 30
Router (config-line)# password abc111
Router (config-line)# exit
Router (config)-# line aux 0
Router (config-line)# login
Router (config-line)# exec-timeout 2 30
Router (config-line)# password abc222
Router (config-line)# exit
Router (config)# line con 0
Router (config-line)# exec-timeout 2 30
Router (config-line)# password abc333
Router (config-line)# exit
這樣用戶只有輸入相應(yīng)端口的口令才能從路由器的Consle、Aux或Ethernet口登錄路由器。
下面分別對(duì)配置中的命令進(jìn)行說(shuō)明:
line vty 0 4命令用來(lái)保護(hù)在網(wǎng)絡(luò)中用來(lái)進(jìn)行telnet訪問(wèn)的虛擬終端行。由于路由器訪問(wèn)有不止一個(gè)vty行,所以在vty關(guān)鍵字后面有兩個(gè)數(shù)字。在Cisco路由器上默認(rèn)的行數(shù)為五行。line vty 0 4為所有終端行設(shè)置一個(gè)口令。
line aux和line con分別用來(lái)保護(hù)從Aux口和Consle口訪問(wèn)路由器的安全。
login命令用來(lái)啟動(dòng)登錄的口令檢查。
exec-timeout命令用來(lái)設(shè)置通話超時(shí)時(shí)間,上面配置中的exec-timeout 2 30設(shè)置為兩分三十秒鐘內(nèi)沒(méi)有輸入,將自動(dòng)關(guān)閉與路由器連接的對(duì)話,防止網(wǎng)絡(luò)管理員登錄路由器后離開(kāi)終端時(shí)被非法用戶修改路由器的配置。
password命令用來(lái)設(shè)置端口口令,上面配置中的password abc333設(shè)置為從line con 0端口登錄路由器時(shí)需要的口令。
注意:登錄口令更高的安全性
為了獲得更高的安全性,更好的登錄口令處理方法是將這些口令保存在TACACS+或RADIUS認(rèn)證服務(wù)器上,然后在路由器上配置使用認(rèn)證服務(wù)器對(duì)用戶和密碼進(jìn)行認(rèn)證,這種認(rèn)證方式可以實(shí)現(xiàn)集中管理,并獲得更高的安全性和可管理性。
3. 特權(quán)用戶口令
特權(quán)用戶口令的設(shè)置可以使用enable password命令和enable secret命令。
一般不用enable password命令,該命令設(shè)置的口令可以通過(guò)軟件破解,存在安全漏洞。enable secret采用MD5散列算法對(duì)口令進(jìn)行加密。
以CISCO為例,具體配置如下:
Router #conf term
Router (config)#enable secret cba123
在執(zhí)行了這一步后查看路由器配置,將看到無(wú)論是否開(kāi)啟了口令加密服務(wù),特權(quán)用戶口令都自動(dòng)被加密了。
4. 修改簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議密碼字
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)是由互聯(lián)網(wǎng)工程任務(wù)組定義的一套網(wǎng)絡(luò)管理協(xié)議。
利用SNMP,一個(gè)管理工作站可以遠(yuǎn)程管理所有支持這種協(xié)議的網(wǎng)絡(luò)設(shè)備,包括監(jiān)視網(wǎng)絡(luò)狀態(tài)、修改網(wǎng)絡(luò)設(shè)備配置、接收網(wǎng)絡(luò)事件警告等。
使用SNMP協(xié)議要提供密碼字,在CISCO路由器中有個(gè)默認(rèn)的密碼字,用戶在使用路由器時(shí)要修改這個(gè)密碼字,具體配置如下:
Router #conf term
Router (config)#snmp-server community read123 RO
Router (config)#snmp-server community write123 RW
snmp-server community read123 RO為設(shè)置只讀密碼字為read123,snmp-server community write123 RW為設(shè)置可寫密碼字為write123。
5. 防止口令修復(fù)
要注意路由器的物理安全,不要讓管理員以外的人員隨便接近路由器。如果攻擊者從物理上接觸路由器后,可以通過(guò)口令修復(fù)的方法清除口令,進(jìn)而登錄路由器并完全控制路由器。
在實(shí)際應(yīng)用中,應(yīng)該在使用口令的基礎(chǔ)上,采取將不使用的端口禁用、權(quán)限分級(jí)策略、控制連接的并發(fā)數(shù)目、采用訪問(wèn)列表嚴(yán)格控制訪問(wèn)的地址、采用AAA設(shè)置用戶等方法,來(lái)加強(qiáng)路由器訪問(wèn)控制的安全。
(三)路由器網(wǎng)絡(luò)服務(wù)的安全
為了方便用戶的應(yīng)用和管理,路由器上會(huì)提供了一些網(wǎng)絡(luò)服務(wù),如WEB管理等;但是由于一些路由器上的軟件的漏洞、配置錯(cuò)誤等原因,有些服務(wù)可能會(huì)影響路由器和網(wǎng)絡(luò)的安全,因此從網(wǎng)絡(luò)安全角度應(yīng)該禁止那些不必要的,或目前不使用的網(wǎng)絡(luò)服務(wù)。在Cisco路由器上常見(jiàn)的網(wǎng)絡(luò)服務(wù)及禁止方法如下:
1.禁止HTTP服務(wù)
使用Web界面來(lái)控制管理路由器,為初學(xué)者提供了方便,但存在安全隱患,使用下面的命令可以禁止HTTP服務(wù)。
CcertRAT(Config)# #no ip http server
如果必須使用HTTP服務(wù)來(lái)管理路由器,最好是配合訪問(wèn)控制列表,并且用AAA認(rèn)證來(lái)做,嚴(yán)格過(guò)濾允許的IP地址。建議在沒(méi)有特殊需要的情況下,關(guān)閉HTTP服務(wù)。
2.禁止CDP(Cisco Discovery Protocol,Cisco發(fā)現(xiàn)協(xié)議)
該協(xié)議存在于Cisco 11.0以后的版本中,都是默認(rèn)啟動(dòng)的。在OSI二層(鏈路層)協(xié)議的基礎(chǔ)上可發(fā)現(xiàn)對(duì)端路由器的設(shè)備平臺(tái)、操作系統(tǒng)版本、端口、IP地址等重要信息。這些信息對(duì)攻擊者很有用,為加強(qiáng)安全性,可禁止其運(yùn)行,命令如下:
CcertRAT(Config)#no cdp run
管理員也可以指定禁止某端口的CDP,比如為了讓路由器內(nèi)部網(wǎng)絡(luò)使用CDP,而禁止路由器對(duì)外網(wǎng)的CDP應(yīng)答,命令如下:
CcertRAT(Config)#no interface Serial 0
CcertRAT(Config-if)#no no cdp enable
3.禁止其他的TCP、UDP Small服務(wù)
在ios 11.3版本之前,cisco缺省提供:echo,chargen,daytime,discard小型服務(wù),之后就禁止了。Cisco路由器可以通過(guò)如下命令阻止察看路由器診斷信息:
CcertRAT(Config)# no service tcp-small-servers
CcertRAT(Config)# no service udp-samll-servers
4.禁止Finger服務(wù)
Finger服務(wù)可以暴露路由器用戶列表,一般情況下建議關(guān)閉該服務(wù):
CcertRAT(Config)# no ip finger
CcertRAT(Config)# no service finger
5.禁止BOOTP服務(wù)
BOOTP服務(wù)的全稱是BOOTSTRAP PROTOCOL,是一個(gè)udp服務(wù),是一種比較早出現(xiàn)的遠(yuǎn)程啟動(dòng)的協(xié)議。cisco路由器用它來(lái)訪問(wèn)一個(gè)運(yùn)行有bootp服務(wù)的cisco路由器上的ios拷貝。缺省情況下該服務(wù)是開(kāi)啟的,關(guān)閉該服務(wù)的命令如下:
CcertRAT(Config)# no ip bootp server
6.禁止從網(wǎng)絡(luò)啟動(dòng)和自動(dòng)從網(wǎng)絡(luò)下載初始配置文件
CcertRAT(Config)# no boot network
CcertRAT(Config)# no servic config
7.禁止IP Source Routing
IP source-route是一個(gè)全局配置命令,允許路由器處理帶源路由選項(xiàng)標(biāo)記的數(shù)據(jù)流。啟用源路由選項(xiàng)后,源路由信息指定的路由使數(shù)據(jù)流能夠越過(guò)默認(rèn)的路由,這種包就可能繞過(guò)防火墻。這項(xiàng)服務(wù)需要關(guān)閉:
CcertRAT(Config)# no ip source-route
8.禁止 ARP-Proxy服務(wù)
路由器默認(rèn)是開(kāi)啟的,它容易引起路由表的混亂
CcertRAT(Config)# no ip proxy-arp
CcertRAT(Config-if)# no ip proxy-arp
9.禁止IP Directed Broadcast
ip定向廣播常用于流行的smurf和fraggle Dos攻擊。在cisco ios12.0前的版本中是開(kāi)啟這個(gè)服務(wù)的,之后就禁止了。
所謂ip定向廣播,是一個(gè)發(fā)往某個(gè)子網(wǎng)廣播地址的數(shù)據(jù)報(bào)(datagram),但是這個(gè)子網(wǎng)并沒(méi)有和發(fā)報(bào)的主機(jī)直接連接,定向廣播是作為單播數(shù)據(jù)包而通過(guò)路由的,直到目標(biāo)地址,只有鏈路上的最后一臺(tái)路由器也就是直接與目標(biāo)主機(jī)相連的路由器,才能最終識(shí)別這個(gè)定向廣播。
Smurf攻擊是一種拒絕服務(wù)攻擊。在這種攻擊中,攻擊者使用假冒的源地址向你的網(wǎng)絡(luò)廣播地址發(fā)送一個(gè)“ICMP echo”請(qǐng)求。這要求所有的主機(jī)對(duì)這個(gè)廣播請(qǐng)求做出回應(yīng)。這種情況至少會(huì)降低你的網(wǎng)絡(luò)性能。
CISCO關(guān)閉命令如下:
router(config-if)# no ip directed-broadcast
10.禁止IP Classless
有時(shí),路由可能會(huì)收到一些發(fā)往一個(gè)沒(méi)有網(wǎng)絡(luò)缺省路由的子網(wǎng)的數(shù)據(jù)包,如有啟用這服務(wù),路由器會(huì)將這些數(shù)據(jù)包轉(zhuǎn)發(fā)給最有可能路由的超網(wǎng)(supernet)。缺省情況下這些服務(wù)是開(kāi)啟的。這種服務(wù)可能被各種攻擊利用。CISCO關(guān)閉命令如下:
CcertRAT(Config)# no ip classless
11.限制dns的服務(wù)
缺省情況下,cisco路由器dns服務(wù)會(huì)向255.255.255.255廣播地址發(fā)送名字查詢,應(yīng)該避免這種廣播,因?yàn)楣粽呖梢詡窝b成一個(gè)dns服務(wù)來(lái)攻擊。
該服務(wù)是默認(rèn)開(kāi)啟的,如果要使用這個(gè)服務(wù),務(wù)必確保在路由器的配置中明確指定dns服務(wù)的名字:
CcertRAT(Config)# ip name server server-address [server=address2 ... server-address6]
關(guān)閉該服務(wù)的命令如下:
CcertRAT(Config)# no ip domain-lookup
12.禁止ICMP協(xié)議的IP Unreachables,Redirects,Mask Replies
ICMP不可達(dá)消息可以向發(fā)送者通告(不可達(dá)地方)的ip地址,攻擊者能夠借此映射網(wǎng)絡(luò)。cisco缺省開(kāi)啟了此消息服務(wù)。 CcertRAT(Config-if)# no ip unreacheables
重定向消息可以讓一個(gè)端節(jié)點(diǎn)用特定的路由器做為通向特定目的地路徑。
正常的ip網(wǎng)絡(luò)中,一臺(tái)路由器只向位于自己本地子網(wǎng)的主機(jī)發(fā)送重定向消息,端節(jié)點(diǎn)不會(huì)發(fā)送這種消息,此消息也不會(huì)超過(guò)一個(gè)網(wǎng)絡(luò)跳數(shù)的地方發(fā)送。不過(guò)攻擊者可以違反這種規(guī)則。
CcertRAT(Config-if)# no ip redirects
cisco ios會(huì)向icmp掩碼要求發(fā)送icmp掩碼應(yīng)答的消息,其中包括接口的ip地址掩碼。必須關(guān)閉路由器上所有路由接口的上自動(dòng)應(yīng)答。這個(gè)服務(wù)是缺省關(guān)閉。
CcertRAT(Config-if)# no ip mask-reply
13.禁止SNMP協(xié)議服務(wù)
snmp服務(wù)允許路由器響應(yīng)遠(yuǎn)程snmp查詢和配置更改。如果要使用該服務(wù),應(yīng)使用acl進(jìn)行限制。關(guān)閉該服務(wù)的命令包括:
CcertRAT(Config)# no snmp-server community public Ro
CcertRAT(Config)# no snmp-server community admin RW
CcertRAT(Config)# no snmp-server enable traps
CcertRAT(Config)# no snmp-server system-shutdown
CcertRAT(Config)# no snmp-server trap-anth
CcertRAT(Config)# no snmp-server
CcertRAT(Config)# end
14、禁止不使用的端口
CcertRAT(Config)# interface Serial 1
CcertRAT(Config-if)# shutdown
(四)路由協(xié)議安全
1.啟用OSPF路由協(xié)議的認(rèn)證
默認(rèn)的OSPF認(rèn)證密碼是明文傳輸?shù),建議啟用MD5認(rèn)證,并設(shè)置一定強(qiáng)度密鑰(key,相對(duì)的路由器也必須有相同的Key值)。
例子如下:
CcertRAT(Config)# router ospf 100
CcertRAT(Config-router)# network 192.168.100.0 0.0.0.255 area 100
! 啟用MD5認(rèn)證。
! area area-id authentication 啟用認(rèn)證,是明文密碼認(rèn)證。
!area area-id authentication message-digest
CcertRAT(Config-router)# area 100 authentication message-digest
CcertRAT(Config)# exit
CcertRAT(Config)# interface eth0/1
!啟用MD5密鑰Key為routerospfkey。
!ip ospf authentication-key key 啟用認(rèn)證密鑰,但會(huì)是明文傳輸。
!ip ospf message-digest-key key-id(1-255) md5 key
CcertRAT(Config-if)# ip ospf message-digest-key 1 md5 routerospfkey