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