安装:
sudo apt-get update
sudo apt-get install vsftpd
配置防火墙:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status
查寻结果集应该如下:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
990/tcp ALLOW Anywhere
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
新建ftp登录用户
sudo adduser sammy
然后需要按照提示设置密码和相关信息,除了密码,其余都可以使用默认值
创建FTP根文件夹
sudo mkdir /home/sammy/ftp
sudo chown nobody:nogroup /home/sammy/ftp
sudo chmod a-w /home/sammy/ftp
创建FTP文件上传目录
sudo mkdir /home/sammy/ftp/files
sudo chown sammy:sammy /home/sammy/ftp/files
修改vsftpd参数文件
假如参数存在则修改,不存在则添加。
anonymous_enable=NO
local_enable=YES
write_enable=YES
#不允许访问除当前文件树以外的文件
chroot_local_user=YES
#配置用户的根目录
ser_sub_token=$USER
local_root=/home/$USER/ftp
#FTP被动模式配置
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=50000
#阻止用户列表以外的用户登录FTP
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
将创建好的用户,添加至列表:
echo "sammy" | sudo tee -a /etc/vsftpd.userlist
重启服务
systemctl restart vsftpd
测试FTP
ftp -p 203.0.113.0
结果集如下,则成功:
Connected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): anonymous
530 Permission denied.
ftp: Login failed.
ftp>