實戰(zhàn)案例:某天開始,單位整網(wǎng)時不時癱瘓?最終抓狂的發(fā)現(xiàn):某服務(wù)器變?nèi)怆u了!
本期分享的案例是企業(yè)網(wǎng)絡(luò)的相關(guān)問題。
1. 背景介紹
客戶公司是一家做監(jiān)控產(chǎn)品的公司,近期員工突然反饋網(wǎng)絡(luò)一陣一陣的,幾乎沒法用了。前幾個月還是偶爾,現(xiàn)在真是變本加厲。采購的是某P路由+某C交換+某J無線AC/AP組網(wǎng)。
網(wǎng)絡(luò)拓?fù)洌?/p>

每次網(wǎng)絡(luò)癱瘓后,ping外網(wǎng)丟包是非常嚴(yán)重的。

下面一起看到到底是什么問題。
2. 排查思路
- 確認(rèn)問題復(fù)現(xiàn)是否存在明確的時間規(guī)律等;
- 檢查基礎(chǔ)線路和設(shè)備運行狀態(tài);
- 檢查是否存在錯誤配置等;
- 確定是否存在環(huán)路問題以及網(wǎng)絡(luò)的整體流量情況;
- 抓包確定丟包節(jié)點并進(jìn)一步分析故障。
3. 問題診斷
(1) 第一步:明確問題現(xiàn)象
經(jīng)了解,出現(xiàn)問題的情況無規(guī)律可循,并且檢查物理線路不存在異常。但查看出口路由器,可以發(fā)現(xiàn)每次癱瘓時CPU飆升90%+。

(2) 第二步:確認(rèn)網(wǎng)絡(luò)設(shè)備是否存在異常配置
檢查路由、交換、AC等設(shè)備配置,未發(fā)現(xiàn)異常點。并且從交換機(jī)的接口收發(fā)包統(tǒng)計來看,不存在大量的廣播泛洪問題,從而推斷應(yīng)不存在環(huán)路現(xiàn)象,相關(guān)命令如下:
<核心交換機(jī)>dis int g0/0/1
釋義:查看上聯(lián)口數(shù)據(jù)統(tǒng)計,每隔5s敲一次確認(rèn)報文變化量
從統(tǒng)計可以看到,交換機(jī)相關(guān)接口在5秒內(nèi)組播&廣播增長非常緩慢,可以排除環(huán)路問題。
(3) 第三步:確認(rèn)整體網(wǎng)絡(luò)流量情況
在出口路由的流量統(tǒng)計頁面,我們發(fā)現(xiàn)WAN口的發(fā)送速率非常高,上行達(dá)到了240Mbps,這是一個非常夸張的數(shù)值:

這個情況一眼懂:不是PCDN便是內(nèi)網(wǎng)有肉雞。所以進(jìn)一步抓個包看看,抓包節(jié)點在出口路由器的LAN口:

能明顯看到192.168.0.11這臺linux服務(wù)器以大量不同端口想某固定IP發(fā)SSL TCP SYN報文,且沒有得到對方回復(fù)。顯然是設(shè)備自身中毒變?nèi)怆u了。
(4) 第四步:進(jìn)一步分析流行為
監(jiān)控抓包,確實開始異常的時候該linux服務(wù)器就向?qū)?yīng)的IP發(fā)流了:

該IP是國外的地址:

抓包統(tǒng)計中,實際上行流量能打到將近1Gbps:

這里我發(fā)現(xiàn)個有趣的現(xiàn)象,是該肉雞1秒發(fā)65534個包,也就是源端口從1開始到65534結(jié)束:


所以根本原因找到了:192.168.0.11這臺linux服務(wù)器中毒變?nèi)怆u了。下一步看看到底是做了什么導(dǎo)致肉雞發(fā)作。
(5) 第五步:確認(rèn)是否存在映射配置
一般情況下,只要服務(wù)器有端口映射到公網(wǎng)可能就被攻擊者探測,從而觸發(fā)肉雞行為。因此我們查看了相關(guān)配置,確實存在:

因此,一般情況下只要關(guān)閉該映射條目就能解決問題。但實際上客戶公司業(yè)務(wù)需求,是不能關(guān)閉的,因此需要尋找其它解決方案。
4. 原因及解決方案
問題原因:肉雞linux服務(wù)器映射到外網(wǎng)被攻擊,其上行發(fā)包吃滿了整網(wǎng)帶寬資源導(dǎo)致網(wǎng)絡(luò)癱瘓。
解決方案:linux服務(wù)器殺毒
增加防火墻設(shè)備,啟用防TCP SYN flood泛洪攻擊等功能,攔截掉異常流量:
























