Home » Uncategorized » 【测试】Linux环境下配置vsftpd的虚拟用户

【测试】Linux环境下配置vsftpd的虚拟用户

2018-12-28 15:29:51 yum -y install vsftpd
852 2018-12-28 15:30:12 yum -y install libdb-utils
853 2018-12-28 15:30:17 yum -y install db4 db4-utils
854 2018-12-28 15:30:28 yum -y install db4 db4-utils
1014 2018-12-28 17:19:33 db_load -T -t hash -f /etc/vsftpd/users /etc/vsftpd/virtual_users.db

1015 2018-12-28 17:19:36 mkdir -p /var/ftp/users/ftp1
1016 2018-12-28 17:19:44 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
1017 2018-12-28 17:19:49 vim /etc/vsftpd/vsftpd.conf
1018 2018-12-28 17:20:11 vim /etc/pam.d/vsftpd.virtual
1019 2018-12-28 17:20:27 chown ftp.ftp /var/ftp/users/ftp1
1020 2018-12-28 17:20:31 useradd -m -s /sbin/nologin ftp
1021 2018-12-28 17:20:45 systemctl start vsftpd
1022 2018-12-28 17:20:54 systemctl restart vsftpd

环境: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 -m -s /sbin/nologin ftp

9、启动服务并关闭selinux
# systemctl start vsftpd
# vim /etc/selinux/config
把SELINUX=enforcing 改为 SELINUX=disabled

10、测试
vbox@vbox:~$ 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)