vsftpd高级虚拟用户,FTP专有用户,FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
本文的Linux系统是Centos6.6,selinux默认关闭.
yum -y install vsftpd
一、建立Vsftpd虚拟用户:
1、添加虚拟用户口令文件安装Vsftpd
[root@localhost ~]#vim /etc/vsftpd/virtusers
奇数行为用户名,偶数行为密码。
ftp1 //用户名
redhat //密码
ftp2 //用户名
redhat //密码
给此文件设置600权限
[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers
2、生成虚拟用户口令认证文件
将刚添加的virtusers虚拟用户口令文件转换成系统识别的口令认证文件。
需要安装认证文件所需软件db4-utils
[root@localhost ~]#yum install -y db4-utils
下面使用db_load命令生成虚拟用户口令认证文件。
生成一个hash码型的数据库文件供ftp虚拟用户使用。
[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
设置600权限
[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers.db
3、编辑vsftpd的PAM认证文件
[root@localhost ~]#cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.vu
[root@localhost ~]#vim /etc/pam.d/vsftpd.vu
添加如下这两行,其他注释:
(i386)
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
(x86_64)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
4、建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,不需要本地shell。
[root@localhost ~]#useradd -s /sbin/nologin www (也可以-d 改变主目录)
5、配置vsftpd.conf
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //禁止匿名用户访问
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES //以上设置chroot功能,使整体ftp更安全
guest_enable=YES //开启虚拟用户
guest_username=www //FTP虚拟用户对应的系统用户
pam_service_name=vsftpd.vu //PAM认证文件
user_config_dir=/etc/vsftpd/virtusers_config //用户配置文件存放目录
创建chroot_list空文件(chroot功能需设置)
[root@localhost ~]#touch /etc/vsftpd/chroot_list
[root@localhost ~]#vim /etc/vsftpd/virtusers_config/ftp1
local_root=/data/wwwroot/ftp1 write_enable=YES anon_other_write_enable=yes anon_world_readable_only=no anon_upload_enable=YES anon_mkdir_write_enable=YES anon_umask=022
6、重启vsftpd服务
[root@localhost ~]#service vsftpd restart
7,设置selinux
[root@localhost ~]#setsebool -P ftpd_disable_trans on
8,client测试.
[root@host2 ~]# lftp 192.168.10.4
lftp 192.168.10.4:~> user ftp1
Password:redhat
lftp [email protected]:~> ls
-rw-r--r-- 1 0 0 0 Oct 16 06:26 1.txt
lftp [email protected]:~> get 1.txt
lftp [email protected]:~> exit
二、虚拟用户高级设置:
1、virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
2. 建立各个虚拟用户自身的配置文件
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
添加:
user_config_dir=/var/virtusers_config
[root@localhost ~]#mkdir /etc/vsftpd/virtusers_config
编辑ftp1的配置文件
[root@localhost ~]#vim /etc/vsftpd/virtusers_config/ftp1
anon_upload_enable=YES //具有上传权限
local_root=/home/virtuser/ftp1 //设置主目录
更多参数具体参见man vsftpd.conf