环境:CentOS Linux release 7.4.1708 (Core)
vsftpd版本:vsftpd: version 3.0.2
1、安装vsftpd
# yum -y install vsftpd
2、建立虚拟用户帐号密码
# vim /etc/vsftpd/users
ftp1
123456
3、创建虚拟用户数据库文件
# db_load -T -t hash -f /etc/vsftpd/users /etc/vsftpd/virtual_users.db
4、创建虚拟账户的本地目录
# mkdir -p /var/ftp/users/ftp1
5、备份以及为虚拟用户配置vsftpd文件
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd.virtual
guest_enable=YES
user_sub_token=$USER
local_root=/var/ftp/users/$USER
chroot_local_user=YES
hide_ids=YES
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES
pasv_enable=Yes
pasv_max_port=21000
pasv_min_port=20000
6、创建pam文件,使用上述新建的数据库文件
新建pam文件:
# vim /etc/pam.d/vsftpd.virtual
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
session required pam_loginuid.so
7、配置防火墙
# iptables -I INPUT -p tcp --destination-port 20:21 -j ACCEPT
# iptables -I INPUT -p tcp --destination-port 20000:21000 -j ACCEPT
8、修改所有者及所属组
# chown ftp.ftp /var/ftp/users/ftp1
如果系统不存在ftp用户,则需手动创建
# useradd -d varftp -s /sbin/nologin ftp
9、启动服务并关闭selinux
# systemctl start vsftpd
# vim /etc/selinux/config
把SELINUX=enforcing 改为 SELINUX=disabled
10、测试
[email protected]:~$ ftp 192.168.199.153
Connected to 192.168.199.153.
220 (vsFTPd 3.0.2)
Name (192.168.199.153:vbox): ftp1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put hello.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
7 bytes sent in 9.1e-05 seconds (75.1 kbytes/s)
原文地址:https://www.cnblogs.com/relax1949/p/9210910.html