首先确保系统已安装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)。