一.简介:linux
1.FTP文件传输协议是在TCP/IP网络和Internet上最先使用的协议之一,它属于网络协议应用层的协议。FTP客户机能够给FTP服务器发出命令来下载文件,上载文件,建立或修改服务器上的目录等等。 安全
2.从服务器的角度去看,FTP的传输模式分为如下两种:服务器
⑴主动FTP模式:网络
主动模式要求客户端和服务器端同时打开而且监听一个端口以创建链接。在这种状况下,文件的传输存在安全隐患,客户端若是安装了防火墙,在使用过程当中也有可能会产生一些问题 测试
⑵被动FTP模式:(实际生活中多采用该模式)ui
在被动方式FTP中,命令链接和数据链接都由客户端发起,这样就能够解决从服务器到客户端的数据端口的入方向链接被防火墙过滤掉的问题。 spa
二.搭建步骤rest
1.因为wdos系统中并无安装vsftpd软件包,因此须要经过yum安装所须要的软件包ip
2.基于匿名的ftp服务器架设(匿名帐户有 anoymous 和ftp 这两个)hash
3.基于系统用户的ftp服务器架设(在服务器中手动创建)
4.基于虚拟用户的ftp服务器架设
4.测试
5.可能遇到的问题的解决方案
三.搭建过程
1.使用yum -y install vsftpd 安装vsftp软件包,以下图所示:
2.基于匿名用户的ftp架设
1)vi /etc/vsftpd/vsftpd.conf 进入ftp的主配置文件,默认状况下容许匿名用户登陆,因此只须要找到下图两句并把前面的#去掉,即可容许匿名用户上传文件和建立新目录:
2)容许匿名用户上传文件的FTP服务器:
方法一:建立一个属于ftp匿名用户使用的目录
方法二:建立一个属于root用户的目录,但修改目录权限为容许其余用户修改目录内容
3)重启vsftpd服务
使用命令service vsftpd restart 重启该服务
3.基于虚拟用户的ftp架设
1)建立本地虚拟用户user1和user2,设置密码为123456
2)修改主配置文件/etc/vsftpd/vsftpd.conf,将图中标注的两行前的注释符去掉
3)在/etc/vsftpd这一目录下,新建一个chroot_list文件用于存放新建的用户:
4)服务重启
使用命令service vsftpd restart 重启该服务
4.基于虚拟用户的搭建
1)添加虚拟用户口令文件 /etc/vsftpd/vuser.txt;在该文件下添加虚拟用户和密码
2)安装生成口令认证文件所需的软件包db4-utils
3)使用db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db命令生成虚拟用户口令认证文件
4)编辑vsftpd的PAM认证文件:
vi /etc/pam.d/vsftpd,将里面的内容所有删除或者注释掉,另外添加下面两句命令:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
5)创建本地映射用户并设置宿主目录权限
全部的FTP虚拟用户须要使用一个系统用户,这个系统用户不须要密码。
useradd –d /home/vftpsite –s /sbin/nologin vsftpuser
chmod 700 /home/vftpsite
6)到主配置文件 /etc/vsftpd/vsftpd.conf 配置虚拟用户
7)重启该服务
四.测试
1.基于匿名用户的测试:(这里只测试新建立的目录forup1)
1)使用匿名帐户 ftp登陆,密码为空;
2)客户端上传test.txt到已经建立好的目录forup1
3)到ftp服务器查看是否上传成功,若是须要下载已经上传的文件test.txt,可经过修改该文件的权限
使用命令chmod 644 test.txt修改文件的权限:
客户端测试是否能下载:
2.基于系统用户的测试:(这里使用新建的帐户user1来测试)
1)使用虚拟用户user1登陆到ftp服务器,并建立一个新的文件
2)在服务器上查看/home/user1目录下的文件,是否添加成功
3.基于虚拟用户的测试:
五.可能遇到的问题解决方案
1.若是在服务重启的过程当中提示重启失败,用命令 netstat -lnpt 查看各个端口的启用状态,确保21端口侦听的是vsftpd的服务
P.s. 通常状况下,wdos系统的21端口被pureftpd服务占用了,这时能够经过命令 service pureftpd stop 来关闭这项服务
2.若是在测试过程当中出现530登陆失败这样的错误,则经过命令vi /etc/selinux/config 进入该文件查看sellinux是否设置为disable,同时经过命令 service iptables stop 将防火墙关闭,重启vsftpd服务,从新测试便可。