一:安装
- 首先查看当前服务器是否已经安装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}