由于工作需要, 再测试环境上安装vsftpd,主要参考以下文章
http://www.huzs.net/?p=1213#theory_security
http://www.cnblogs.com/hhuai/archive/2011/02/12/1952647.html
使用本地用户时,配置和启动都很顺利。
想测试下虚拟用户,一直启动不了, 通过提示的命令查看错误信息也看不到效果。
最后启动成功的配置文件
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
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd/vsftpd.log
xferlog_std_format=YES
nopriv_user=vsftpd
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=This Vsftp server supports virtual users ^_^
chroot_list_enable=NO
ls_recurse_enable=NO
listen=YES
userlist_enable=YES
tcp_wrappers=YES
guest_username=overlord
virtual_use_local_privs=YES
guest_enable=YES
guest_username=overlord
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vuser_conf
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40090
pam_service_name=vsftpd
/etc/pam.d/vsftpd
中的配置
#%PAM-1.0
auth sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_users
account sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_users
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
auth sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_users
account sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_users
是新增的内容,必须放在前两行, 附上一段PAM验证的说明,具体请查阅
https://wenku.baidu.com/view/2308e719fc4ffe473368ab6c.html
2PAM验证类型 *auth验证使用者身份,提示输入账号和密码 *account基于用户表、时间或者密码有效期来决定是否允许访问 *password禁止用户反复尝试登录,在变更密码时进行密码复杂性控制 *session进行日志记录,或者限制用户登录的次数libpam函数库会可以调用以上一种服务或者全部。 3PAM验证控制类型(ControlValues) 验证控制类型也可以称做ControlFlags,用于PAM验证类型的返回结果。 *required验证失败时仍然继续,但返回Fail(用户不会知道哪里失败) *requisite验证失败则立即结束整个验证过程,返回Fail *sufficient验证成功则立即返回,不再继续,否则忽略结果并继续 *optional无论验证结果如何,均不会影响(通常用于session类型
另安装成功后,启动也是正常的, 但是使用浏览器访问一直提示登录失败。
在使用filezilla客户端后, 终于看到错误信息
响应: 500 OOPS: config file not owned by correct user,or not a file
从这里可以看到文件的所属人不对,查看后,发现/etc/vsftpd/virtual_users.db 和 vuser_conf 的所属用户和启动用户不一样,更改成使用用户即可。