2007年10月11日 星期四

[轉載]路由器上防止分布式拒絕服務(DDoS)攻擊

信息來源:81000.Net

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,則需要修改相應參數。將這些捕獲的數據包和日志作為證據提供給有關網絡安全部門或機構。

沒有留言: