高 歌
錫林郭勒盟廣播電視臺 內(nèi)蒙古 錫林浩特市 026000
廣播電視臺內(nèi)部的系統(tǒng)中,存在大量的文件資料共享及傳輸?shù)臉I(yè)務(wù)需求。為保證廣播電視臺內(nèi)外網(wǎng)用戶便利的進行視頻素材的共享和交換,以及制作網(wǎng)和播出網(wǎng)之間進行文件交換,我們基于FTP 協(xié)議,搭建了自己的文件傳輸系統(tǒng)。
FTP 是文件傳輸協(xié)議(File Transfer Protocol)的英文簡稱。FTP 既是一個標準文件傳輸協(xié)議也是一個應(yīng)用程序。FTP 文件傳輸系統(tǒng)是一個由客戶端程序和服務(wù)器程序組成的系統(tǒng),用戶通過一個支持FTP 協(xié)議的客戶端應(yīng)用程序,通過網(wǎng)絡(luò)連接到遠程的FTP 服務(wù)器,通過發(fā)送協(xié)議定義的命令和服務(wù)器端進行交互。通過FTP 協(xié)議,可以使文件和文件夾在網(wǎng)絡(luò)上公開傳輸,進而實現(xiàn)文件數(shù)據(jù)共享。原理如圖1 所示。
FTP 客戶端和服務(wù)器直接存在兩種連接,一個為控制連接,一個為數(shù)據(jù)連接。在傳輸文件時,F(xiàn)TP 客戶端先與FTP 服務(wù)器建立控制連接,然后客戶端向服務(wù)器發(fā)送命令。服務(wù)器端收到命令后給予響應(yīng),并執(zhí)行命令。當控制連接建立成功后,用戶如果進行文件傳輸時,客戶端與服務(wù)器進行數(shù)據(jù)通道的連接,進行數(shù)據(jù)傳輸。在FTP 客戶端連接服務(wù)器的整個過程中,控制連接一直保持,而數(shù)據(jù)傳輸連接是臨時建立的,數(shù)據(jù)連接是雙向的,它不用整個時間都存在。
圖1 FTP 原理圖
在網(wǎng)絡(luò)分層模型中,F(xiàn)TP 屬于應(yīng)用層協(xié)議,它的基于傳輸層的TCP 協(xié)議進行數(shù)據(jù)傳輸?shù)模且环N面向連接的可靠的協(xié)議。FTP 在進行連接時使用兩個TCP端口,一個用于控制命令交互,一個用于數(shù)據(jù)傳輸。在服務(wù)器端用于控制命令交互的控制端口默認使用21端口號,用于數(shù)據(jù)傳輸?shù)臄?shù)據(jù)端口使用20端口號。
Windows 文件共享是Windows系統(tǒng)自帶的一種文件共享的功能,使用該功能可以實現(xiàn)在局域網(wǎng)內(nèi)兩臺計算機間文件共享的功能。但windows 文件共享比起FTP 協(xié)議來說,存在以下幾點不足。
雖然Windows 文件共享功能使用的是SMB協(xié)議,但在共享的過程中也加入了一些Windows系統(tǒng)特有的功能,如果跨平臺使用,比如Windows 操作系統(tǒng)和Linux 操作系統(tǒng)之間進行文件共享,使用Windows 文件共享就比較困難。而FTP 協(xié)議是一個跨平臺的協(xié)議,只要應(yīng)用支持FTP 協(xié)議就可以輕松的實現(xiàn)文件的傳輸,與系統(tǒng)無關(guān)。
Windows 共享功能使用了445 端口,而445 端口是一個讓人喜憂參半的端口。很多病毒都是利用445 端口的漏洞進行傳播的。比如2018年爆發(fā)的勒索病毒就是利用445端口進行傳播的。
使用Windows 文件共享的兩臺計算機必須在一個局域網(wǎng)內(nèi),無法通過互聯(lián)網(wǎng)進行文件共享。而FTP 協(xié)議可以很好的支持互聯(lián)網(wǎng)進行文件傳輸。
Windows 文件共享是兩臺計算機之間端到端的傳輸模式,沒有中心服務(wù)器的概念。如果多臺計算機需要都進行文件共享時,共享的目錄管理比較混亂,不容易識別哪個目錄是哪臺計算機共享的。而FTP 協(xié)議是服務(wù)器和客戶端模式,只有一個服務(wù)器進行文件匯總,多臺計算機使用統(tǒng)一的客戶端和服務(wù)器進行連接,管理比較容易。
基于以上比較,選用FTP 協(xié)議進行全臺文件傳輸系統(tǒng)的搭建。系統(tǒng)的網(wǎng)絡(luò)拓撲如圖2所示。
如上圖所示,整個文件傳輸系統(tǒng)中文件傳輸路徑分為三條:
1.素材上載機把需要上傳的素材通過安全網(wǎng)關(guān)傳輸?shù)椒蔷幹谱骶W(wǎng)內(nèi)。
2.非編制作網(wǎng)內(nèi)的工作站需要把制作好的節(jié)目上傳到播出網(wǎng)內(nèi)。
3.非編制作網(wǎng)需要和辦公互聯(lián)網(wǎng)進行雙向文件傳輸,需要把制作好的節(jié)目傳到辦公互聯(lián)網(wǎng),通過辦公互聯(lián)網(wǎng)上傳自治區(qū)廣播電視臺。同時旗縣需要把新聞素材上傳到盟廣播電視臺FTP 服務(wù)器,非編制作網(wǎng)需要從FTP 服務(wù)器下載旗縣上傳的新聞素材。
為了實現(xiàn)整個文件系統(tǒng)的傳輸,搭建了3 臺FTP 服務(wù)器,分別放置在辦公互聯(lián)網(wǎng)、播出網(wǎng)、非編制作網(wǎng)內(nèi)。
播出網(wǎng)內(nèi)的FTP 服務(wù)器,為了進行病毒的防護,我們服務(wù)器采用Linux 操作系統(tǒng),采用Linux操作系統(tǒng)進行FTP服務(wù)器的搭建。
非編制作網(wǎng)內(nèi),采用Windows server 操作系統(tǒng),運行開源的FTP 服務(wù)器軟件Filezilla server。FTP服務(wù)器端目錄放置在非編制作網(wǎng)絡(luò)的NAS存儲中,這樣該目錄可以對所有非編工作站可見。上載機上傳到非編制作網(wǎng)的素材非編工作站可以直接在線上使用,無需重新下載。
在辦公互聯(lián)網(wǎng)搭建用于旗縣上傳素材使用,采用Windows server操作系統(tǒng),運行開源的FTP服務(wù)器軟件FileZilla server。FTP 服務(wù)器前端放置防火墻,通過防火墻進行NAT映射,面向互聯(lián)網(wǎng)提供FTP服務(wù)。
廣播電視臺內(nèi)部的網(wǎng)絡(luò),因為攝像記者需要使用移動設(shè)備(比如P2 卡)進行素材的上傳,所以經(jīng)常出現(xiàn)工作人員違規(guī)在外部計算機使用移動設(shè)備后把病毒帶入到臺內(nèi)部的網(wǎng)絡(luò)里。所以病毒防護是整個文件傳輸系統(tǒng)的重中之重,采用一款專為廣電行業(yè)開發(fā)的防病毒安全網(wǎng)關(guān),該網(wǎng)關(guān)支持對FTP 數(shù)據(jù)傳輸中的數(shù)據(jù)進行攔截并對文件格式進行解析,只允許配置好的文件格式的文件通過,既過濾了病毒,同時也可以阻止非FTP 協(xié)議的報文通過。安全網(wǎng)關(guān)的工作原理如圖3所示。
圖2 網(wǎng)絡(luò)拓撲圖
圖3 安全網(wǎng)關(guān)工作原理
安全網(wǎng)關(guān)里運行了FTP 服務(wù)器和FTP 客戶端的代理程序,需要提前把FTP 服務(wù)器的地址及用戶名密碼等相關(guān)信息配置好。當FTP 客戶端連接FTP 服務(wù)器時,控制連接到達了安全網(wǎng)關(guān),安全網(wǎng)關(guān)截獲該控制連接信息后,安全網(wǎng)關(guān)內(nèi)部的FTP 服務(wù)器代理程序響應(yīng)FTP 客戶端的連接,同F(xiàn)TP 客戶端進行連接。同時安全網(wǎng)關(guān)的FTP 客戶端代理對FTP 服務(wù)器端發(fā)起連接。
連接建立后,F(xiàn)TP 客戶端同安全網(wǎng)關(guān)的FTP服務(wù)器代理進行數(shù)據(jù)的傳輸,安全網(wǎng)關(guān)對接收到的文件數(shù)據(jù)進行格式的深度解析,對不符合要求的數(shù)據(jù)進行過濾。如果解析后是允許通過的正常數(shù)據(jù),由安全網(wǎng)關(guān)內(nèi)部的FTP客戶端代理向FTP服務(wù)器進行傳輸。
這樣就完成了文件的解析并攔截了不安全的文件在整個文件傳輸系統(tǒng)中進行傳輸。
FTP 服務(wù)器在整個文件傳輸系統(tǒng)中主要起一個文件臨時存儲及文件交換的作用,因為存儲空間有限,同時兼顧FTP 傳輸?shù)男阅埽驠TP 服務(wù)器不能大量的存儲文件。超出存儲期限的文件需要及時的刪除。如果采用人工刪除的話,會比較費時費力,這里采用程序自動清理過期文件的方法。
FTP 服務(wù)器分別運行在Linux 操作系統(tǒng)和Windows 操作系統(tǒng)上。為了管理運維方便,自動刪除過期文件統(tǒng)一由 shell 命令實現(xiàn)。Shell命令可以無縫的運行在Linux 環(huán)境下。在Windows操作系統(tǒng)中,安裝Linux 環(huán)境模擬軟件cygwine。cygwin 是一個在Windows平臺上運行的類Linux模擬環(huán)境,可以輕松的運行我們編寫的shell 腳本。Cygwine 是一個開源免費的程序,可以從官網(wǎng)上下載。
設(shè)置為刪除7天以前的文件,該命令設(shè)置為每天夜里2:30 點自動運行。Shell命令編寫如下:
find e:/FTPdownDir -type f -mtime +7 -exec rm -f {} ;
使用Linux系統(tǒng)自帶的crontab自動運行該命令。把該命令加入到crontab里;執(zhí)行如下命令:
#crontab -e
30 2 * * * find e:/FTP-downDir -type f -mtime +7 -exec rm -f {} ;
FTP 目錄的自動清理,避免了FTP 服務(wù)器磁盤空間滿了無法使用的問題,同時定期的清理也會使FTP 服務(wù)器目錄里的文件不至于過多,可提升FTP 服務(wù)器的性能。
該系統(tǒng)建成投入使用后,整體運行良好。不僅方便了管理,同時也防止了病毒在整個網(wǎng)絡(luò)中的傳播,起到了很好的效果。