一:安装

  1. 首先查看当前服务器是否已经安装vsftp。
[root@wst01 bbders]# rpm -q vsftpd
 package vsftpd is not installed    (显示没有安装)
 [root@wst01 bbders]#
 [root@wst01 bbders]# yum  install vsftpd -y  (开始安装)
 [root@wst01 bbders]# rpm -q vsftpd
 vsftpd-3.0.2-22.el7.x86_64
 [root@wst01 bbders]# systemctl status vsftpd.service  (查看vsftpd服务的状态)
 ● vsftpd.service - Vsftpd ftp daemon
    Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
    Active: active (running) since Tue 2018-05-22 10:02:38 CST; 8s ago
    Process: 8006 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 8007 (vsftpd)
    Tasks: 1
    CGroup: /system.slice/vsftpd.service
           └─8007 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

 May 22 10:02:38 wst01 systemd[1]: Starting Vsftpd ftp daemon...
 May 22 10:02:38 wst01 systemd[1]: Started Vsftpd ftp daemon.
 [root@wst01 bbders]#

2:配置

1:先备份配置文件,以免修改出错能够恢复。

命令:cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO  # 禁用匿名登录

ascii_upload_enable=YES

ascii_download_enable=YES

chroot_local_user=YES  # 启用限定用户在其主目录下

#之后添加下列内容到vsftpd.conf末尾

use_localtime=YES

listen_port=21

chroot_local_user=YES

idle_session_timeout=300

guest_enable=YES

guest_username=vsftpd

user_config_dir=/etc/vsftpd/vconf

data_connection_timeout=1

virtual_use_local_privs=YES

pasv_min_port=10060

pasv_max_port=10090

accept_timeout=5

connect_timeout=1

3:建立用户文件

格式:第一行用户名,第二行密码,不能使用root为用户名
vim /etc/vsftpd/virtusers

user1
user1password
user2
user2password

4:生成用户数据文件

1:首先你需要确定你是否有db_load这个命令
[root@wst01 ~]# rpm –q db

2:安装之前先查询一下
[root@wst01 ~]# yum search db4
Loaded plugins: fastestmirror, langpacks
Repository base is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* elrepo: mirror.rackspace.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
========================================================== N/S matched: db4 ===========================================================
compat-db47.i686 : The Berkeley DB database 4.7.25 compatibility library
compat-db47.x86_64 : The Berkeley DB database 4.7.25 compatibility library (选择安装这个版本64位)
libdb4.x86_64 : The Berkeley DB database library (version 4) for C
libdb4-cxx.x86_64 : The Berkeley DB database library (version 4) for C++
libdb4-cxx-devel.x86_64 : C++ development files for the Berkeley DB database library (version 4)
libdb4-devel.x86_64 : C development files for the Berkeley DB (version 4) library
libdb4-devel-static.x86_64 : Berkeley DB (version 4) static libraries
libdb4-doc.noarch : Documentation for the Berkeley DB
libdb4-java.x86_64 : Development files for using the Berkeley DB (version 4) with Java
libdb4-java-devel.x86_64 : Development files for using the Berkeley DB (version 4) with Java
libdb4-tcl.x86_64 : Development files for using the Berkeley DB (version 4) with tcl
libdb4-tcl-devel.x86_64 : Development files for using the Berkeley DB (version 4) with tcl
libdb4-utils.x86_64 : Command line tools for managing Berkeley DB (version 4) databases

Name and summary matches only, use “search all” for everything.
[root@wst01 ~]#

3:安装对应的版本
yum install-y compat-db47.x86_64 (以你的机器为准)

4:生成db文件:
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

5: 设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/virtusers.db (权限r,w即可)

5:修改/etc/pam.d/vsftpd文件

  • 修改前还是先备份文件,以免发生错误没发恢复。
    cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

vi /etc/pam.d/vsftpd

将auth及account的所有配置行均注释掉
在里面添加这两句话

auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

## 如果系统为32位,上面lib64改为lib

6:新建系统用户vsftpd,用户目录为/home/vsftpd

1:先在家目录下建立vsftpd文件夹,这也是我们访问的空间

mkdir -p /home/vsftpd

2:用户登录终端设为/bin/false(即:使之不能登录系统)

useradd vsftpd -d/home/vsftpd -s /bin/false:
chown -R vsftpd:vsftpd /home/vsftpd

7:建立虚拟用户个人配置文件

mkdir /etc/vsftpd/vconf

cd/etc/vsftpd/vconf
#这里建立两个虚拟用户配合文件

touch test1 test2

#建立用户根目录

mkdir -p /home/vsftpd/test1/

#编辑test用户配置文件,内容如下,其他用户类似

vim test1

local_root=/home/vsftpd/test/

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

:8.防火墙设置(centos 7)

  • 如果系统启用了防火墙和SELinux,那么还要做以下配置(默认情况下centos7是使用firewall和selinux的,不在使用iptables)
#防火墙添加FTP服务:

[root@localhost vsftpd]#firewall-cmd --permanent --zone=public --add-service=ftp

[root@localhost vsftpd]#firewall-cmd --reload

#设置SELinux:

[root@localhost vsftpd]#getsebool -a | grep ftp

[root@localhost vsftpd]#setsebool -P ftpd_full_access on

9:重启vsftpd服务器

[root@localhostchris]# systemctl stop vsftpd.service

[root@localhostchris]# systemctl start vsftpd.service

[root@localhostchris]# systemctl status vsftpd.service

10: 在/home/vsftpd/test/下面件几个文件夹做测试

mkdir /home/vsftpd/test/test{1..5}

11. 在浏览器或者我的电脑里输入ftp://192.168.0.11