首先确保系统已安装VSFTPD,若未安装,执行以下命令:
sudo apt update
sudo apt install vsftpd
编辑配置文件/etc/vsftpd.conf(使用nano或vim):
sudo nano /etc/vsftpd.conf
关键配置项说明(根据需求调整):
anonymous_enable=NO # 禁止匿名用户登录(增强安全性)
local_enable=YES # 允许本地系统用户登录
write_enable=YES # 允许用户上传/修改文件
local_umask=022 # 设置文件创建掩码(新文件权限为644,目录为755)
chroot_local_user=YES # 将所有本地用户限制在自己的主目录
allow_writeable_chroot=YES # 允许chroot环境可写(避免“500 OOPS”错误)
userlist_enable=YES # 启用用户列表功能
userlist_file=/etc/vsftpd.userlist # 用户列表文件路径
userlist_deny=NO # 仅允许列表中的用户登录(设为YES则拒绝列表用户)
pasv_enable=YES # 启用被动模式
pasv_min_port=50000 # 被动模式最小端口
pasv_max_port=50100 # 被动模式最大端口
sudo adduser ftpuser # 按提示设置密码及用户信息
sudo usermod -s /sbin/nologin ftpuser # 用户无法登录Shell,仅能FTP访问
确保用户主目录归属正确且权限开放:
sudo chown ftpuser:ftpuser /home/ftpuser # 将主目录所有者设为用户自身
sudo chmod 755 /home/ftpuser # 允许用户读/写/执行自己的文件,其他用户仅读/执行
修改配置后,重启服务使更改生效:
sudo systemctl restart vsftpd
允许FTP端口及被动模式端口通过防火墙:
sudo ufw allow 21/tcp # FTP默认控制端口
sudo ufw allow 50000:50100/tcp # 被动模式端口范围(需与配置文件一致)
使用FTP客户端(如FileZilla)连接服务器,输入用户名、密码,验证是否能正常登录、上传/下载文件。
ssl_enable=YES)或改用SFTP(SSH File Transfer Protocol)。xferlog_enable=YES),定期检查/var/log/vsftpd.log以发现异常活动。setsebool -P ftpd_full_access on)。