Ubuntu vsftpd配置指南
首先更新系统软件包列表,然后通过APT安装vsftpd:
sudo apt update
sudo apt install vsftpd -y
修改配置文件前,建议备份原文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
使用文本编辑器(如nano)打开配置文件:
sudo nano /etc/vsftpd.conf
修改或添加以下关键配置(按需调整):
anonymous_enable=NO # 禁止匿名用户登录(增强安全性)
local_enable=YES # 允许本地系统用户登录
write_enable=YES # 允许本地用户上传/修改文件
chroot_local_user=YES # 将用户限制在自己的主目录(防止越权访问)
allow_writeable_chroot=YES # 允许chroot目录可写(若用户需要上传文件)
pasv_enable=YES # 启用被动模式
pasv_min_port=30000 # 被动模式最小端口(自定义范围)
pasv_max_port=31000 # 被动模式最大端口
userlist_enable=YES # 启用用户列表
userlist_file=/etc/vsftpd.user_list # 用户列表文件路径
userlist_deny=NO # 仅允许列表中的用户登录(若设为YES则拒绝列表用户)
按Ctrl+O保存文件,Ctrl+X退出编辑器。
为避免使用root账户登录,建议创建专用FTP用户(无SSH登录权限):
sudo useradd -m ftpuser -s /usr/sbin/nologin # 创建用户(-s指定无shell登录)
sudo passwd ftpuser # 设置用户密码
编辑用户列表文件,添加允许登录的用户名:
echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list
确保用户主目录及上传目录权限正确(避免权限过高导致安全问题):
sudo chown ftpuser:ftpuser /home/ftpuser # 设置主目录所有者
sudo chmod 755 /home/ftpuser # 主目录权限(所有者可读写执行,其他用户只读)
sudo mkdir -p /home/ftpuser/upload # 创建上传子目录
sudo chown ftpuser:ftpuser /home/ftpuser/upload # 上传目录所有者
sudo chmod 775 /home/ftpuser/upload # 上传目录权限(所有者可读写执行,组用户可读写)
若使用ufw防火墙,需放行FTP控制端口(21)和被动模式端口范围:
sudo ufw allow 21/tcp # FTP控制端口
sudo ufw allow 30000:31000/tcp # 被动模式端口范围
sudo ufw reload # 重新加载防火墙规则
使配置生效,重启vsftpd服务并设置开机自启:
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd # 开机自动启动
使用FTP客户端(如FileZilla或命令行工具)连接服务器:
ftp your_server_ip
输入用户名ftpuser和密码,验证是否能登录及上传/下载文件。ssh命令或FileZilla的SFTP协议连接。