■ 四川 賴文書
編者按: 單位出現(xiàn)了分公司的服務(wù)器無法與總部FTP服務(wù)器連接問題,經(jīng)過與各部門同事不斷溝通,發(fā)現(xiàn)是由于FTP同步軟件觸發(fā)安全網(wǎng)關(guān)端口防御導(dǎo)致。
軟件同事老A突然跑來說分公司的服務(wù)器無法與總部FTP服務(wù)器傳數(shù)據(jù),讓我們檢查網(wǎng)絡(luò),他提供的故障涉及源IP是170.220.170.39,目的IP是172.16.115.13。
地址源IP是互聯(lián)網(wǎng)的地址,目的IP是業(yè)務(wù)專網(wǎng)邊界安全網(wǎng)關(guān)的地址,很明顯互聯(lián)網(wǎng)與專網(wǎng)是不通的,應(yīng)用的同事不了解這些情況,給他解釋了具體的網(wǎng)絡(luò)結(jié)構(gòu),有問題再聯(lián)系。
第二天分公司的運(yùn)維同事小C直接聯(lián)系到我們,還是反饋?zhàn)蛱斓膯栴},并且提到了分公司到總部FTP服務(wù)器剛剛都是通的,一運(yùn)行他們的FTP腳本就不通了。我們確認(rèn)了專網(wǎng)邊界安全網(wǎng)關(guān)安全策略是沒有人動(dòng)過,同時(shí)也通過其他途徑Telnet測(cè)試了總部FTP服務(wù)器的21端口映射到安全網(wǎng)關(guān)的狀態(tài)正常。
圖1 端口掃描
奇怪了,這邊檢測(cè)完全正常,而對(duì)端就是不通,這種情況很容易引發(fā)工作上的扯淡推責(zé)。從專業(yè)的角度分析問題,還需要抓包工具確認(rèn)對(duì)端的IP是否達(dá)到了安全網(wǎng)關(guān),因?yàn)閺姆止镜娇偛窟€經(jīng)過了千山萬水,因?yàn)闃I(yè)務(wù)專網(wǎng)是租用電信運(yùn)營(yíng)商的MSTP(Multi-Service Transport Platform)專線網(wǎng)絡(luò)組建的,其中任何一個(gè)環(huán)節(jié)出現(xiàn)異常都會(huì)引發(fā)故障。
在安全網(wǎng)關(guān)的Web管理頁面沒有找到網(wǎng)絡(luò)抓包工具,只得開啟SSH登錄到安全網(wǎng)關(guān)系統(tǒng)后臺(tái)調(diào)試。以前從來沒用過網(wǎng)御星云的安全網(wǎng)關(guān),登錄后臺(tái)命令行界面也一時(shí)半會(huì)不知道如何操作。嘗試了在Linux系統(tǒng)里的tcpdump命令,真還有該工具。經(jīng)過研究終于會(huì)用tcpdump抓包,讓分公司運(yùn)維同事小C去服務(wù)器上ping 172.16.115.13,這邊抓包始終找不到對(duì)端的IP 170.220.170.39,那就是對(duì)端的數(shù)據(jù)包根本沒有到達(dá)安全網(wǎng)關(guān)??墒菍?duì)端能正常ping總公司安全網(wǎng)關(guān)的IP,為什么抓不到數(shù)據(jù)包,太蹊蹺了。
讓對(duì)方使用tracert命令跟蹤路由,居然也看不到具體路徑,好像全被各個(gè)網(wǎng)絡(luò)防火墻節(jié)點(diǎn)過濾掉了。這樣的測(cè)試結(jié)果真讓我們不敢相信對(duì)方ping的IP就是我們安全網(wǎng)關(guān)的地址,也就沒法進(jìn)一步推進(jìn)故障的排查。
這時(shí)分公司運(yùn)維同事小C又說,另一臺(tái)服務(wù)器現(xiàn)在也能TelnetFTP服務(wù)器的端口并通過截圖為證,但是一執(zhí)行他們的的FTP腳本端口立刻就不通了。我們?cè)俅螜z查安全網(wǎng)關(guān)上的配置發(fā)現(xiàn)“應(yīng)用防護(hù)”/“抗掃描”/“設(shè)置”項(xiàng)里有個(gè)“端口掃描”如圖1,其中配置項(xiàng)有個(gè)“黑名單”引起大家的注意,會(huì)不會(huì)對(duì)端的網(wǎng)絡(luò)行為觸發(fā)了端口掃描,超過閾值被自動(dòng)加入黑名單。
一番查找在管理頁面的“防火墻“/”黑名單“里真才看到了幾個(gè)IP被關(guān)小黑屋了。截圖給分公司的同事確認(rèn)是否有他們相關(guān)的IP,根據(jù)”黑名單“上的時(shí)間對(duì)端很快發(fā)現(xiàn)有個(gè)IP好像他們的業(yè)務(wù)專網(wǎng)的出口地址,我們將該IP刪除讓其測(cè)試到總公司FTP服務(wù)器的端口,又能正常Telnet 172.16.115.13 21。果然是我們安全網(wǎng)關(guān)的安全配置引起了對(duì)端服務(wù)器無法與FTP服務(wù)器端口連接,可是為什么他們的FTP同步腳本就觸發(fā)了抗端口掃描安全策略呢?
圖2 Syncovery軟件界面
為了進(jìn)一步排查引發(fā)故障的根本原因,是腳本引起的還是對(duì)端服務(wù)器或者網(wǎng)絡(luò)確有端口掃描行為?分公司運(yùn)維同事小C分享了他們的ftp同步腳本模板如下:
#!/bin/bash
#mirror to ftp server
HOST="IP:端口"
USER="用戶名"
PASS="密碼"
LCD="本地路徑"
RCD="遠(yuǎn)程路徑"
lftp -c "set ftp:listoptions -a;
open ftp://$USER:$PASS@$HOST;
lcd $LCD; #切換本地目錄
cd $RCD; #切換遠(yuǎn)端目錄
mirror --reverse #反向鏡像(上傳文件)
--verbose #詳細(xì)輸出
--exclude-glob
a-dir-to-exclude/ #不包括相匹配的文件
--exclude-glob a-file-to-exclude
--excludeglob a-file-groupto-exclude*
--excludeglob other-files-toesclude"
LFTP是一款Unix系統(tǒng)下命令行界面的FTP客戶端軟件,除FTP外還支持FTPS、HTTP、HTTPS、SFTP、FXP等多種協(xié)議。此外,LFTP也內(nèi)含一個(gè)簡(jiǎn)單的BitTorrent客戶端。用戶可在互動(dòng)模式下運(yùn)行,也可直接使用腳本操作,亦支持多線程下載。
通過分析FTP腳本感覺不應(yīng)該觸發(fā)端口抗掃描策略才對(duì)啊,一旦建立了FTP連接應(yīng)該不會(huì)再頻繁連接21端口。最后溝通發(fā)現(xiàn)他們的腳本只是手動(dòng)同步時(shí)才用的,平時(shí)都是用Syncovery軟件自動(dòng)進(jìn)行同步的,簡(jiǎn)單了解軟件的情況,就是一款功能強(qiáng)大的同步軟件如圖2。也是他們最近才試用的工具,而為實(shí)現(xiàn)數(shù)據(jù)同步的時(shí)效性,配置了每1分鐘自動(dòng)同步。對(duì)此種情況我們可以將分公司出口IP加入安全網(wǎng)關(guān)的白名單,但就失去了安全防御的作用。經(jīng)反復(fù)測(cè)試把端口抗掃描策略的閾值從50改到了80才保障同步軟件的正常運(yùn)行,不至于觸發(fā)安全策略被阻斷,初步判斷該軟件同步文件時(shí)有大量的端口連接活動(dòng)。
此次故障中總結(jié)三點(diǎn):
1.分析網(wǎng)絡(luò)故障原因必須收集掌握相關(guān)信息如源IP、目的 IP、網(wǎng)絡(luò)拓?fù)洹⒕唧w應(yīng)用和網(wǎng)絡(luò)安全策略,第一次軟件同事老A只反饋有問題,還得我們直接聯(lián)系分公司運(yùn)維同事小C才行。
2.在溝通中由于網(wǎng)絡(luò)運(yùn)維和系統(tǒng)運(yùn)維的視角不同,反饋的信息需要甄別對(duì)待,比如分公司運(yùn)維同事小C說的源IP不僅是NAT前內(nèi)服務(wù)器IP,而且還是使用了非私有地址段,讓我們誤以為其是互聯(lián)網(wǎng)上的設(shè)備。
3.為解決問題需要雙方積極配合冷靜思考,否則就像第一次軟件同事老A報(bào)故障的結(jié)果仍然沒解決問題,作為負(fù)責(zé)網(wǎng)絡(luò)管理的我們還需要在溝通中引導(dǎo)軟件開發(fā)和運(yùn)維人員提供準(zhǔn)確的信息,并且配合相關(guān)測(cè)試確認(rèn),才能提高解決問題的效率。