基于vsftpd的FTP服务器仿真实验平台设计
2017-05-30周雄庆
周雄庆
摘 要: 利用VMware Workstation虚拟机创建了FTP服务器仿真實验平台,在一台安装了vsftpd服务器软件的Linux网络操作系统作为FTP服务器,另一台安装了Windows XP的操作系统作为客户端,实现了以匿名用户和本地用户的方式对FTP服务器进行访问。
关键词: vsftpd; FTP服务器; VMware
中图分类号: TP 368.5,TP 302 文献标志码: A 文章编号: 1671-2153(2017)06-0094-03
0 引 言
FTP(File Transfer Protocol)是文件传输协议的简称,位于TPC/IP模型的应用层。FTP协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的一个标准,能够工作在Windows,Linux及UNIX等操作系统中实现跨平台的文件传输服务。
vsftpd(very secure FTP daemon)是一个基于GPL发布的、Red Hat Linux默认使用的FTP服务器软件,其中的vs是very secure的缩写,由此名称缩写可以看出,本服务器的初衷就是服务器的安全性。vsftpd可以同时允许匿名用户(anonymous)与本地用户(local)访问。
本文描述了在 Linux 中使用 vsftpd服务器软件,实现一个安全、高速、稳定的FTP服务器的方法。
1 实验平台的搭建
由于实验条件的限制,本文所讨论的问题是在一台装有Windows7的物理计算机上利用VMware Workstation虚拟机软件进行FTP服务器安全传输文件的设计与实现,首先,在虚拟机中安装一台具有CentOS网络操作系统的虚拟机,命名为“FTPServer”,作为FTP服务器;再安装一台具有Windows XP操作系统的虚拟机,命名为“Client”,作为FTP客户端,供测试使用。
在VMware Workstation中设置两台虚拟机的“网卡连接方式”为“内部网络”,并给FTP服务器设置网络参数为
IP地址:192.168.1.100;
子网掩码:255.255.255.0;
默认网关:192.168.1.1。
给FTP客户端设置一个与服务器相同网段的IP地址为192.168.1.2,子网掩码和默认网关与FTP服务器相同。
在FTP服务器上安装vsftpd服务器软件,同时编辑相应的配置文件,并对vsftpd服务进行管理,使之功能生效;在FTP客户端打开资源管理器输入FTP网址后,通过匿名或本地用户成功打开文件页面,实现了一个安全、可靠的文件传输。
2 vsftpd服务的安装与管理
2.1 vsftpd服务的安装
默认情况下,在安装CENTOS系统时不会自动安装FTP服务器。vsftpd服务器软件的安装其实很简单,只要安装一个RPM软件包就可以了。为了确认系统中是否已经安装了vsftpd软件包,一般使用下面的命令进行检查:
[root@localhostnamed]#rpm -qa|grep vsftpd
回车之后出现以下内容,则表明系统已成功安装了vsftpd软件包。
vsftpd-2.2.2-6.el6_0.1.x86_64
如果没有显示以上内容,则说明系统没有安装vsftpd服务,可以通过yum方式进行安装。
首先,通过mount /dev/cdrom /media命令将centos系统镜像文件挂载到CENTOS系统中的media目录中,然后进入/etc/yum.repo.d目录,使用rm *.*命令删除其他3个文件,只保留CentO_Media.repo作为模板,并对CentO_Media.repo文件进行编辑,主要是修改3个参数:
baseurl=file:///media/ //指向media目录
gpgcheck=1 //打开校验功能
enabled=1 //激活
最后,输入安装命令yum –y install vsftpd进行vsftpd软件包的安装。
2.2 vsftpd服务的管理
在centos系统中,当vsftpd软件包安装完成后, 还要以独立方式启动vsftpd服务。在命令模式下使用下列命令管理vsftpd服务:
[root@localhostnamed]#service vsftpd start //启动vsftpd服务
[root@localhostnamed]#service vsftpd stop //停止vsftpd服务
[root@localhostnamed]#service vsftpd restart //重新启动vsftpd服务
[root@localhostnamed]#service vsftpd status //查看vsftpd服务状态
[root@localhostnamed]# chkconfig vsftpd on //开机自动启动vsftpd服务
3 配置FTP服务器
3.1 配置匿名帐号FTP服务器
通常FTP主机为公用的服务,主机默认配置使用匿名登录,也就是说在/etc/vsftpd/vsftpd.conf文件中的anonymous_enable参数值为“YES”,说明可以允许用户匿名访问ftp服务器。但是只能以只读的方式访问,不能进行删除、创建、上传等,如果需要匿名用户具有这些权限的话,需要更改目录路径,并进行相关参数设置如下:
(1) 在根目录下使用mkdir命令目录创建111目录,然后使用cd命令进入111目录后,再使用mkdir命令目录创建jsyz目录,并使用chmod目录开启jsyz目录的所有权限。具体目录如下:
[root@localhostnamed]#mkdir /111
[root@localhostnamed]#cd 111
[root@localhostnamed]#mkdir jsyz
[root@localhostnamed]#chmod 777 jsyz
(2) 修改vsftpd的主配置文件,常用的参数如下:
anonymous_enable=YES //支持匿名用户账号访问
anon_mkdir_write_enabel=YES //允许匿名用户创建目录
anon_other_write_enabel=YES //允许匿名用户的其他写权限
anon_upload_enabel=YES //允许匿名用户上传
anon_root=/111 //指向111目录
3.2 配置本地帐号FTP服务器
(1) 在目录/home/wwwroot/ftpuser下创建用户ftpuser
命令:useradd -g root -M -d /home/wwwroot/ftpuser -s /sbin/nologin ftpuser
(2) 设置用户ftpuser密碼
命令:passwd ftpuser
# ftpuser为刚刚设定的用户名,根据提示输入两次相同的密码。
(3) 配置文件/etc/vsftpd/vsftpd.conf
anonymous_enable=NO //不允许匿名访问,禁用匿名登录 chroot_local_user=YES //禁止本地用户登出自己的FTP主目录
chroot_list_enable=YES //不允许FTP用户离开自己主目录
chroot_list_file=/etc/vsftpd/chroot_list //锁定登录用户只能家目录的位置
local_enable=YES //允许使用本地帐户进行FTP用户登录验证
idle_session_timeout=600 //会话超时
async_abor_enable=YES//支持异步传输功能
ascii_upload_enable=YES //支持ASCII模式的下载功能
ascii_download_enable=YES //支持ASCII模式的上传功能
4 测试vsftpd服务
以下两个操作需在测试前完成,如果没有配置则无法正常登陆到FTP服务器。
第一个是关闭SELINUX保护。用vim /etc/sysconfig/selinux命令打开文件,把参数SELINUX的值enforcing改为disabled即可。
第二个是配置防火墙。vsftpd软件安装完成后,默认端口是21,需要通过vim /etc/sysconfig/iptables命令在防火墙配置中开启21端口才可以对外连接。
-A INPUT-m state-state NEW-m tcp-p tcp-dport 21-j ACCEPT
-A OUTPUT-m state-state NEW-m tcp-p tcp-dport 21-j ACCEPT
配置完防火墙,必须使用service iptables restart命令重启防火墙才能生效。
完成上面两个配置之后,就可以启动vsftpd服务,在客户端使用ftp命令登陆FTP服务器192.168.1.100,以检测是否能够正常工作。输入用户名“ftpuser”和密码“ftpuser”后,能打开相应的文件夹,如图1所示。
5 结束语
本文通过在VMwareWorkstation虚拟机软件上安装两台虚拟机,一台具有CentOS网络操作系统的虚拟机,命名为“FTPServer”,作为FTP服务器;再安装一台具有WindowsXP操作系统的虚拟机,命名为“Client”,作为FTP客户端,供测试使用,构建了一个FTP服务器安全站点实验环境,实现了安全的文件传输服务器的设计。
参考文献:
[1] 丁传炜.基于VirtualBox虚拟机的VSFTP服务仿真实验平台的设计[J]. 计算机时代,2013(2):9-10.
[2] 张玉琴. FTP服务器配置与管理[J]. 数字技术与应用,2017(4):53.
[3] 周伯恒. CentOS6.X系统管理实战宝典[M]. 北京:清华大学出版社,2013:77-79.
[4] 张敬东. Linux服务器配置与管理[M]. 北京:清华大学出版社,2014:313.
[5] 张同光. Linux操作系统[M]. 北京:清华大学出版社,2016:358.