高 歌
锡林郭勒盟广播电视台 内蒙古 锡林浩特市 026000
广播电视台内部的系统中,存在大量的文件资料共享及传输的业务需求。为保证广播电视台内外网用户便利的进行视频素材的共享和交换,以及制作网和播出网之间进行文件交换,我们基于FTP 协议,搭建了自己的文件传输系统。
FTP 是文件传输协议(File Transfer Protocol)的英文简称。FTP 既是一个标准文件传输协议也是一个应用程序。FTP 文件传输系统是一个由客户端程序和服务器程序组成的系统,用户通过一个支持FTP 协议的客户端应用程序,通过网络连接到远程的FTP 服务器,通过发送协议定义的命令和服务器端进行交互。通过FTP 协议,可以使文件和文件夹在网络上公开传输,进而实现文件数据共享。原理如图1 所示。
FTP 客户端和服务器直接存在两种连接,一个为控制连接,一个为数据连接。在传输文件时,FTP 客户端先与FTP 服务器建立控制连接,然后客户端向服务器发送命令。服务器端收到命令后给予响应,并执行命令。当控制连接建立成功后,用户如果进行文件传输时,客户端与服务器进行数据通道的连接,进行数据传输。在FTP 客户端连接服务器的整个过程中,控制连接一直保持,而数据传输连接是临时建立的,数据连接是双向的,它不用整个时间都存在。
图1 FTP 原理图
在网络分层模型中,FTP 属于应用层协议,它的基于传输层的TCP 协议进行数据传输的,是一种面向连接的可靠的协议。FTP 在进行连接时使用两个TCP端口,一个用于控制命令交互,一个用于数据传输。在服务器端用于控制命令交互的控制端口默认使用21端口号,用于数据传输的数据端口使用20端口号。
Windows 文件共享是Windows系统自带的一种文件共享的功能,使用该功能可以实现在局域网内两台计算机间文件共享的功能。但windows 文件共享比起FTP 协议来说,存在以下几点不足。
虽然Windows 文件共享功能使用的是SMB协议,但在共享的过程中也加入了一些Windows系统特有的功能,如果跨平台使用,比如Windows 操作系统和Linux 操作系统之间进行文件共享,使用Windows 文件共享就比较困难。而FTP 协议是一个跨平台的协议,只要应用支持FTP 协议就可以轻松的实现文件的传输,与系统无关。
Windows 共享功能使用了445 端口,而445 端口是一个让人喜忧参半的端口。很多病毒都是利用445 端口的漏洞进行传播的。比如2018年爆发的勒索病毒就是利用445端口进行传播的。
使用Windows 文件共享的两台计算机必须在一个局域网内,无法通过互联网进行文件共享。而FTP 协议可以很好的支持互联网进行文件传输。
Windows 文件共享是两台计算机之间端到端的传输模式,没有中心服务器的概念。如果多台计算机需要都进行文件共享时,共享的目录管理比较混乱,不容易识别哪个目录是哪台计算机共享的。而FTP 协议是服务器和客户端模式,只有一个服务器进行文件汇总,多台计算机使用统一的客户端和服务器进行连接,管理比较容易。
基于以上比较,选用FTP 协议进行全台文件传输系统的搭建。系统的网络拓扑如图2所示。
如上图所示,整个文件传输系统中文件传输路径分为三条:
1.素材上载机把需要上传的素材通过安全网关传输到非编制作网内。
2.非编制作网内的工作站需要把制作好的节目上传到播出网内。
3.非编制作网需要和办公互联网进行双向文件传输,需要把制作好的节目传到办公互联网,通过办公互联网上传自治区广播电视台。同时旗县需要把新闻素材上传到盟广播电视台FTP 服务器,非编制作网需要从FTP 服务器下载旗县上传的新闻素材。
为了实现整个文件系统的传输,搭建了3 台FTP 服务器,分别放置在办公互联网、播出网、非编制作网内。
播出网内的FTP 服务器,为了进行病毒的防护,我们服务器采用Linux 操作系统,采用Linux操作系统进行FTP服务器的搭建。
非编制作网内,采用Windows server 操作系统,运行开源的FTP 服务器软件Filezilla server。FTP服务器端目录放置在非编制作网络的NAS存储中,这样该目录可以对所有非编工作站可见。上载机上传到非编制作网的素材非编工作站可以直接在线上使用,无需重新下载。
在办公互联网搭建用于旗县上传素材使用,采用Windows server操作系统,运行开源的FTP服务器软件FileZilla server。FTP 服务器前端放置防火墙,通过防火墙进行NAT映射,面向互联网提供FTP服务。
广播电视台内部的网络,因为摄像记者需要使用移动设备(比如P2 卡)进行素材的上传,所以经常出现工作人员违规在外部计算机使用移动设备后把病毒带入到台内部的网络里。所以病毒防护是整个文件传输系统的重中之重,采用一款专为广电行业开发的防病毒安全网关,该网关支持对FTP 数据传输中的数据进行拦截并对文件格式进行解析,只允许配置好的文件格式的文件通过,既过滤了病毒,同时也可以阻止非FTP 协议的报文通过。安全网关的工作原理如图3所示。
图2 网络拓扑图
图3 安全网关工作原理
安全网关里运行了FTP 服务器和FTP 客户端的代理程序,需要提前把FTP 服务器的地址及用户名密码等相关信息配置好。当FTP 客户端连接FTP 服务器时,控制连接到达了安全网关,安全网关截获该控制连接信息后,安全网关内部的FTP 服务器代理程序响应FTP 客户端的连接,同FTP 客户端进行连接。同时安全网关的FTP 客户端代理对FTP 服务器端发起连接。
连接建立后,FTP 客户端同安全网关的FTP服务器代理进行数据的传输,安全网关对接收到的文件数据进行格式的深度解析,对不符合要求的数据进行过滤。如果解析后是允许通过的正常数据,由安全网关内部的FTP客户端代理向FTP服务器进行传输。
这样就完成了文件的解析并拦截了不安全的文件在整个文件传输系统中进行传输。
FTP 服务器在整个文件传输系统中主要起一个文件临时存储及文件交换的作用,因为存储空间有限,同时兼顾FTP 传输的性能,要求FTP 服务器不能大量的存储文件。超出存储期限的文件需要及时的删除。如果采用人工删除的话,会比较费时费力,这里采用程序自动清理过期文件的方法。
FTP 服务器分别运行在Linux 操作系统和Windows 操作系统上。为了管理运维方便,自动删除过期文件统一由 shell 命令实现。Shell命令可以无缝的运行在Linux 环境下。在Windows操作系统中,安装Linux 环境模拟软件cygwine。cygwin 是一个在Windows平台上运行的类Linux模拟环境,可以轻松的运行我们编写的shell 脚本。Cygwine 是一个开源免费的程序,可以从官网上下载。
设置为删除7天以前的文件,该命令设置为每天夜里2:30 点自动运行。Shell命令编写如下:
find e:/FTPdownDir -type f -mtime +7 -exec rm -f {} ;
使用Linux系统自带的crontab自动运行该命令。把该命令加入到crontab里;执行如下命令:
#crontab -e
30 2 * * * find e:/FTP-downDir -type f -mtime +7 -exec rm -f {} ;
FTP 目录的自动清理,避免了FTP 服务器磁盘空间满了无法使用的问题,同时定期的清理也会使FTP 服务器目录里的文件不至于过多,可提升FTP 服务器的性能。
该系统建成投入使用后,整体运行良好。不仅方便了管理,同时也防止了病毒在整个网络中的传播,起到了很好的效果。