Vsftpd配置虚拟用户操作1)安装配置yum源:1mkdir/mnt/cdrom2mount/dev/cdrom/mnt/cdrom3修改/etc/yum.repos.d/CentOS-Media.repo内容如下:Baseurl=file:///mnt/cdromGpgcheck=1Enabled=1Gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-51安装vsftpd命令:yum–yinstallvsftpd*#执行命令之后,会需要你确定安装的程序,输入Y回车就OK2安装DB4部件包命令:yum–yinstalldb4*#执行命令之后,会需要你确定安装的程序,输入Y回车就OK2)建立系统帐号1建立Vsftpd服务的宿主用户命令:useraddvsftpd-s/sbin/nologin注:默认的vsftpd的服务宿主用户是root,这是不符合安全性需要的。这里建立名为vsftpd的用户,用他来作为支持vsftpd的服务宿主用户。所以该用户没有许可他登陆系统的必要,设定他为不能登陆系统的用户。2建立Vsftpd虚拟宿主用户命令:useraddvirtual-s/sbin/nologin3chmod700/home/virtual注:虚拟宿主用户:虚拟宿主用户并不是系统用户,他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓Vsftpd的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。由于他支撑了FTP的所有虚拟的用户,那么他本身的权限将会影响着这些虚拟的用户,因此,处于安全性的考虑,也要非常注意对该用户的权限的控制,该用户也绝对没有登陆系统的必要,这里也设定他为不能登陆系统的用户。3)配置vsftpd的配置文件1修改vsftpd主配置文件首先备份配置文件:命令:cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.backup编辑配置文件vsftpd.conf命令:vim/etc/vsftpd/vsftpd.conf因为配置文件内容比较多,所以,我这里就把我的配置帖出来,里面有我后面添加的一些注释,可以对照修改,也可以复制,不过,因为中文注释是后面加的,不知道有没有漏掉#号的地方,如果有问题,可以把中文注释的行删除。##anonymous_enable=YES#设定不允许匿名访问anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022##anon_upload_enable=YES#禁止匿名用户上传。anon_upload_enable=NO##anon_mkdir_write_enable=YES#禁止匿名用户建立目录。anon_mkdir_write_enable=NOdirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YES##chown_uploads=YES#设定禁止上传文件更改宿主。chown_uploads=NO#chown_username=whoeverxferlog_std_format=YES/etc/logrotate.d/vsftpd.log##xferlog_file=/var/log/xferlog#设定日志文件保存路径#####该文件默认不存在。必须要手动touch出来,并且要使宿主用户vsftpd可以操作该文件xferlog_file=/var/log/vsftpd.logxferlog_std_format=YES#idle_session_timeout=600#data_connection_timeout=120#设定vsftpd服务的宿主用户为vsftpd用户。nopriv_user=vsftpd##async_abor_enable=YES#设定支持异步传输功能。async_abor_enable=YES#设定支持ASCII模式的上传和下载功能。ascii_upload_enable=YESascii_download_enable=YESftpd_banner=WelcometoblahFTPservice.#deny_email_enable=YES#chroot_local_user=YES##chroot_list_enable=YES#禁止用户离开自己的FTP主目录。chroot_list_enable=NO#(defaultfollows)#chroot_list_file=/etc/vsftpd/chroot_list##ls_recurse_enable=YES#禁止用户登陆FTP后使用ls-R的命令,这里说明一下,ls-R会大量消耗系统资源。所以这里不给操作功能ls_recurse_enable=NOlisten=YES#listen_ipv6=YES#设定PAM服务下vsftpd的验证配置文件名。PAM验证将参考/etc/pam.d/下的vsftpd文件配置。pam_service_name=vsftpduserlist_enable=YES#设定支持TCPWrapperstcp_wrappers=YESguest_enable=YES##指定虚拟用户的宿主用户。guest_username=virtual##设定虚拟用户的权限符合他们的宿主用户。virtual_use_local_privs=YES##设定虚拟用户个人Vsftp的配置文件存放路径user_config_dir=/etc/vsftpd/vconf修改完成之后,保存退__________出。4)建立日志文件1新建文件命令:touch/var/log/vsftpd.log2修改权限命令:chownvsftpd.vsftpd/var/log/vsftpd.log5)建立虚拟用户配置文件存放目录命令:mkdir/etc/vsftpd/vconf/6)建立虚拟用户数据库文件1先建立虚拟用户名单命令:touch/etc/vsftpd/virtusers注:这个文件只是临时保存在这里2编辑虚拟用户名单文件命令:vi/etc/vsftpd/virtusers在文件中添加以下内容TestUser1Password1TestUser2Password2TestUser3Password3TestUser4Password4注:在其中加入虚拟用户的用户名和口令信息的格式很简单:“一行用户名,一行口令”。3生成虚拟用户数据文件命令:db_load-T-thash-f/etc/vsftpd/virtusers/etc/vsftpd/virtusers.db注:解释一下这个命令db_load命令的-T选项允许应用程序能够将文本文件转译载入进数据库。子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。(-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。这里,接下来我们需要指定的是Hash型。)(生成完之后,ls-alh看下有没有virtusers.db)7)修改PAM验证文件,并指定虚拟用户数据库文件进行读取1备份配置文件:命令:cp/etc/pam.d/vsftpd/etc/pam.d/vsftpd.backup2编辑Vsftpd的PAM验证配置文件命令:vi/etc/pam.d/vsftpd.vuauthrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/virtusersaccountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/virtusers这块的设置:第一行是验证用户名和口令,第二行是验证权限,sufficient表示一旦在这里通过了本验证,那么也就不用经过下面的验证步骤。相反,就要进行下面的验证,pam_userdb.so表示审核步骤调用pam_userdb.so这个库函数进行验证,db为调用的数据库文件8)虚拟用户的配置首先,选一个目录做为虚拟用户的主目录,我这里选择的是/opt/vsftp1建立虚拟用户主目录命令:mkdir/opt/vsftp/2建立个虚拟用户的主目录命令:mkdir/opt/vsftp/TestUser1mkdir/opt/vsftp/TestUser2……3修改目录权限命令:chown-Rvirtual.virtual/opt/vsftp/4建立虚拟用户配置文件建立虚拟用户配置文件模板:命令:touch/etc/vsftpd/vconf/vconf.tmp修改虚拟用户配置文件模板:命令:vi/etc/vsftpd/vconf/vconf.tmp添加以下内容:-----------------------------------------------------#指定虚拟用户的具体主路径。local_root=/opt/vsftp/virtuser#设定不允许匿名用户访问。anonymous_enable=NO#设定允许写操作。write_enable=YES#设定不允许匿名用户上传。anon_upload_enable=NO#设定不允许匿名用户建立目录。anon_mkdir_write_enable=NO设定修改权限,包括删除文件及文件夹等。anon_other_write_enable=NO/YES#设定空闲连接超时时间。idle_session_timeout=600#设定单次连续传输最大时间。data_connection_timeout=120#设定并发客户端访问个数。max_clients=50#设定单个客户端的最大线程数,max_per_ip=20#设定该用户的最大传输速率,单位b/s。我这里给的是500M,这个值跟据不同条件来修改local_max_rate=4194304000-----------------------------------------------------以上内容的值是可以调整的,主要是对用户的信息连接以及操作,进行控制5对不同的用户进行订制复制虚拟用户模版配置文件命令:cp/etc/vsftpd/vconf/vconf.tmpetc/vsftpd/vconf/TestUser1针对具体用户进行定制,修改订制文件命令:vi/etc/vsftpd/vconf/TestUser1(我这里只修改了主目录,)local_root=/opt/vsftp/TestUser1保存并退出,然后重复以上操作,对每个虚拟用户进行配置9)重启vsftpd服务命令:servicevsftpdrestart10)测试在客户端cmd命令行下执行ftp192.168.1.206输入口令回车然后输入密码(输入密码的时候,命令行不会显示,直接输入回车就OK)接着就可以测试一下上传和下载上传命令:put文件名下载命令:get文件名也可以通过FlashFXP来操作,这里就不多说了3、碰到的问题我这里只遇到了一个问题,就是上传和下载的时候,报了一个上传失败553CouldnotcreatefileGoogle之,得到的答案是,因为目录权限的问题,可是我的目录权限已经修改了,所以继续Google后来看一有文章写通过setsebool-Pftpd_disable_trans1命令来解决,但是这里执行失败报以下错误:libsemanage.dbase_llist_set:recordnotfoundinthedatabaselibsemanage.dbase_llist_set:couldnotsetrecordvalueCouldnotchangebooleanftpd_disable_transCouldnotchangepolicybooleans貌似是说:没有ftpd_disable_trans这个项目继续Google后来找到了真正的解决办法:执行以下命令:getsebool-