現代計算機網絡實驗之SYN flood攻擊及SYN cookie原理分析

  • 環境(詳細說明實驗運行的操作系統,網絡平臺,機器的配置)
  1. 主機操作系統WIN10
  2. 開源虛擬機管理軟件Oracle VM VirtualBox
  3. GNS3網絡平臺
  4. 兩臺SEEDUbuntu16.04 32位虛擬機
  • 實驗目的
  1. 掌握VirtualBox構建SEEDUbuntu16.04 32位虛擬機
  2. 掌握網絡虛擬平臺GNS3構建網絡拓撲結構
  3. 掌握SEEDUbuntud的ip配置命令
  4. 實現syn flood攻擊並用wireshark進行抓包分析
  5. 理解linux內核SYN cookie機制對flood攻擊的影響
  • 實驗步驟(包括主要流程和說明)

1. 選擇浙大鏡像下載SEED虛擬機

2.利用VirtualBox新建SEEDUbuntu16.04-32

3.設置 SEEDUbuntu16.04-32的網絡

4.完全複製一個作爲SEEDUbuntu16.04-32target

5.利用GNS3來構建網絡拓撲並在GNS3中啓動2個虛擬機

 

 

6.配置兩臺虛擬機的ip地址和路由,SEEDUbuntu16.04-32的ip地址爲192.168.1.1,SEEDUbuntu16.04-32target的ip地址爲192.168.1.2

 

7.設置默認路由

8.測試是否連通

  • 實驗結果和分析

1. SEEDUbuntu16.04-32target啓動telnet服務,在SEEDUbuntu16.04-32使用netwox進行攻擊

2.使用wireshark觀察

3.進一步查看tcp syn cookie參數,並修改tcp_max_syn_backlog=5

4.修改參數tcp_syncookies=0,無法telnet到target,並用netstat –n –tcp發現5個SYN_RECV和1個TIME_WAIT,5個SYN_RECV已達到設置的半連接上限。

5.重新修改參數tcp_syncookies=1,telent成功。

 

6.tcp syn cookie原理分析

SYN Flood是一種典型的拒絕服務攻擊,利用tcp協議中的三次握手過程進行攻擊。由於TCP服務器在收到 tcp syn request 包時,在發送 tcp syn+ack 包回客戶機前,此時連接狀態爲半打開連接。如果此時惡意攻擊方僞造syn源地址,快速連續地發送此類連接請求,由於服務器的TCP連接數量有限,服務器可用TCP連接隊列很快便會發生阻塞,從而造成拒絕服務,系統運行緩慢。

SYN Cookie機制用來防範這種SYN Flood攻擊,主要方法就是針對TCP的三次握手進行一些修改。在第二次握手時,服務器不分配專門的數據區來維護一個未連接隊列,而是根據SYN包來計算一個cookie值,並且將這個值作爲將要返回的SYN+ACK包的初始序列號,當返回一個ACK包時,會根據包頭信息計算cookie,此時cookie包含本次連接的狀態信息,不給未確認的連接分配資源,只有cookie計算後和返回的確認序列號對比正確後才分配資源,建立連接。