2343图2 发表于 2016-12-28 10:46:13

vsftpd部署 虚拟用户实现

1、创建一个虚拟用户对应的那个系统用户:# useradd virftp -s /sbin/nologin
2、创建一个虚拟用户存放用户名密码的文件:
    # vim /etc/vsftpd/vusers.list
   test   #用户
   123456   #密码
3、将vusers.list这个文件生成一个vsftpd这个服务能识别的一个二进制的库文件:    # yum installdb4 –y   #安装db4工具
    # db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vusers.db
然后更改其权限:# chmod600vusers.*    #修改权限,保证密码文件安全

4、创建虚拟用户:(1)创建一个虚拟用户配置文件存放的一个目录:# mkdir /etc/vsftpd/vsftpd_user_conf(2)进入到这个目录下进行配置文件的创建: # cd    /etc/vsftpd/vsftpd_user_conf(3)创建一个跟第2步配置文件中用户名同名的一个配置文件:# vim test写入内容:                        local_root=/home/virftp/test             anonymous_enable=NO             write_enable=YES             local_umask=022   anon_upload_enable=NO              anon_mkdir_write_enable=NO             idle_session_timeout=600             data_connection_timeout=120             max_clients=10             max_per_ip=5             local_max_rate=50000(4)既然在上面配置文件中我们有限制test的家目录到/home/vsftpd/test下,我们自然要去创建这个目录:# mkdir /home/virftp/test1然后更改其属主以及属组为我们的系统用户:# chown -R virftp:virftp /home/virftp/test       # chmod +rx /home/virftp

Centos7 还需要执行以下操作:# chmod –w/var/ftproot# mkdir/var/ftproot/upload# setfacl-m u:vuser:rwx/var/ftproot/upload
(5)编辑认证相关的一个配置文件:(告诉配置文件你得用哪种方式去认证,要不然会用系统默认的用户名和密码,现在我们要用虚拟用户的来认证,这时候就需要告诉配置文件他的这些密码库文件这些在哪里,要去用它)# vim /etc/pam.d/vsftpd添加两行信息,放在最上面 即可:# vim /etc/pam.d/vsftpd
auth    sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

保存之前我们要先去确认下/lib/security/pam_userdb.so这个文件存在不存在(因为这个关系到系统是32位还是64位的问题,32位的系统是存放在上面所说的路径下的,但是如果是64位操作系统的话是存放在/lib64/security/pam_userdb.so里的)      可以用uname -a查看系统是多少位的操作系统(6)编辑vsftpd的配置文件:      # vim /etc/vsftpd/vsftpd.conf(将一些关于匿名用户信息行的选项打开并将其改成NO;注:local_enable=YES这一行就是默认的YES别去改)并在配置文件最底下添加一些配置信息:guest_enable=YESguest_username=virftpvirtual_use_local_privs=YESuser_config_dir=/etc/vsftpd/vsftpd_user_conf配置文件示例:# grep -v ^# vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
use_localtime=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=YES
listen=YES

pam_service_name=vsftpd #设置 PAM 外挂模块提供的认证服务所使用的配置文件名
userlist_enable=YES
tcp_wrappers=YES

guest_enable=YES      #开启虚拟用户
guest_username=virftp   #指定虚拟用户映射的系统用户
virtual_use_local_privs=YES   #虚拟用户和本地用户有相同的权限;
user_config_dir=/etc/vsftpd/vsftpd_user_conf#不同的虚拟用户创建独立的配置文件分别管理


(7)重启vsftpd服务:/etc/init.d/vsftpd restart注意:selinux   :可以禁用selinux 或者 执行setsebool –P ftpd_full_access 1
5、接下来就是登陆测试了(1)可以在本服务器上进行测试:lftp test1@127.0.0.1
6、错误排查   用户登陆失败 可以查看日志 # tail -f /var/log/secure   其他问题可以查看 这个日志:# tail -f/var/log/vsftpd.log

页: [1]
查看完整版本: vsftpd部署 虚拟用户实现