五.路由安全 1.防止偽造: 偽造是攻擊者經(jīng)常使用的方法。通過路由器的配置可以在一定程度上防止偽造。通常是利用訪問列表,限制通過的數(shù)據(jù)包的地址范圍。但是有下面幾點注重的。 A. 可以在網(wǎng)絡(luò)的任何一點進(jìn)行限制,但是最好在網(wǎng)絡(luò)的邊界路由器上進(jìn)行,因為在網(wǎng)絡(luò)內(nèi)部是難于判定地址偽造的。 B. 最好對接口進(jìn)入的數(shù)據(jù)進(jìn)行訪問控制(用ip access-group list in)。因為輸出列表過濾只保護(hù)了位于路由器后的網(wǎng)絡(luò)部分,而輸入列表數(shù)據(jù)過濾還保護(hù)了路由器本身不受到外界的攻擊。 C. 不僅對外部的端口進(jìn)行訪問控制,還要對內(nèi)部的端口進(jìn)行訪問控制。因為可以防止來自內(nèi)部的攻擊行為。 下面是一個是一個訪問列表的例子: ip access-list number deny icmp any any redirect 拒絕所有的Icmp 重定向 ip access-list number deny ip host 127.0.0.0 0.255.255.255 any 拒絕Loopback的數(shù)據(jù)包 ip access-list number deny ip 224.0.0.0 31.255.255.255 any 拒絕多目地址的數(shù)據(jù)包 除了訪問列表的限制外,還可以利用路由器的RPF檢查(ip verify unicast rpf)。這項功能主要用于檢查進(jìn)入接口的數(shù)據(jù)包的源地址,根據(jù)路由表判定是不是到達(dá)這個源地址的路由是不是也經(jīng)過這個接口轉(zhuǎn)發(fā),假如不是則拋棄。這進(jìn)一步保證了數(shù)據(jù)源的正確性。但是這種方式不適合非對稱的路由,即A到B的路由與B到A的路由不相同。所以需要判定清楚路由器的具體配置。
2.控制直接廣播 一個IP直接廣播是一個目的地為某個子網(wǎng)的廣播地址的數(shù)據(jù)包,但是這個發(fā)送主機(jī)的不與這個目的子網(wǎng)直接相連。所以這個數(shù)據(jù)包被路由器當(dāng)作普通包轉(zhuǎn)發(fā)直到目的子網(wǎng),然后被轉(zhuǎn)換為鏈路層廣播。由于Ip地址結(jié)構(gòu)的特性,只有直接連接到這個子網(wǎng)的路由器能夠識別一個直接廣播包。針對這個功能,目前存在一種攻擊稱為"smurf",攻擊者通過不斷的發(fā)送一個源地址為非法地址的直接廣播包到攻擊的子網(wǎng)。從而導(dǎo)致子網(wǎng)的所有主機(jī)向這個非法地址發(fā)送響應(yīng),最終導(dǎo)致目的網(wǎng)絡(luò)的廣播風(fēng)暴。 對于這種攻擊可以在路由器的接口上設(shè)置no ip directed-broadcast,但是這種直接廣播包,要被這個接口轉(zhuǎn)換成鏈路層的廣播而不是拋棄,所以為了更好防止攻擊,最好在將所有可能連接到目的子網(wǎng)的路由器都配置no ip directed-broadcast。
3. 防止路由攻擊 源路由攻擊一種常用攻擊方法,因為一些老的Ip實現(xiàn)在處理源路由包時存在問題,所以可能導(dǎo)致這些機(jī)器崩潰,所以最好在路由器上關(guān)閉源路由。用命令no ip source-route。 Icmp 重定向攻擊也是一種常用的路由攻擊方法。攻擊者通過發(fā)送錯誤的重定向信息給末端主機(jī),從而導(dǎo)致末端主機(jī)的錯誤路由。這種攻擊可以通過在邊界路由器上設(shè)定過濾所有icmp重定向數(shù)據(jù)來實現(xiàn)。但是這只能阻止外部的攻擊者,假如攻擊者和目的主機(jī)在同一個網(wǎng)段則沒有辦法。 當(dāng)路由器采用動態(tài)協(xié)議時,攻擊者可以偽造路由包,破壞路由器的路由表。為了防止這種攻擊可以利用訪問列表(distribute-list in)限定正確路由信息的范圍。并且假如可能則采用認(rèn)證機(jī)制。如Rip 2或ospf支持認(rèn)證等。
路由器通常都提供很多的服務(wù)如Finger、Telnet等,但是這些服務(wù)中一些能夠被攻擊者利用,所以最好禁止所有不需要的服務(wù)。 1.Cisco路由器提供一些基于TCP和UDP協(xié)議的小服務(wù)如:echo、chargen和discard。這些服務(wù)很少被使用,而且輕易被攻擊者利用來越過包過濾機(jī)制。如echo服務(wù),就可以被攻擊者利用它發(fā)送數(shù)據(jù)包,似乎這些數(shù)據(jù)包來自路由器本身。所以最好禁止這些服務(wù),可以利用no service tcp-small-servers 和 no service udp-small-servers命令來實現(xiàn)。 2.Finger、NTP、CDP: Finger服務(wù)可能被攻擊者利用查找用戶和口令攻擊。NTP不是十分危險的,但是假如沒有一個很好的認(rèn)證,則會影響路由器正確時間,導(dǎo)致日志和其他任務(wù)出錯。CDP可能被攻擊者利用獲得路由器的版本等信息,從而進(jìn)行攻擊。所以對于上面的幾種服務(wù)假如沒有十分必要的需求,最好禁止他們。可以用no service finger、no ntp enabel、no cdp running(或no cdp enable )實現(xiàn)。