1.安装VSFTPD
apt update
apt install vsftp
2.添加用户并设置目录
#添加用户,-m创建主目录,如果目录不存在则创建,-d指定目录 -s和后面的代表不允许SSH登录
useradd -m -d /www/ftp/dk -s /sbin/nologin dk
#修改目录权限
chmod -R 755 /www/ftp/dk
#修改密码
passwd dk
3.配置文件
在vi /etc/vsftpd.conf
# 独立模式运行
listen=YES
# 允许匿名
anonymous_enable=NO
# 本地用户登录
local_enable=YES
#开启写权限
write_enable=YES
#限制只能访问主目录
chroot_local_user=YES
#允许可写(当限制主目录后,必须有以下这条,否则无法访问)
allow_writeable_chroot=YES
#local_umask=022
# 匿名用户可上传
#anon_upload_enable=YES
# 匿名用户可新建目录
#anon_mkdir_write_enable=YES
# 显示欢迎信息
dirmessage_enable=YES
# 以本地时间显示
use_localtime=YES
# 记录上传下载日志
xferlog_enable=YES
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#ftp欢迎信息
ftpd_banner=Welcome to DK FTP service.
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
#ssl证书
rsa_cert_file=/root/binbin/cert/cert.pem
#ssl私钥
rsa_private_key_file=/root/binbin/cert/key.pem
ssl_enable=YES
utf8_filesystem=YES
#是否启用被动模式
pasv_enable=YES
#被动起始端口
pasv_min_port=30000
#被动结束端口
pasv_max_port=30010
4.开放防火墙
若开启了防火墙,开放端口,否则无视
ufw allow 20,21/tcp
ufw allow 30000:300010/tcp
更多https://gnu-linux.readthedocs.io/zh/latest/Chapter02/90_vsftpd.html
https://security.appspot.com/vsftpd/vsftpd_conf.html