[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 安全技術 > 其它 > 正文
Cisco路由器上如何防止DDoS
本文出自: (2001-06-25 07:00:00)
Cisco路由器上防止分布式拒絕服務(DDoS)攻擊的一些建議

1、使用 ip verfy unicast reverse-path 網絡接口命令

 這個功能檢查每一個經過路由器的數據包。在路由器的CEF(Cisco Express Forwarding)表該數據
 包所到達網絡接口的所有路由項中,如果沒有該數據包源IP地址的路由,路由器將丟棄該數據包。例如,
 路由器接收到一個源IP地址為1.2.3.4的數據包,如果CEF路由表中沒有為IP地址1.2.3.4提供任何路由
 (即反向數據包傳輸時所需的路由),則路由器會丟棄它。

 單一地址反向傳輸路徑轉發(Unicast Reverse Path Forwarding)在ISP(局端)實現阻止SMURF攻擊和
 其它基IP地址偽裝的攻擊。這能夠保護網絡和客戶免受來自互聯網其它地方的侵擾。使用Unicast RPF
 需要打開路由器的"CEF swithing"或"CEF distributed switching"選項。不需要將輸入接口配置為CEF
 交換(switching)。只要該路由器打開了CEF功能,所有獨立的網絡接口都可以配置為其它交換(switching)
 模式。RPF(反向傳輸路徑轉發)屬在一個網絡接口或子接口上激活的輸入端功能,處理路由器接收的
 數據包。

 在路由器上打開CEF功能是非常重要的,因為RPF必須依靠CEF。Unicast RPF包含在支持CEF的Cisco IOS 12.0
 及以上版本中,但不支持Cisco IOS 11.2或11.3版本。

2、使用訪問控制列表(ACL)過濾RFC 1918中列出的所有地址

 參考以下例子:

interface xy

 ip access-group 101 in

 access-list 101 deny ip 10.0.0.0 0.255.255.255 any 
 access-list 101 deny ip 192.168.0.0 0.0.255.255 any 
 access-list 101 deny ip 172.16.0.0 0.15.255.255 any 
 access-list 101 permit ip any any

3、參照RFC 2267,使用訪問控制列表(ACL)過濾進出報文

 參考以下例子:

 {ISP中心} -- ISP端邊界路由器 -- 客戶端邊界路由器 -- {客戶端網絡}

 ISP端邊界路由器應該只接受源地址屬客戶端網絡的通信,而客戶端網絡則應該只接受源地址未被客戶端網
 絡過濾的通信。以下是ISP端邊界路由器的訪問控制列表(ACL)例子:

 access-list 190 permit ip {客戶端網絡} {客戶端網絡掩碼} any 

 access-list 190 deny ip any any [log] 

 interface {內部網絡接口} {網絡接口號} 

 ip access-group 190 in 

 以下是客戶端邊界路由器的ACL例子: 
 access-list 187 deny ip {客戶端網絡} {客戶端網絡掩碼} any  
 access-list 187 permit ip any any   
 access-list 188 permit ip {客戶端網絡} {客戶端網絡掩碼} any  
 access-list 188 deny ip any any   
 interface {外部網絡接口} {網絡接口號}  
 ip access-group 187 in   
 ip access-group 188 out   
 如果打開了CEF功能,通過使用單一地址反向路徑轉發(Unicast RPF),能夠充分地縮短訪問控制列表(ACL)
 的長度以提高路由器性能。為了支持Unicast RPF,只需在路由器完全打開CEF;打開這個功能的網絡接口並不
 需要是CEF交換接口。  
4、使用CAR(Control Access Rate)限制ICMP數據包流量速率  
 參考以下例子:  
interface xy   
rate-limit output access-group 2020 3000000 512000 786000 conform-action 
transmit exceed-action drop 
access-list 2020 permit icmp any any echo-reply 
 請參閱IOS Essential Features 獲取更詳細資料。  
5、設置SYN數據包流量速率 
interface {int} 
rate-limit output access-group 153 45000000 100000 100000 conform-action 
transmit exceed-action drop 
rate-limit output access-group 152 1000000 100000 100000 conform-action 
transmit exceed-action drop 
access-list 152 permit tcp any host eq www 
access-list 153 permit tcp any host eq www established 
在實現應用中需要進行必要的修改,替換: 
 45000000為最大連接帶寬 
 1000000為SYN flood流量速率的30%到50%之間的數值。

 burst normal(正常突變)和 burst max(最大突變)兩個速率為正確的數值。

 注意,如果突變速率設置超過30%,可能會丟失許多合法的SYN數據包。使用"show interfaces rate-limit"命令
 查看該網絡接口的正常和過度速率,能夠幫助確定合適的突變速率。這個SYN速率限制數值設置標準是保証正常
 通信的基礎上盡可能地小。

 警告:一般推薦在網絡正常工作時測量SYN數據包流量速率,以此基準數值加以調整。必須在進行測量時確保網絡
 的正常工作以避免出現較大誤差。

 另外,建議考慮在可能成為SYN攻擊的主機上安裝IP Filter等IP過濾工具包。

6、搜集証據並聯系網絡安全部門或機構

 如果可能,捕獲攻擊數據包用分析。建議使用SUN工作站或Linux等高速計算機捕獲數據包。常用的數據包捕獲
 工具包括TCPDump和snoop等。基本語法為:

 tcpdump -i interface -s 1500 -w capture_file

 snoop -d interface -o capture_file -s 1500

 本例中假定MTU大小為1500。如果MTU大1500,則需要修改相應參數。將這些捕獲的數據包和日志作為証據提供
 給有關網絡安全部門或機構。
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
 

★  樊強制作 歡迎分享  ★