為什麼伺服器突然回覆RST 小心網路中的安全裝置

2022-08-05 18:39:15 字數 2175 閱讀 1658

rst產生原因

一般情況下導致tcp傳送rst報文的原因有如下3種:

1、 syn資料段指定的目的埠處沒有接收程序在等待。

2、tcp想放棄乙個已經存在的連線。

3、tcp接收到乙個資料段,但是這個資料段所標識的連線不存在。

對於第一種情況,常見的例子是終端訪問伺服器未開放的埠,伺服器回覆rst報文。比如,訪問web伺服器的21埠(ftp),如果該埠伺服器未開放或者阻斷了到該埠的請求報文,則伺服器很可能會給終端syn報文回應乙個rst報文。因此,伺服器對終端的syn報文響應rst報文在很多時候可以作為埠掃瞄器判斷目標埠未開放的乙個可靠依據。當然,在大多數場景下,伺服器對到達自身未監聽埠的報文進行丟棄而不響應是一種更為安全的實現。

第二種情況比較好理解,正常拆除乙個已有tcp連線的方式是傳送fin,fin報文會在所有排隊資料都發出後才會傳送,正常情況下不會有資料丟失,因此,這也被稱為是有序釋放。另外一種拆除已有tcp連線的方式就是傳送rst,這種方式的優點在於無需等待資料傳輸完畢,可以立即終結連線,這種通過rst拆除連線的方式被稱為異常釋放。大多數時候伺服器需要針對兩種不同的拆鏈方式提供不同的處理方法,也有很多伺服器無法識別rst方式的拆鏈,這時候就需要格外小心,因為一旦出現這種情況,尤其是大量終端使用rst方式拆鏈,可能會導致伺服器側連線無法得到有效釋放,影響其正常業務側處理能力。

最後一種情況,tcp通過4元組(源目ip,源目埠)唯一的標識乙個連線,由於tcp狀態機的存在,觸發tcp連線建立的第乙個報文標誌位一定是syn置位,因此,當伺服器接收到乙個新四元組(伺服器本地沒有這個連線)的非syn首包就會丟棄該報文並向終端響應乙個rst報文。最後一種情況,tcp通過4元組(源目ip,源目埠)唯一的標識乙個連線,由於tcp狀態機的存在,觸發tcp連線建立的第乙個報文標誌位一定是syn置位,因此,當伺服器接收到乙個新四元組(伺服器本地沒有這個連線)的非syn首包就會丟棄該報文並向終端響應乙個rst報文。

問題現象

通過終端登入web,輸入使用者名稱密碼後web頁面顯示連線被重置。抓包報文如下:

終端10.153.47.104訪問伺服器10.153.42.65的8051埠,三次握手建立完成後,終端向伺服器傳送認證請求,提交使用者名稱和密碼,而後伺服器立即回應rst拆除已有連線。

問題分析

通過對比前述3種情況,發現只能匹配上原因2,但從原因2來看也只是說明伺服器在這個位置確實可以回覆rst報文,無法解釋為什麼伺服器要回覆rst。

這個時候我們需要考慮乙個問題:這個rst報文是不是真的是伺服器回覆的?從rst報文的seq來看確實可以和前序報文對應得上(由於syn標誌位在邏輯上占用1位元組序號,所以rst報文的序號是第二個報文的序號加1)。乙個很好的判斷一條流是否是同乙個伺服器傳送的方法是對比同乙個方向的報文的ip頭中的ttl值。由於tcp對亂序非常敏感,而網路裝置逐包**資料會引入更嚴重的亂序,因此網路中的裝置一般都是逐流**(按五元組,源目ip、源目埠、協議),所以,大部分情況下,在捕獲的資料流中,同一條流的同乙個方向的報文總是有相同的ttl值,我們基於這個判斷來看一下上方截圖中的第二個和第五個報文的ttl值:

第二個報文的ttl值為251:

第五個報文的ttl為122:

因此,基本可以判斷rst報文為中間傳輸裝置發出。排查流量路徑上的安全裝置,在ips中找到對應的日誌:

由於使用者名稱和密碼都是admin且明文傳輸,因此觸發了web使用者登入弱口令的防禦規則,連線被重置,ips冒充伺服器向終端傳送rst報文拆鏈,如果在ips裝置抓包,可以看到ips也同時冒充終端傳送了rst給伺服器。

在很多環境中,中間安全裝置通過rst攔截報文時初始ttl一般是64、128、255,這時候根據終端抓包的ttl就能反推出進行攔截的安全裝置所處的位置。當然也有一些安全裝置進行攔截的時候ttl初始值無跡可尋,這時候只能逐跳排查了。

為什麼伺服器需要備份?

在雲計算系統中,許多常見的故障可能性,將導致嚴重的資料丟失 軟體故障 應用系統出現錯誤 檔案系統崩潰。今年年中,廣州一區主備兩條運營商網路鏈路同時中斷,導致國內部分使用者出現資源訪問失敗 控制台登入異常,甚至資料完全丟失,便是軟體故障造成的事故。偶然故障 人為失誤 非授權操作等,典型案例如近日國內一...

為什麼伺服器會被攻擊

為什麼伺服器會被攻擊?網際網路中的伺服器都難免會出現被攻擊的情況,被掛馬更是常見,伺服器主要被攻擊的原因一般有以下幾種。惡性競爭 由於無處不在的競爭關係,導致了網際網路環境越來越惡劣,一些攻擊手段層出不窮,遭受到惡意攻擊的頻率也更高。來自同行業其他競爭對手的攻擊,讓你的伺服器宕機,爭奪使用者去他們那...

mysql伺服器為什麼老死?

歡迎使用 phpmyadmin 錯誤mysql 返回 文件 無法連線 無效的設定。mysqli real connect hy000 2002 connection refused 使用配置檔案中定義的控制使用者連線失敗。mysqli real connect hy000 2002 connecti...