Linux下安装vsftpd并配置FTP虚拟用户练习 ****的FTP服务器搭建方法 安装vsftpd #查看当前系统版本cat/etc/redhat-releaseCentOSrelease6.6(Final)#检查是否已经安装vsftpdrpm-qa|grepvsftpd#如果没有安装并设置启动yum-yinstallvsftpdchkconfigvsftpdon 根据虚拟用户配置 所谓虚拟用户不使用真实账户,只是通过映射到真实帐户并设置权限的目标。虚拟用户无法登录CentOS系统。 修改配置文件 vi/etc/vsftpd/vsftpd.conf#服务器独立运行listen=YES#设置不允许匿名访问anonymous_enable=NO#设置本地用户可以访问。注意:如果使用虚拟主机用户,此项设置为NO,所有虚拟用户将无法访问local_enable=YES#使用户无法离开主目录chroot_list_enable=YES#设置支持的上传下载功能ASCII模式ascii_upload_enable=YESascii_download_enable=YES#PAM认证文件名。PAM会根据/etc/pam.d/vsftpd进行认证pam_service_name=vsftpd#设置开启虚拟用户功能guest_enable=YES#指定虚拟用户的宿主用户,CentOS已经内置ftp用户guest_username=ftp#设置虚拟用户个人vsftp的CentOSFTP服务文件存放路径。CentOSFTP存储虚拟用户个性的服务文件(配置文件名=虚拟用户名)user_config_dir=/etc/vsftpd/vuser_conf#配置vsftpd日志(可选)xferlog_enable=YESxferlog_std_format=YESxferlog_file=/var/log/xferlogdual_log_enable=YESvsftpd_log_file=/var/log/vsftpd.log 认证 #安装BerkeleyDB工具,很多人找不到db_load是因为没有安装这个包yuminstalldb4db4-utils#创建用户密码文本,注意奇数行是用户名,偶数行是密码vi/etc/vsftpd/vuser_passwd.txttest123456#生成虚拟用户认证db文件db_load-T-t??hash-f/etc/vsftpd/vuser_passwd.txt/etc/vsftpd/vuser_passwd.db#编辑认证文件,将原句全部注释掉,并添加如下两句vi/etc/pam.d/vsftpdauthrequiredpam_userdb.sodb=/etc/vsftpd/vuser_passwdaccountrequiredpam_userdb.sodb=/etc/vsftpd/vuser_passwd#创建虚拟用户配置文件mkdir/etc/vsftpd/vuser_conf/#The文件名等于vuser_passwd.txt中的账户名,否则以下设置无效vi/etc/vsftpd/vuser_conf/test#虚拟用户根目录,修改local_root=/data/ftpwrite_enable=YESanon_umask=022anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES根据实际情况设置FTP根目录权限**的vsftpd要求主目录没有写权限,所以ftp为755,主目录下的子目录设置为777权限mkdir/data/ftpchmod-R755/datachmod-R777/data/ftp#建立用户访问目录的限制空文件touch/etc/vsftpd/chroot_list#如果启用vsftpd日志,需要手动创建日志文件touch/var/log/xferlogtouch/var/log/vsftpd.log 配置PASV模式(可选) vsftpd没有默认启用PASV模式,现在FTP只能通过PORT模式连接,要默认启用PASV,需要通过以下配置。 打开/etc/vsftpd/vsftpd.conf,在末尾添加#启用PASV模式pasv_enable=YES#最小端口号pasv_min_port=40000#***端口号pasv_max_port=40080pasv_promiscuous=YES#在防火墙配置中开启40000到40080端口-AINPUT-mstate--stateNEW-mtcp-p-dport40000:40080-jACCEPT#重启iptabls和vsftpdserviceiptablesrestartservicevsftpdrestart现在你可以使用PASV模式连接你的FTP服务器啦~ Selinux和防火墙 应该关闭,应该发布 servicevsftpdstart 常见问题 登录时如果出现 500OOPS:priv_sock_get_result.Connectionclosedbyremotehost. 等错误,需要升级pam yumupdatepam
