1、使用 ip verfy unicast reverse-path 網絡接口命令
這個功能檢查每一個經過路由器的數據包。在路由器的CEF(Cisco ExpressForwarding)表該數據包所到達網絡接口的所有路由項中,如果沒有該數據包源IP地址的路由,路由器將丟棄該數據包。例如,路由器接收到一個源IP地址為1.2.3.4的數據包,如果CEF路由表中沒有為IP地址1.2.3.4提供任何路由(即反向數據包傳輸時所需的路由),則路由器會丟棄它。
單一地址反向傳輸路徑轉發(Unicast Reverse PathForwarding)在ISP(局端)實現阻止SMURF攻擊和其它基于IP地址偽裝的攻擊。這能夠保護網絡和客戶免受來自互聯網其它地方的侵擾。使用Unicast RPF需要打開路由器的"CEF swithing"或"CEF distributedswitching"選項。不需要將輸入接口配置為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端邊界路由器的訪問控制列表(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
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,則需要修改相應參數。將這些捕獲的數據包和日志作為證據提供給有關網絡安全部門或機構。