孙道层
德宏职业学院 云南 芒市 678400
信息化高速发展促使人们对信息的传播、交流、共享等需求越发强烈,文件传输是信息共享的重要组成部分,互联网上有PC个人机、大型机、MAC、工作站等不同计算机环境,不同的计算机系统平台的硬件设备不同及基于这些不同硬件运行的操作系统软件也不同,如何在这些错综复杂的环境下实现文件交流,需要建立一个统一的文件传输协议,即FTP(File Transfer Protocol)协议[1-2]。所有不同平台的FTP应用程序都统一遵守同一种FTP协议,远程客户端用户就可以从其他平台下载文件或者自己上传文件到其他平台。FTP是一种客户/服务器系统,客户单通过FTP协议向远程FTP服务器端发出命令,服务器执行用户发出的命令并返回执行的结果[3-4]。
FTP服务器的安装方法很多,可以通过YUM工具、RPM工具、源代码下载等方式安装,本文通过RPM工具安装,在Cent OS7操作系统安装光盘中提供相关软件包,通过挂载Linux虚拟光驱中自带的服务器软件包资源来获取FTP安装包。
首先将Linux安装光盘镜像文件载入虚拟光驱中,查看虚拟光驱设备名称,命令如下 :
#cd/dev//进入管理设备文件目录#ll|more//查看虚拟光驱设备名称
通过以上命令查看到虚拟光驱设备cdrom名称为sr0,使用mkdir命令创建挂载点,命令如下:
#mkdir/mnt/cdrom//新建挂载目录
#mount/dev/sr0/mnt/cdrom //使用mount命令挂载光驱设备
进入cdrom目录下的Package可以找到FTP服务器vsftpd和客户端ftp软件包。
通过rpm管道检查Linux系统中是否已经安装FTP服务程序,在状态信息里可以查看到是否有vsftpd信息,具体命令如下:
#rpm-qa|grep vsftpd
使用rpm命令安装如下:
#rpm-ivh vsftpd-3.0.2-10.el7.x86_64.rpm //安装vsftpd服务器
#rpm-ivh ftp-0.17-66.el7.x86_64.rpm //安装FTP客户端
输入相应命令启动和查看相关FTP服务信息,具体命令如下:
#systemctl start vsftp.service和#systemctl enable vsftpd.service
3.1.1 SELinux对FTP服务器的控制
SELinux是为了强化安全访问Linux系统,增强系统抵御利用尚未公开的漏洞进行攻击,明确某个进程访问指定资源,默认SELinux相关变量的值为off,通过修改参数值达到用户从FTP服务器上传和下载文件的功能,执行命令如下:
#setsebool-P ftpd_full_access on//将SELinux中的ftpd_full_access设置为on
3.1.2 防火墙对FTP服务器的控制
防火墙为了防止某些远程访问对系统的攻击,通常是禁止某些远程访问,通过相应设置开启远程访问FTP服务,执行命令如下:
#firewall-cmd--permanent--zone=public--add-service=ftp //设置ftp服务永久开放
#firewall-cmd--reload //对配置防火墙进行重新加载
通过vsftpd.conf文件的配置,使得FTP服务更加安全可靠并富有个性化,不允许匿名用户登录,用户登录对话框提示信息为“welcome to you!”,设置用户没有任何操作时的空闲时间超过90秒自动断开连接,最大连接上限为40。
用户通过FTP服务器获得稳定优质富有个性化特色服务,通过修改vsftpd.conf配置文件相应内容来实现,执行操作如下:
#vim/etc/vsftpd/vsftpd.conf //打开FTP服务器配置文件vsftpd.conf
对FTP服务器主配置文件vsftpd.conf进行如下设置:
ftpd_banner=welcome to our home! //设置用户登录对话框提示信息”welcome to you!”
anonymous_enable=no //禁止通过匿名用户登录FTP服务器
max_clients=40 //设置FTP服务器最大访客上限是40
idle_session_timeout=60 //无操作空闲超时90s自动断开
保存并退出vsftpd.conf。
#systemctl restart vsftpd.service //vsftpd服务重新启动
通过匿名方式访问FTP服务器,权限较低,同时不安全,因此通常使用添加FTP账号的形式访问FTP服务器,创建一个既能保证系统安全又能满足用户对访问FTP权限较高实际需求的FTP访客账号。
/var/ftp是访客账号设置主目录,创建访客账号,访客账号必须设置为FTP用户组,为了避免用户对Linux系统资源的访问,要取消访客登录Linux系统权限,将其Shell设置为sbin/nologin,这样访客只能访问、共享指定主目录,保证远程用户访问时系统的安全性。具体执行命令如下:
#useradd-g ftp-d/var/ftp/userftp-s/sbin/nologin userftp //创建FTP用户userftp
#passwd userftp //设置user用户密码
通过修改FTP配置文件vsftp.conf文件中的local_enable=YES配置项,能够使实体账号用户不能登录FTP服务器。
客户端可以通过浏览器、第三方客户端、字符界面终端等方式访问FTP服务器,其中浏览器访问方式和客户端访问方式多用于用户的远程访问,字符界面终端多用于系统管理员对服务器的管理。
打开客户端电脑自带浏览器,在浏览器地址栏中输入之前搭建好的FTP服务器地址:
ftp://userftp:userftp@192.168.94.11
成功登录FTP服务器后,可以对本地文件上传、服务器文件下载等文件传输操作。通过浏览器可以直接将文件拖到本地文件窗口;也可以通过浏览器直接将客户端本地文件拖入到浏览器窗口,然后上传到FTP服务器;在浏览器窗口选中要被删除的文件,然后按del键进行删除。
通过第三方软件来访问FTP服务器,第三方客户端软件界面友好并且方便操作,FTP客户端常用软件有FlashFTP、Cute-FTP、gFTP等,下面介绍gFTP安装和使用。
首先下载并安装gFTP,启动并打开的主界面,在Host中分别输入FTP服务器的IP地址和Port端口号,然后按照提示信息分别输入FTP服务器的User用户名和Pass密码,最后单击相应确定按钮,此时就可以成功登录FTP服务器。
gFTP右侧是远程登录FTP服务器文件列表,左侧是Local用户本地文件列表,通过单击相应位置的左右箭头可以实现创建目录、更名目录、文件下载、上传、删除等操作,通过Remote菜单对远程FTP服务器进行操作,通过Local菜单对客户端本地文件进行操作。
字符界面终端访问,需要用户熟练掌握FTP命令,通过输入字符命令与远程服务器进行交互,使用前首先要登录FTP服务器,执行命令如下:#ftp 192.168.94.11
成功连通FTP服务器后会出现要求输入FTP用户名和密码的提示信息,输入之前创建的FTP用户名userftp和密码userftp,如果用户名和密码输入正确,系统会出现“Login successfully”的提示信息,同时会出现ftp>提示符,表示已经成功登录FTP服务器,正在等待用户输入相应的命令,此时用户可以根据实际需要完成文件的下载、上传、查看等功能。
远程客户端用户可以通过FTP服务对Linux操作系统资源进行下载和上传文件,因为其传输稳定、安全可靠,在网络文件传输共享中得到广泛的应用。本文是基于Linux平台的FTP服务器设计与实现,首先阐述基于Linux平台的FTP文件传输原理,然后对FTP服务器安装、安全性配置、管理进行详细的分析,最后通过浏览器、第三方客户端软件、字符界面终端等三种方式实现连接访问架设好的FTP服务器,对FTP服务器用户体验和数据安全传输方面有了进一步提升。