2
我正在尋找建立一個簡單的服務器來代理TCP連接在我的網絡的網關(沒有惡意的意圖),但TCP握手失敗。欺騙TCP服務器握手失敗
使用netfilter,我設法改變了傳入TCP數據包的IP和端口,以便它們被轉移到我的應用程序,並且在返回時更改它們以及更新所有校驗和。
我的服務器當前正在發送SYN-ACK,該SYN-ACK到達預期的主機,但ACK從不會生成。根據wireshark的數據包形成良好沒有校驗和的問題,SYN和ACK值似乎匹配。
這裏是TCP轉儲輸出
握手成功沒有我的代理
16:21:08.887938 IP 192.168.1.1.37513 > 192.168.2.56.12105: Flags [S], seq 4201716329, win 14000, options [mss 1400,sackOK,TS val 727682 ecr 0,nop,wscale 2], length 0
16:21:08.889870 IP 192.168.2.56.12105 > 192.168.1.1.37513: Flags [S.], seq 34328406, ack 4201716330, win 14480, options [mss 1460,sackOK,TS val 1879286956 ecr 727682,nop,wscale 5], length 0
16:21:08.891751 IP 192.168.1.1.37513 > 192.168.2.56.12105: Flags [.], ack 1, win 3500, options [nop,nop,TS val 727683 ecr 1879286956], length 0
失敗的握手與我的代理
16:21:49.767611 IP 192.168.1.1.37514 > 192.168.2.56.12105: Flags [S], seq 2057472079, win 14000, options [mss 1400,sackOK,TS val 731770 ecr 0,nop,wscale 2], length 0
16:21:49.768522 IP 192.168.2.56.12105 > 192.168.1.1.37514: Flags [S.], seq 1201001621, ack 2057472080, win 14480, options [mss 1460,sackOK,TS val 7621570 ecr 731770,nop,wscale 4], length 0
這在客戶端和服務器後剛剛重新發送ACK/SYN -ACK。
有什麼明顯的我失蹤了嗎?或者是否有人對我應該如何開始調試問題有任何建議?
你確定SYN-ACK數據包到達客戶端,而不是被過濾嗎?你可以在客戶端上運行tcpdump來驗證它正在接收數據包嗎? – 2013-05-09 17:27:44
對不起,我沒有指定,提供的轉儲來自客戶端。 – DarkRyuu 2013-05-09 17:29:27
嘗試從服務器端添加轉儲也。客戶端,服務器,代理的IP是什麼?數據包如何被代理攔截? – Nikolai 2013-09-13 14:31:21