centos
第一步:安装
# yum install vsftpd pam* libdb-utils
第二步:配置
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.v
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/user_conf
guest_enable=YES
guest_username=vsftpuser
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
第三步:用户及权限
# useradd -s /sbin/nologin vsftpuser
# mkdir -p /home/vsftpuser/rain
# chown -R vsftpuser:vsftpuser /home/vsftpuser
第四步:设置虚拟帐户
# vim /etc/vsftpd/vlogin
rain
1234
一行用户名,一行密码,可以添加多个
# mkdir /etc/vsftpd/user_conf
# vim /etc/vsftpd/user_conf/rain
local_root=/home/vsftpuser/rain
每个用户一个配置文件,名称要与用户名相同
第五步:配置PAM认证
# db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db
# chmod 600 /etc/vsftpd/vlogin*
# vim /etc/pam.d/vsftpd.v
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
最后:重启服务后用虚拟用户“rain”及密码“1234”登录,用户根目录为“/home/vsftpuser/rain”
ubuntu
第一步:安装
# apt install vsftpd pam* db-util
第二步:配置
# vim /etc/vsftpd.conf
listen=NO
listen_ipv6=YES
local_root=/home/vsftpuser
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd.v
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
allow_writeable_chroot=YES
guest_enable=YES
guest_username=vsftpuser
user_config_dir=/run/vsftpd/user_conf
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=10100
第三步:用户及权限
# useradd -s /sbin/nologin vsftpuser
# mkdir -p /home/vsftpuser/rain
# chown -R vsftpuser:vsftpuser /home/vsftpuser
第四步:设置虚拟帐户
# vim /etc/vsftpd/vlogin
rain
1234
一行用户名,一行密码,可以添加多个
# mkdir /etc/vsftpd/user_conf
# vim /etc/vsftpd/user_conf/rain
local_root=/home/vsftpuser/rain
每个用户一个配置文件,名称要与用户名相同
第五步:配置PAM认证
# db_load -T -t hash -f /run/vsftpd/vlogin /run/vsftpd/vlogin.db
# chmod 600 /run/vsftpd/vlogin*
# vim /etc/pam.d/vsftpd.v
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/run/vsftpd/vlogin
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/run/vsftpd/vlogin
最后:重启服务后用虚拟用户“rain”及密码“1234”登录,用户根目录为“/home/vsftpuser/rain”
常见问题:
1,530 Login incorrect:登录过程中帐户验证失败。
a,检查‘vsftpd.conf”中的“pam_service_name=vsftpd.v”,
b,检查“/etc/pam.d/vsftpd.v”中的库文件调用
2,500 OOPS:cannot change directory:/home/…
a,检查相关目录及目录权限设置
b,SELinux设置
3,使用windows访问主动模式的vsftpd无法成功
internet选项卡>>"高级"选项卡>>去掉“使用被动FTP”前的勾