下载并安装 vsftpd
apt-get install vsftpd
安装后检查 service vsftpd status
修改配置文件(被动/匿名用户模式)
vi /etc/vsftpd.conf
anonymous_enable=NO
listen=YES
listen_port=21
ascii_upload_enable=YES
ascii_download_enable=YES
local_enable=YES
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
pasv_enable=YES
port_enable=NO
pasv_min_port=28000
pasv_max_port=28999
anon_world_readable_only=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vsftpd_user_conf
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
allow_writeable_chroot=YES
配置匿名用户的文本文件
mkdir /etc/vsftpd
cd /etc/vsftpd
vi login.txt
输入文本:
ftp
$ftpPassword
注:奇数行账号,偶数行密码
导入用户文本文件到数据库
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
如果没有找到命令db_load,需安装
apt-get install db-util
配置pam_service_name对应文件
首先,全局查找文件pam_userdb.so的路径。
find / -name pam_userdb.so
vi /etc/pam.d/vsftpd.vu
输入以下内容:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login
配置匿名用户的ftp根目录和权限
mkdif /etc/vsftpd/vsftpd_user_conf
vi /etc/vsftpd/vsftpd_user_conf/ftp
注:文件名称要与ftp账号文件中输入的ftp账号一致
输入以下内容:
local_root=/home/terry/store/ftp
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
创建匿名用户,或修改匿名用户根目录
如果账号是ftp,则安装vsftpd时已默认创建了该用户,需要修改用户根目录与上面local_root一致。
vi /etc/passwd
例如:
ftp:x:127:132:ftp daemon,,,:/home/terry/store/ftp:/usr/sbin/nologin
如果是其他账号,则需要新增用户。比如新增账号ftp2,
useradd -d/home/terry/store/ftp2 -s /sbin/nologin ftp2
修改ftp目录的访问权限
chown ftp:ftp /home/terry/store/ftp
chmod 755 /home/terry/store/ftp
配置防火墙
sudo ufw allow 21
sudo ufw allow 28000:28999/tcp
sudo ufw reload
重启vsftpd服务
sudo service vsftpd restart