近期公司需要配置一台ftp服务器,综合考虑安全方面和公司需求,决定选用vsftpd。查了一下资料后直接上手,现把配置过程记录下来,以备以后维护,下面分步说明配置在linux环境中配置vsftpd虚拟用户访问
第一步,创建虚拟用户文件,并将文件转换为数据库文件:
cd /etc/vsftpd/
vim userfile
编辑访问用户名切记奇数行用户名,偶数行为密码,编辑完成后保存退出。
db_load -Tt hash -f userfile /etc/vsftpd/vuser.db
生成数据库文件
第二步,创建用于登录的虚拟用户virtual
useradd -d /var/ftproot -s /sbin/nologin virtual
chmod 755 /var/ftproot 修改ftp文件夹权限
第三步创建pam配置文件
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb_so db=/etc/vsftpd/vuser (db后缀可以不写)
account required pam_userdb_so db=/etc/vsftpd/vuser
保存退出。
第四步修改配置文件
local_enable=YES
write_enable=YES
local_umask=022
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
allow_writeable_chroot=YES
dirmessage_enable=YES
xferlog_enable=YES
listen_port=你的端口
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
ftpd_banner=Welcome to blah CTY_colund FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=NO
pasv_promiscuous=YES
pasv_address=你的ip
pasv_enable=YES
pasv_min_port=10023可自定义
pasv_max_port=10480可自定义
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
此时登录ftp会报错,主要原因是配置userlist_enable=YES后,需要把第一步中的用户名加入到user_list文件中,写入后登录就可正常登录了。