虚拟用户的特色是只能访问服务器为其提供的FTP服务,不能访问系统的其它资源,因此,若是想让用户对FTP服务器站内具备写权限,但又不容许访问系统其余资源,能够使用虚拟用户来提升系统的安全性。
在vsftpd中,谁这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,而且配置更加灵活。linux
yum install vsftpd db4-utils db4 -y
vim /home/virtual_users.txt
senthil
centos
执行下面命令建立数据库数据库
db_load -T -t hash -f /home/virtual_users.txt /etc/vsftpd/virtual_users.db
vim /etc/pam.d/vsftpd_virtualvim
#%PAM-1.0 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
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=YES listen_ipv6=NO pam_service_name=vsftpd_virtual userlist_enable=YES tcp_wrappers=YES guest_enable=YES #启用虚拟用户 virtual_use_local_privs=YES user_sub_token=$USER local_root=/ftp/virtual/$USER hide_ids=YES allow_writeable_chroot=YES #避免客户端500错误
mkdir -p /ftp/virtual/senthil
chown -R ftp:ftp /ftp/virtual/senthil/centos
systemctl start vsftpd安全
C:\Users\Administrator>ftp 192.168.2.72 链接到 192.168.2.72。 220 (vsFTPd 3.0.2) 用户(192.168.2.72:(none)): senthil 331 Please specify the password. 密码: 230 Login successful. ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 ftp ftp 670293 Feb 04 03:09 abc -rw-r--r-- 1 ftp ftp 670293 Feb 04 03:08 services 226 Directory send OK. ftp: 收到 127 字节,用时 0.00秒 127.00千字节/秒。 ftp> get services 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for services (670293 bytes). 226 Transfer complete. ftp: 收到 670293 字节,用时 0.02秒 35278.58千字节/秒。 ftp>
参考资料:https://www.unixmen.com/install-vsftp-with-virtual-users-on-centos-rhel-scientific-linux-6-4/服务器