首先确保系统已安装VSFTPD,若未安装,执行以下命令:
sudo apt update
sudo apt install vsftpd
编辑VSFTPD主配置文件/etc/vsftpd.conf
(使用nano
或vim
):
sudo nano /etc/vsftpd.conf
关键配置项说明:
local_enable=YES
(默认开启)。write_enable=YES
(需开启才能上传/修改文件)。chroot_local_user=YES
(将用户锁定在自家目录,提升安全性)。allow_writeable_chroot=YES
(若开启chroot_local_user
,必须设置此项,否则用户无法在其目录中写入)。anonymous_enable=NO
(增强安全性,避免未授权访问)。userlist_enable=YES
、userlist_file=/etc/vsftpd.user_list
、userlist_deny=NO
(user_list
文件中添加允许的用户)。保存并退出配置文件。
sudo adduser ftpuser # 按提示设置密码及信息
sudo usermod -s /sbin/nologin ftpuser # 禁止用户登录Shell
/home/ftpuser
)归属正确且可访问:sudo chown ftpuser:ftpuser /home/ftpuser # 归属用户及组
sudo chmod 755 /home/ftpuser # 允许用户读写执行,其他用户仅读执行
若需自定义主目录(如/var/ftp/ftpuser
),需额外修改用户主目录并设置权限:sudo usermod -d /var/ftp/ftpuser ftpuser
sudo mkdir -p /var/ftp/ftpuser
sudo chown ftpuser:ftpuser /var/ftp/ftpuser
sudo chmod 755 /var/ftp/ftpuser
若服务器运行ufw
防火墙,需开放FTP端口(默认21)及被动模式端口范围(如50000-50100):
sudo ufw allow 21/tcp
sudo ufw allow 50000:50100/tcp
sudo ufw reload
应用配置变更:
sudo systemctl restart vsftpd
使用FTP客户端(如FileZilla)连接服务器,输入用户名(如ftpuser
)及密码,验证是否能正常登录、上传/下载文件。
ssl_enable=YES
并配置证书)或使用SFTP(SSH File Transfer Protocol)替代。xferlog_enable=YES
),定期检查/var/log/vsftpd.log
以发现异常活动。setsebool -P ftpd_full_access on
)以允许VSFTPD正常运行。