一、vsftpd简介
安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。
在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器的数据,VSFTP服务器可以支持15000个并发用户
特点:
1、它是一个安全、高速、稳定的FTP服务器; 2、它可以做基于多个IP的虚拟FTP主机服务器; 3、匿名服务设置十分方便; 4、匿名FTP的根目录不需要任何特殊的目录结构,或系统程序或其它的系统文件; 5、不执行任何外部程序,从而减少了安全隐患; 6、支持虚拟用户,并且每个虚拟用户可以具有独立的属性配置; 7、可以设置从inetd中启动,或者独立的FTP服务器两种运行方式; 8、支持两种认证方式(PAP或xinetd/ tcp_wrappers); 9、支持带宽限制;
好了,以上就是官方的一些介绍,可以了解一下。我们平时的使用场景可能是公司需要,比如搭建一个vsftp服务,员工们上传下载文件,或者自己使用。主要就是用来做文件上传下载。
二、vsftpd搭建
1、查看自己的linux版本
有的属于6系列,目前是最新版本是7系列。由于7系列在一些命令上有了变化,所以需要你确认自己是6/7系列。
比如:防火强命令firewall,systemctl命令等等
2、查看是否安装vsftp并使用yum安装
看一下自己是否安装了vsftp服务,如果安装了,可以卸载或者继续搭建
rpm -qa | grep vsftpd
使用yum安装
yum -y install vsftpd
1.png
这样表示安装成功。(图例是找的一张,我安装的是vsftpd-3.0.2-22.el7.x86_64版本)
验证是否安装成功
rpm -qa vsftpd
3、vsftp配置
安装已经成功,接下来就需要进行配置了。查看vsftp相关的配置文件
ll /etc/vsftpd/
image.png
userconfig文件夹是我后来自己创建的。
下面说一下vsftpd.conf配置文件的配置,我只说一下没有注释的和我新增的配置项:
anonymous_enable=NO #是否允许匿名用户登录YES/NO local_enable=YES #是否允许本地用户登录YES/NO write_enable=YES #是否允许本地用户对FTP服务器文件具有写权限YES/NO local_root=/home/wwwroot/ #为不同用户设置不同的ftp根目录 chroot_local_user=YES #锁定用户到各自目录为其根目录YES/NO allow_writeable_chroot=YES #各用户是否可以上传下载YES/NO user_config_dir=/etc/vsftpd/userconfig #用户配置目录,这就是我新建的那个文件夹 local_umask=022 #设置本地用户的文件掩码为缺省022,也可根据个人喜好将其设置为其他值 dirmessage_enable=YES # 是否激活目录欢迎信息功能YES/NO xferlog_enable=YES #是否让系统自动维护上传和下载的日志文件默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file选项对其进行设定YES/NO connect_from_port_20=YES #是否设定FTP服务器将启用FTP数据端口的连接请求YES/NO xferlog_std_format=YES #是否以标准xferlog的格式书写传输日志文件YES/NO ascii_upload_enable=YES #是否以ASCII方式上传数据YES/NO ascii_download_enable=YES #是否以ASCII方式下载数据YES/NO listen=YES #是否允许监听新的端口YES/NO #listen_ipv6=YES #此项很重要,记得注释 pam_service_name=vsftpd # userlist_enable=YES #设置是否阻扯user_list文件中的用户登录FTP服务器,默认为YES tcp_wrappers=YES #是否使用tcp_wrappers作为主机访问控制方式 userlist_deny=NO #当userlist_enable为YES,userlist_deny为NO时,FTP服务器仅允许user_list中的用户访问 listen_port=6666 #监听一个新的端口6666 #修改ftp默认的21端口,数字随意,只要在1024-65535之内就行(1024以下是系统保留的,从1024-65535是用户使用的)
我们通常想要的是,某个用户登录之后可以直接访问到我们给他指定的目录,也就是用户自己的根目录,所以我在上边配置了不同用户的根目录。接下来需要配置用户。
先创建一个用户:
useradd testftp passwd testftp
设置完密码这个用户就生成了,现在去配置vsftp中该用户的根目录
cd /etc/vsftpd/ mkdir userconfig vim testftp
这个时候在里面配置一下testftp用户自己根目录:
local_root=/home/wwwroot/testftp/
注意:你的/home/wwwroot/testftp/这个文件夹必须存在哦!这个时候已经为testftp用户设置好了自己连接后的根目录,你还需要将:/etc/vsftpd/user_list文件中的其他用户都删除,只添加一个testftp
4、配置selinux
那个就ok了,现在还需要配置一下selinux
vim /etc/sysconfig/selinux
将SELINUX=enforcing改为SELINUX=disabled
5、启动vsftp服务
还是因为7系列,所以启动命令是:
systemctl start vsftpd
6、连接测试
ok,现在vsftp搭建和配置已经完成了,可以连接了。按照以上配置的话
ip:你的服务器ip 端口:6666 用户名:testftp 密码:testftp
多说一句,如果你启动的时候报错:
Restarting vsftpd (via systemctl): Job for vsftpd.service failed because the control……
这个就是因为vsftpd.conf中的:listen_ipv6=YES没有注释造成,因为我们目前的网络环境还不支持ipv6,改为listen_ipv6=NO或者注释,重启即可。