过程经过本人安装,证明没问题,可以放心使用。

1.卸载vsftpd软件

1.1首先检查本机上是否安装过vsftpd服务器

rpm -aq vsftpd

1.2如果安装过了,则显示安装的版本信息,如果没安装,则无返回结果。

在卸载之前,先停止vsftpd服务

systemctl   stop vsftpd.service

卸载vsftpd软件,下面蓝色部分是vsftpd软件的名称,el7中l是小写的L,不要写成数字1了。

rpm  -e  vsftp-3.0.2-21.el7.x86_64

1.3输入验证命令,验证vsftpd服务是否已经删除

systemctl  stop  vsftpd.service

systemctl  restart  vsftpd.service

如果以上两个命令返回的都是找不到vsftpd服务,则卸载成功。

2.安装vsftpd软件

2.1安装软件有两种方式:

第一种,centos系统中有传过来的vsftpd软件的rpm文件,rpm 软件名.rpm

rpm  vsftp-3.0.2-21.el7.x86_64.rpm

第二种,centos系统可以上网,在http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/中有需要的好多软件,找到vsftp软件,rpm  -Uvh  http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/软件名.rpm,自动从网上下载安装。

rpm  -Uvh  http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/vsftp-3.0.2-21.el7.x86_64.rpm

2.2启动ftp服务

systemctl  start  vsftpd.service

2.3防火墙设置,把ftp服务添加到防火墙外->使设置生效->重新启动防火墙

firewall-cmd  --permanent  --add-service=ftp  

firewall-cmd  --reload

systemctl  restart  firewalld.service

3.vsftpd服务的详细配置

3.1关闭匿名账户

首先进入文件/etc/vsftpd/vsftpd.conf中

vi  /etc/vsftpd/vsftpd.conf

按i,进入编辑状态,修改一下三项:

anonymous_enable=NO

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

按ESC键,输入:wq,退出编辑状态,然后重启ftp服务:

systemctl  restart  vsftpd.service

通过配置重启之后,匿名用户不可以登录了

3.2建立ftp虚拟宿主账户

新建一个不能登录系统的用户,只能用来登录ftp服务

useradd ftpuser -s  /sbin/nologin

为ftpuser用户设置密码,输入新密码以及再次验证

passwd ftpuser

3.3查看ftp状态

getsebool  -a | grep ftp

显示结果:

ftpd_anon_write --> off
            ftpd_connect_all_unreserved --> off
            ftpd_connect_db --> off
            ftpd_full_access --> off
            ftpd_use_cifs --> off
            ftpd_use_fusefs --> off
            ftpd_use_nfs --> off
            ftpd_use_passive_mode --> off
            httpd_can_connect_ftp --> off
            httpd_enable_ftp_server --> off
            tftp_anon_write --> off
            tftp_home_dir --> off

将上面红色两项状态设置为on

setsebool  -P  allow_ftpd_access   on

sersebool  -P   tftp_home_dir   on

3.4配置vsftpd.conf:限制用户的目录在主目录上

进入文件 /etc/vsftpd/vsftpd.conf中

vi  /etc/vsftpd/vsftpd.conf

这里有两种设置方式:

第一种,凡是加在文件chroot_list中的用户都是不受限制的用户,即可以浏览其主目录的上级目录

chtoot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

第二种,把所有不希望有这种浏览其主目录之上的个目录权限的用户添加到文件chroot_list中(此时,在该文件中的用户一行一个用户名)。

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

本人采用第二种,加入ftpuser,表示只有ftpuser不能访问上级目录,重启vsftpd

systemctl  restart  vsftpd.service

3.5修改权限(可以不要)

将ftpuser文件夹设置为只能读取不能写入

chmod  a-w  /home/ftpuser

表示不可执行可读取写入

chmod  a-x  /home/ftpuser

chmod  a+r+w  /home/ftpuser

将权限赋值给ftpuser用户(前一个是ftpuser用户,后一个是ftpuser文件)

chown  ftpuser   ftpuser

4.开启PASV(被动模式)

在/etc/vsftpd/vsftpd.conf文件的最下面加入

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=30999

并且在文件中userlist_enable=YES后面添加

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list

进入文件/etc/vsftpd/user_list中,把ftpuser添加进去,表示ftpuser进入ftp服务器不被拒绝

重新启动vsftpd服务,就可以使用了

systemctl  restart  vsftpd.service