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