下载vsftpd
apt-get install vsftpd配置vsftpd,在配置之前最后先备份一下vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
所有配置信息如下:(读者可以直接copy,然后覆盖自己的vsftpd.conf内容)
# allow anonmy user login
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
# local user setting
local_enable=YES
local_root=/home/ftp/public
local_umask=022
write_enable=YES
# allow ip to or not to connect this ftp(depends on the /etc/hosts.allow and /etc/hosts.deny)
tcp_wrappers=YES
chroot_local_user=YES
anon_root=/home/ftp/public
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=/tmp/banner
listen=YES
pam_service_name=vsftpd
max_clients=5000
max_per_ip=5000
# set virtual users
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/user_conf
#other settings
reverse_lookup_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
chroot_local_user=YES
3 . 划分vsftp工作目录
/home/ftp
4 . 创建虚拟用户用户名和密码文件
vi /etc/vsftpd/login.txt
username #奇数行是用户名
pwd #偶数行是密码
5 . 生成PAM认证的db文件
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login
6 . 修改权限
chmod 600 /etc/vsftpd/vsftpd_login.db
7 . 修改PAM文件
vi /etc/pam.d/vsftpd
//注释掉所有配置信息,然后添加以下两行配置信息
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
//注意,网上有些配置在pam_userdb.so前面加上了/lib..的路径,本人开始也是这样做始终都登录不上,原因是各个机器路径也许不一样,读者需要看该文件之前的以pam开始的.so文件是否带路径(即已经被我们注释了的部分),如果那部分.so都带路径了则pam_userdb.so前面也要带相同的路径,否则不需要带路径
8 . 建立一个本地用户,虚拟用户通过映射到这个本地用户才能访问ftp文件服务器
useradd -d /home/ftp -s /sbin/nologin virtual
-d 指定ftp工作目录 -s指定该用户不能登录本机shell
9 . 修改ftp工作目录权限
chown virtual /home/ftp
10 . 修改vsftpd配置信息
添加一下信息:
local_enable=YES #由于虚拟用户是通过映射到本地用户virtual才能访问ftp服务器的,这个值必须为YES才能使得虚拟用户能够访问
pam_service_name=vsftpd
guest_enable=YES
guest_username=virtual #虚拟用户映射的本地用户
user_config_dir=/etc/vsftpd/user_conf #指定虚拟用户的配置文件夹
11 . 创建虚拟用户的配置文件
cd /etc/vsftpd/user_conf #进入user_conf文件夹内
vi username
#各种权限的配置大家看英文名应该都能懂什么意思,想给用户配什么权限就让该权限YES即可,下面给出的配置是给虚拟用户赋全部权限
local_root=/home/ftp/username
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
12 . 重启vsftpd
service vsftpd restart