Linux中搭建vsftp服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gu_wen_jie/article/details/81012928

vsftp简介

安全性是编写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服务,员工们上传下载文件,或者自己使用。主要就是用来做文件上传下载。

vsftp服务搭建

1.查看自己的linux版本

有的属于6系列,目前是最新版本是7系列。由于7系列在一些命令上有了变化,所以需要你确认自己是6/7系列。
比如:防火强命令firewall,systemctl命令等等

cat /etc/redhat-release

如图:我的是7.3版本
这里写图片描述

2.查看是否安装vsftp并使用yum安装

看一下自己是否安装了vsftp服务,如果安装了,可以卸载或者继续搭建

rpm -qa | grep vsftpd

使用yum安装

yum -y install vsftpd

这里写图片描述
这样表示安装成功。(图例是找的一张,我安装的是vsftpd-3.0.2-22.el7.x86_64版本)
验证是否安装成功

rpm -qa vsftpd
3.vsftp配置

安装已经成功,接下来就需要进行配置了。
查看vsftp相关的配置文件

ll /etc/vsftpd/

这里写图片描述
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.配置防火墙

linux7系列中需要执行此步骤,配置防火墙

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload

如果你执行一条命令后是如下:FirewallD is not running
你的防火墙没有开启,请开启或者你可以不开启,就不需要这些配置了。(建议开启)

6.启动vsftp服务

还是因为7系列,所以启动命令是:

 systemctl start vsftpd

如果你使用:

service start vsftpd

可能会出现以下报错:
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

7.连接测试

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或者注释,重启即可。

猜你喜欢

转载自blog.csdn.net/gu_wen_jie/article/details/81012928
今日推荐